Costruzione di un sensore S/PORT per RPM (arduino pro mini) - BaroneRosso.it - Forum Modellismo

Torna indietro   BaroneRosso.it - Forum Modellismo > Elettronica > Circuiti Elettronici


 
 
Strumenti discussione Visualizzazione
Prev Messaggio precedente   Prossimo messaggio Next
Vecchio 29 luglio 14, 21:11   #11 (permalink)  Top
Adv Moderator
 
L'avatar di romoloman
 
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 codice non è nulla di particolare, ma utilizza un interrupt sul timer uno per generare l'impulso in modo da garantire una frequenza il più precisa possibile. (20Hz)
Il led collegato in genere sul pin 13 invece lampeggia a frequenza di 10 Hz.
Files allegati
Tipo file: zip openxsensor.zip‎ (51,0 KB, 66 visite)
__________________
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
romoloman non è collegato   Rispondi citando
 

Bookmarks




Regole di scrittura
Non puoi creare nuove discussioni
Non puoi rispondere alle discussioni
Non puoi inserire allegati
Non puoi modificare i tuoi messaggi

BB code è Attivato
Le faccine sono Attivato
Il codice [IMG] è Attivato
Il codice HTML è Disattivato
Trackbacks è Disattivato
Pingbacks è Disattivato
Refbacks è Disattivato


Discussioni simili
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



Tutti gli orari sono GMT +2. Adesso sono le 05:11.


Basato su: vBulletin versione 3.8.11
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
E' vietata la riproduzione, anche solo in parte, di contenuti e grafica. Copyright 1998/2019 - K-Bits P.I. 09395831002