
|
![]() | #11 (permalink) Top |
Adv Moderator Data registr.: 15-08-2007 Residenza: sto a Massa ma sono molto Positivo
Messaggi: 12.071
|
Continuiamo con le puntate.... Il codice scaricato dal repositori così come viene fornito non funziona per lo meno per la parte RPM, infatti: restituisce alla radio la rotazione in Hertz e necessita di un minimo di configurazione per l'utilizzo con OpenTX (2940) devo dire che le modifiche da me apportate sono veramente minime, più che altro mi hanno consentito di capirne il funzionamento per sviluppi futuri, ad esempio per quanto riguarda il livello del carburante per utilizzare altri tipi di sensori quali flussimetri o anche con il sensore attuale tener conto della posizione del veivolo utilizzando un accelerometro. Il codice da me modificato è contenuto nello zip allegato e la configurazione del sensore avviene mediante il file oxs_config.h Prima di commentare il codice invece, posto uno sketch di arduino utilizzato su un altro arduino per simulare la centralina dei giri: Poiché è presente un fotoaccoppiatore, invertente che nella configurazione utilizzata inverte il segnale, ho pensato di generare un impulso negativo molto stretto, nella considerazione che non mi è dato sapere la lunghezza dell'impulso prodotto dalle varie centraline. Codice: /* * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * */ //generatore di frequenza fissa boolean Led = 0; void setup(){ pinMode(13, OUTPUT); pinMode(8, OUTPUT); cli(); //disabilito gli interrupts TCCR1A = 0;// setto l'intero registro TCCR1A a 0 TCCR1B = 0;// idem per TCCR1B TCNT1 = 0;// inizializzo il valore del contatore a 0 // setto il comparatore per una frequenza di 20Hz OCR1A = 3124;// = (16*10^6) / (20*256) - 1 // abilito il modo CTC TCCR1B |= (1 << WGM12); /* Tabella del prescaler CS12 CS11 CS10 Prescaler 0 0 0 0 0 0 1 1 0 1 0 8 0 1 1 64 1 0 0 256 1 0 1 1024 */ // Setto CS12 per il prescaler a 256 TCCR1B |= (1 << CS12) ; // abilito l'interrupt TIMSK1 |= (1 << OCIE1A); sei();//consento gli interrupt } ISR(TIMER1_COMPA_vect){ if (Led){ digitalWrite(13,HIGH); Led = 0; } else { digitalWrite(13,LOW); Led = 1; } digitalWrite(8,LOW); for (int i=1; i<1000;i++) {} //perdo del tempo digitalWrite(8,HIGH); } void loop(){ //non usato } Il led collegato in genere sul pin 13 invece lampeggia a frequenza di 10 Hz.
__________________ Vivere in qeusto mondo e molto belo belo e vale la pena starci ma a volte in questa UNICA vita che ci apartiene posono succedere cose brute brute alora mi chiedo perche siete incazziati domani pole esere anche lultimo Grazie "TRANQUILLO" FAI 15766 |
![]() | ![]() |
Bookmarks |
| |
![]() | ||||
Discussione | Autore discussione | Forum | Commenti | Ultimo Commento |
Sensore rpm | avia-tore | Elimodellismo Motore a Scoppio | 29 | 13 aprile 14 19:15 |
sensore RPM | illez | Circuiti Elettronici | 8 | 01 novembre 09 23:32 |
sensore rpm multigov | dani44 | Elimodellismo in Generale | 9 | 01 febbraio 09 18:05 |