Maggiore precisione con contagiri PIC
Ciao a tutti.
Vorrei una delucidazione se riuscite a darmela.
Ho realizzato finalmente il contagiri con un PIC (avevo aperto un post tempo fa sull'argomento) per conoscere il numero di giri di un motore a scoppio monocilindrico di un piccolo mezzo agricolo. Volendo un metodo poco invasivo per poterli visualizzare, ho preso spunto da un contagiri ad induzione che il mio babbo utilizza in campagna su un trattore.
Così ho pensato di sfruttare un PIC per leggere gli impulsi (con una oppurtuna elettronica di acqusizione del segnale) provenienti da un filo avvolto a spirale sul cavo candela.
Ho utilizzato un quarzo da 40kHz ed un prescaler di 128 per avere con buona precisione dal TMR0 una base dei tempi di circa 1s e tramite interrupt ho contanto gli impulsi ricevuti in un secondo e moltiplicato per 60 per avere i giri/min.
Tutto funziona bene se non per l'errore di 60 giri/min (soprattutto a basse velocità) che ottengo durante la visualizzazione dei giri su LCD.
Infatti l'errore è formato da passi di 60 g/min, infatti 60 impulsi al secondo = 3600 al minuto mentre 59 implusi al secondo = 3540 il peso di un'impluso in piu o in meno è sempre di 60 g/min.
Avevo pensato anche di aumentare la base dei tempi, diminuendo così la costante moltiplicativa. Solo che in tal modo ho un ritardo nella visualizzazione dei giri.
E' possibile secondo voi una visualizzazione sempre circa ogni secondo ma con una maggiore precisione, ovvero con un errore piccolo inferiore ai 10 giri/min?
Vorrei una delucidazione se riuscite a darmela.
Ho realizzato finalmente il contagiri con un PIC (avevo aperto un post tempo fa sull'argomento) per conoscere il numero di giri di un motore a scoppio monocilindrico di un piccolo mezzo agricolo. Volendo un metodo poco invasivo per poterli visualizzare, ho preso spunto da un contagiri ad induzione che il mio babbo utilizza in campagna su un trattore.
Così ho pensato di sfruttare un PIC per leggere gli impulsi (con una oppurtuna elettronica di acqusizione del segnale) provenienti da un filo avvolto a spirale sul cavo candela.
Ho utilizzato un quarzo da 40kHz ed un prescaler di 128 per avere con buona precisione dal TMR0 una base dei tempi di circa 1s e tramite interrupt ho contanto gli impulsi ricevuti in un secondo e moltiplicato per 60 per avere i giri/min.
Tutto funziona bene se non per l'errore di 60 giri/min (soprattutto a basse velocità) che ottengo durante la visualizzazione dei giri su LCD.
Infatti l'errore è formato da passi di 60 g/min, infatti 60 impulsi al secondo = 3600 al minuto mentre 59 implusi al secondo = 3540 il peso di un'impluso in piu o in meno è sempre di 60 g/min.
Avevo pensato anche di aumentare la base dei tempi, diminuendo così la costante moltiplicativa. Solo che in tal modo ho un ritardo nella visualizzazione dei giri.
E' possibile secondo voi una visualizzazione sempre circa ogni secondo ma con una maggiore precisione, ovvero con un errore piccolo inferiore ai 10 giri/min?
