fracrist Ha scritto:Accetto consigli su come leggere il segnale RPM, che non ho idea di come fare il codice di campionamento... :cry2:Premetto che su arduino non ho mai messo le mani ma i microcontrollori Atmel su cui si basano li conosco bene.
Normalmente per misurare la frequenza (o il duty cycle, poco cambia) di un segnale si fa partire un timer in 'free run', cioè lo si lascia incrementare autonomamente, e sul pin di ingresso dal segnale da misurare si configura un interrupt che scatta ad ogni cambio di livello del segnale stesso.
La velocità di incremento del timer è nota dato che è legata alla frequenza di funzionamento del micro e quindi è usabile come sistema di riferimento temporale.
Ogni volta che il segnale cambia di livello nella relativa routine di interrupt ci segneremo il valore del timer in quel momento; calcolando la differenza tra il valore letto e quello salvato al precedente cambio di livello del segnale sarà possibile risalire al tempo trascorso tra un fronte e l'altro del segnale.
In pochi parole usi il timer come sistema di riferimento e ogni volta che scatta l'interrupt vai a vedere di quanto si è spostato il valore del timer.
Alcuni micro Atmel hanno una funzione chiamata Input Capture che praticamente fa in automatico quello che ti ho descritto, non so se siano usabili anche in ambiente Arduino. Penso che con una ricerchina veloce tu possa scoprirlo.
P.S. il mio numero di cell ce l'hai, se hai bisogno di consigli riguardo al micro chiama pure!
NC LE