Per provarlo l'ho caricato su Arduino e a mano con un cavetto ho fornito i 5v al piedino 7, anche con una frequenza di 2/3 volte al secondo.
Il problema è che nella seriale la scheda mi restituisce costantemente il valore 0.
E' forse un problema della scheda? E' normale? E' un problema di codice?
Sbagliato
Pulsein restituisce la durata di un impulso
Per risalire a rpm devi sapere a quanto quell'impulso corrisponde sul giro
Quindi
Cosa devi misurare?
si ma avresti un dato di cui poi non ti fai nulla praticamente...
ti conviene per esempio contare quante volte va da low a high (o viceversa) in un secondo (supponendo che tu abbia un impulso ogni giro) e moltiplicare per 60 ottenendo rpm (impulsi al secondo *60)
per vedere se hai un problema di hardware metti una resistenza di pulldown tra il pin 7 e gnd da 1k
dopo prova a dare gli impulsi e se il codice va dovresti leggere i tempi
ma non mi dare del lei che sono troppo piccolo ahah
il rpblema è proprio che quel codice te lo sei inventato ahaha
la logica è sbagliata
come ti dicevo la durata dell'impulso è inutile se non sai a "quanto giro" corrisponde quell'impulso
metti caso che il tuo impulso dura mezzo diro
puoi fare
duratagiro=duration*2
rpm=60000000/duratagiro
attenzione che pulsein da un valore in micros e non in millis quindi un secondo sarà 60.000.000 micros
di conseguenza ti risuggersico di contare QUANTI IMPULSI hai in un secondo moltiplicando per 60 ottenendo rpm (supponendo un impulso al giro)
puoi farlo tramite interrupt e non ti interessa la durata dell'impulso ma solo la frequenza
con che genere di sensore intendi acquisire l'impulso dalla moto??
Non neccessariamente serve misurare il numero di impulsi al secndo. puoi misurare anche il periodo dela alternata che ricevi dal sennsore dei giri. Ovviamente devi sapere quanti impulsi fa per un giro intero.
Il Tuo codice misura il tempo del impulso positivo dell'onda. Devi misurare anche la durata della parte LOW perché il periodo dell'oscillazione é la loro somma.
Ciao Uwe
Essenzialmente a me non interessa che si blocchi il micro. Infatti deve solo accendere un tot di led in base ai giri del motore.
Per prelevare l'impulso ho due possibilità. La prima è quella del cavo avvolto attorno al cavo della candela che va ad Arduino dopo una resistenza.
Per la seconda, ho visto che sul volano c'è un magnete esterno che ad ogni giro passa davanti ad un sensore. Pensavo che potrei prelevare l'impulso da lì, ma non so se la corrente che dà quel sensore potrebbe bruciare arduino.
Che ne pensate?
Se sei appassionato di elettronica & Arduino, un minimo di strumentazione dovresti averla... e un buon tester è già il minimo indispensabile.
Comunque sarà difficile misurarla a motore acceso, l'impulso potrebbe essere troppo breve perché il tester riesca a visualizzare la tensione corretta.
Controlla se c'è qualche sigla sul sensore, oppure vedi se è collegato direttamente all'impianto 12V del motore.
Allora, questo è il volano che funge anche da rotore.
Come potete vedere c'è un magnete sulla campana del volano che passa sopra un sensore. Questo dovrebbe ricevere gli impulsi e "consegnarli" alla centralina.
Mi rendo conto che le foto contano poco. Cercherò di misurare col tester la tensione XD
quel genere di pick up quasi sicuramente genera tensioni molto alte (sopra i 50/60 volt)
quindi occhio all'arduino perchè lo fotti che è un piacere
prendi il segnale dal filo della candela, è più semplice e più sicuro
dopo quando sono a casa ti metto uno schema del circuitino per farlo
EDIT
vedo che ha un husky eh
125??
cmq questo schema l'ho trovato qualche tempo fa su internet e funziona
L1 è il filo avvolto intorno al cavo candela
una decina di spire vanno bene (io avevo usato un filo recuperato da un trasformatore da circa mezzo millimetro di sezione mi sembra)
Se mi dici che il circuito va bene me lo costruisco a breve. Mi mancano un paio di componenti come il transistor ed il condensatore. Spero di trovarli in zona .
Se posso chiederti, il circuito cosa fa di preciso? perchè non posso mettere un cavo attorno alla pipetta con una resistenza che va direttamente all'arduino?
Amplifica la debolissima corrente indotta dalla scintilla in un bel segnale forte
Il transistor.lo trovi anche dentro qualche radio o roba simile e anche il c
E uno di quelli a disco.con scritto 104 sopra