Pin analogici.
analogRead(pin);
Legge e restituisce la tensione digitalizzata dal pin. ADC sulla maggior parte delle schede Arduino è 10 bit, quindi il valore di ritorno 0 - 1023 alla tensione 0 è il riferimento sul pin.
analogReference(mode);
Imposta la modalità di funzionamento dell'ADC in base alla modalità - mode:
- DEFAULT - la tensione di riferimento è uguale alla tensione di alimentazione del MCU
- INTERNAL - riferimento interno 1.1V per ATmega168 o ATmega328P e 2.56V per ATmega8.
- INTERNAL1V1 - riferimento 1.1V integrato (solo Arduino Mega).
- INTERNAL2V56 - alimentazione di riferimento interna 2,56V (solo Arduino Mega).
- EXTERNAL - il riferimento sarà la tensione applicata al pin AREF.
Come funziona questo effetto? Il valore 1023 della funzione analogRead() corrisponderà rispettivamente alla tensione di riferimento o superiore, impostando INTERNAL si potrà misurare una tensione da 0 a 1.1V con una precisione di (1.1 / 1023 ~ 1.2 mV), una tensione superiore a 1.1V sarà essere sempre 1023. Dopo aver cambiato la sorgente di tensione di riferimento (analogReference call) le prime misurazioni potrebbero essere instabili.
Non è possibile utilizzare una tensione inferiore a 0 V o superiore a 5 V come riferimento esterno sul pin AREF. Inoltre, quando si utilizza la modalità EXTERNAL, è necessario chiamare analogReference(EXTERNAL) prima di chiamare la funzione analogRead(), altrimenti si potrebbe danneggiare il microcontrollore. È anche possibile collegare il riferimento al pin AREF tramite un resistore da ~5 kΩ, ma poiché l'ingresso AREF ha una propria resistenza di 32 kΩ, il riferimento effettivo sarà ad esempio 2,5 * 32 / (32 + 5) = ~ 2,2 V.
Leggi di più sui pin analogici qui.