Questo contagiri usa una capsula microfonica come sensore, e sfrutta l'onda di pressione
a bassa frequenza presente vicino alle pale in rotazione.
La distanza di rilevamento è abbastanza variabile a seconda della velocità di
rotazione e dell'inclinazione delle pale, può anche superare i 10cm,ed è
ottimale quando le cifre più significative del display rimangono stabili. Non tutte le
distanze sono valide, infatti non bisogna essere ne troppo lontani ne troppo vicini al rotore,
inoltre il comportamento sopra di esso è diverso da quello di sotto, in particolare la lettura
è migliore dal lato in cui l'aria viene
risucchiata
e difficile dall'altro.
Le ultime due cifre variano troppo rapidamente per essere lette agevolmente, nonostante questo
la precisione dei calcoli dovrebbe aggirarsi attorno al paio di rpm.
Il segnale, captato dalla capsula microfonica preamplificata, viene amplificato dapprima
da uno stadio a FET e successivamente da un amplificatore operazionale che ha anche
la funzione di filtro passa basso con frequenza di taglio di circa 70Hz.
Osservando all'oscilloscopio l'uscita dell'operazionale ho notato che in concomitanza con
il passaggio delle pale la tensione scende bruscamente sotto il volt. Il secondo operazionale
viene usato come comparatore/squadratore, in modo da poter inviare ogni fronte di discesa
direttamente all'ingresso di un divisore binario (CD4040).
Sull'uscita del divisore è presente una frequenza pari alla metà di quella
di ingresso e con duty cycle del 50%. Questo segnale viene letto dal PIC16F628 che misura
la durata di un semiperiodo con una precisione di ±7µS.
Applicando la formula
rpm = 1/2 * 60/T (dove T è
il tempo misurato in secondi
e 1/2 tiene conto del fatto che l'elica è bipala) si ottengono i giri/minuto.
Siccome T è dato dalla risoluzione di campionamento (7*10
-6S) per il
conteggio raggiunto (chiamiamolo N), la formula si può riscrivere così:
rpm = 1/2 * 60/(N*7*10-6). Semplificando e
risolvendo le parti costanti
si arriva ad una semplice formula finale perfettamente calcolabile dal microcontroller
usando solo numeri interi:
rpm = 4285714 / N.
Gli rpm così ottenuti possono essere visualizzati su un qualsiasi tipo di
display a 4 digit. In questo caso ho riutilizzato un vecchio LCD seriale
(recuperato dal kit LX1007 di Nuova Elettronica) comandabile tramite soli 3 segnali.
Tra l'altro questo modulo ha già a bordo un regolatore a 5V da cui si ottiene
l'alimentazione per il microcontroller.
La versione con microfono, per quanto funzionasse bene in certe circostanze, in altri casi
non leggeva bene i giri o non li leggeva per niente.
Usando un sensore a riflessione infrarossa di tipo QRD1114 invece
la lettura è veramente stabile anche sulla cifra delle decine, e le unità variano
di pochi rpm. La lettura ottimale
si ottiene sui 10cm di distanza, ed è indifferente se fatta sopra o sotto il rotore,
potrebbe però essere influenzata dal colore e dalla riflettività delle pale.
Come tutti i sensori ottici anche questo purtroppo è in parte sensibile al ronzio
dell'illuminazione artificiale, in presenza della quale si rischia di leggere il valore 3000rpm
(prodotto dai 100Hz dell'illuminazione).
La modifica è stata semplicissima, in quanto come si vede dallo schema qui sopra basta
mettere il fototransistor al posto del microfono e aggiungere una resistenza per alimentare il
led infrarosso del sensore.
NOTA: Se il sensore risulta troppo sensibile all'illuminazione solare esterna, ridurre la resistenza
del fototransistor da 10k a 4,7k.