HOMEELETTRONICACOMPONENTIIMPIANTIELETTROTECNICA
ARDUINO - INPUT ANALOGICI

FUNZIONAMENTO DEI SEI INGRESSI ANALOGICI
Nella descrizione della scheda Arduino UNO abbiamo già evidenziato l'esistenza di sei ingressi analogici contrassegnati da A0 ad A5. Ribadiamo che, a differenza dei 14 pin digitali, questi sei analogici possono essere solo di input.

scheda Arduino UNO con i pin analogici

I sei ingressi impostano 1024 diversi valori, che vanno da 0 a 1023, in base alla tensione che leggono, che può essere compresa tra i valori standard 0 volt e 5 volt.

Se dividiamo 5 volt in 1024 parti otteniamo 4.9 milliVolt. Quindi il valore impostato sale di 1 ogni 4.9 millivolt.

Pertanto se uno degli ingressi analogici legge 0 volt, imposta il valore zero. Da 4.9 milliVolt imposta il valore 1. Da 9.8 milliVolt (4.8x2) imposta il valore 2. Da 14.4 milliVolt imposta il valore 3. E così via.

Il valore di tensione presente sugli ingressi analogici viene letto circa 10000 volte al secondo.



ESEMPIO
Alimentiamo la breadboard con i 5 volt prelevati direttamente dalla scheda (cavo rosso) utilizzando la massa GND (cavo nero).

Un fotoresistore è collegata in serie a un resistore con resistenza di valore pari a 4.7 kohm. All'ingresso A0 viene inviata la tensione prelevata ai capi di questo resistore. Essa è tanto più elevata, quanto più corrente circola nel fotoresistore, cioè quanto più elevata è la luce che colpisce il componente.

Un voltmetro indica che al buio abbiamo una tensione letta da A0 pari a 127 mV; alla massima luminosità la tensione sale a 4.51 V

fotoresistore alla minima luminosità fotoresistore alla massima luminosità

Scriviamo uno sketch per permettere il lampeggio del led collegato al pin 12 mediante un resistore da 180 ohm. Più elevata è la luce che colpisce il fotoresistore, più lento è il lampeggio.

codice esempio

Le righe 1 e 2 impostano due variabili, che abbiamo chiamato led e sensore, le quali non subiranno più variazioni. Per quesro viene utilizzata l'istruzione

const int nomevariabile = valore;

In pratica abbiamo impostato, mediante le variabili, i pin 12 e A0 per il funzionamento.
La riga 5 imposta il pin 12 (led) come output

pinMode(led, OUTPUT);

La riga 10 è quella oggetto di questa pagina. Infatti viene letto il valore analogico (tensione sul resistore da 4.7 kohm) dall'ingresso A0, viene inserito nella variabile pausa e utilizzato nel comando delay.

int pausa = analogRead(sensore);

La variabile pausa è tanto più elevata quanto più elevata è la luce che colpisce il fotoresistore.
Le righe 11 e 13 rispettivamente attivano e disattivano il led. Le righe 12 e 14 inseriscono le pause.
Pertanto più luce causa un lampeggio più lento (pausa maggiore).


sicurezza elettrica ing. Vito Barone


HOMEELETTRONICACOMPONENTIIMPIANTIELETTROTECNICA