sciamannalucio.it
La base dei tempi può essere fissa con un certo lasso di tempo,
oppure senza tempo. In quest’ultimo caso il contatore di impulsi è
assoluto, e conteggia fino a quando non viene spento/azzerato.
Ogni impulso incrementa un contatore, aumentando il numero
memorizzato. Quando è terminato il tempo massimo per la conta il
numero viene visualizzato su un display o altro dispositivo di
visualizzazione. Il contatore ed il timer vengono azzerati e si
ricomincia a contare gli impulsi in ingresso.
1 di 12 08/12/2018, 14:02
Arduino: encoder conta impulsi-giri motore - Sciamanna Lucio
2 di 12 08/12/2018, 14:02
Arduino: encoder conta impulsi-giri motore - Sciamanna Lucio
3 di 12 08/12/2018, 14:02
Arduino: encoder conta impulsi-giri motore - Sciamanna Lucio
con il metodo “interrupt”: ogni volta che all’ingresso del pin c’è
una variazione del segnale elettrico viene chiamata una funzione
speciale “interrupt” (alle volte definita ISR). Questa funzione è
speciale perchè ha la priorità massima, cioè il microprocessore
della scheda Arduino ferma la riga di comando che sta eseguendo
per eseguire la funzione “interrupt”. Si devono utilizzare solo i pin
che possono diventare interrupt hardware: per esempio nella
scheda Arduino UNO solo il pin 2 e 3 digitali sono fisicamente
collegati agli interrupt esterni INT0 (digital pin 2) e INT1 (digital pin
3). Nel caso vuoi utilizzare un qualsiasi pin della scheda Arduino
UNO allora puoi usare una libreria chiamata PinChangeInt.
4 di 12 08/12/2018, 14:02
Arduino: encoder conta impulsi-giri motore - Sciamanna Lucio
5 di 12 08/12/2018, 14:02
Arduino: encoder conta impulsi-giri motore - Sciamanna Lucio
6 di 12 08/12/2018, 14:02
Arduino: encoder conta impulsi-giri motore - Sciamanna Lucio
void loop(){
7 di 12 08/12/2018, 14:02
Arduino: encoder conta impulsi-giri motore - Sciamanna Lucio
8 di 12 08/12/2018, 14:02
Arduino: encoder conta impulsi-giri motore - Sciamanna Lucio
pulsante
E chi non vuole utilizzare Arduino come fa? Ci sono circuiti integrati
che fungono da contatore di impulsi. Puoi vedere il circuito elettrico
utilizzabile anche con un encoder a quadratura. Gli integrati
utilizzabili sono il 74190 (versione con uscita BCD per
collegamento diretto a display decimali) e 74191 per uscita binaria
e puoi scaricare cliccando sul link datasheet_74190_191_counter.
Questi integrati sono in tecnologia TTL e pertanto vanno alimentati
con una tensione di 5 Volt. Se vogliamo utilizzare una tensione di
alimentazione fino a 15 Volt usiamo gli integrati CMOS
datasheet_cd40192_cd40193. Questo circuito può essere utilizzato
per dividere la frequenza di un encoder per un numero che varia tra
2 e 256, basta collegarsi alle uscite U1-Q0 (divisione per 2), U1-Q1
(divisione per 4), U1-Q2 (divisione per 8), U1-Q3 (divisione per 16),
U2-Q0 (divisione per 32), U2-Q1 (divisione per 64), U2-Q2
(divisione per 128) e U2-Q3 (divisione per 256). Si devono
utilizzare gli integrati con uscita binaria 74191 oppure cd40193.
9 di 12 08/12/2018, 14:02
Arduino: encoder conta impulsi-giri motore - Sciamanna Lucio
10 di 12 08/12/2018, 14:02
Arduino: encoder conta impulsi-giri motore - Sciamanna Lucio
11 di 12 08/12/2018, 14:02
Arduino: encoder conta impulsi-giri motore - Sciamanna Lucio
Pubblicità
12 di 12 08/12/2018, 14:02