Buongiorno,
ho realizzato un contachilometri particolare per moto.
Ho un problema con il sensore hall, dopo aver percorso decine di chilometri, invece che una lettura per ogni giro di ruota mi segnala una successione di letture che non corrispondono al passaggio del magnete di fronte al sensore hall.
Questo lo schetch per una scheda arduino nano:
< #include <LedControl.h>
<LedControl lc=LedControl(7,6,5,1);>
<unsigned long distanza;>
<int ruota = 2165;>
<unsigned long oldtempo;>
<void setup() {>
<Serial.begin(9600);>
<lc.shutdown(0,false); // resetta il display e lo attiva>
<lc.setIntensity(0,12); // seleziona l'intensità>
<pinMode(2, INPUT); //dichiaro il pin 2 come ingresso>
<attachInterrupt(0, leggerpm, RISING); //dichiaro l'interrupt, ogni volta che va da zero a uno segna un giro>
<}>
<void loop() {>
<lc.clearDisplay();>
<lc.print (oldtempo);>
<lc.print(“ “);>
<lc.print(distanza);>
<delay(500);>
<}>
<void leggerpm() {>
< distanza=distanza+ruota;>
< oldtempo=millis();>
<}>
i collegamenti fisici sono i seguenti:
positivo (5 volt) verso il sensore hall
massa verso il sensore hall
output dal sensore hall verso il pin 2
resistenza da 10Kohm tra il pin 2 e la massa