Arduino - Funzione I / O avanzata
In questo capitolo apprenderemo alcune funzioni avanzate di input e output.
Funzione analogReference ()
Configura la tensione di riferimento utilizzata per l'ingresso analogico (ovvero il valore utilizzato come il massimo dell'intervallo di ingresso). Le opzioni sono:
DEFAULT - Il riferimento analogico predefinito di 5 volt (su schede Arduino 5V) o 3,3 volt (su schede Arduino 3,3V)
INTERNAL - Un riferimento integrato, pari a 1,1 volt su ATmega168 o ATmega328 e 2,56 volt su ATmega8 (non disponibile su Arduino Mega)
INTERNAL1V1 - Un riferimento 1.1V integrato (solo Arduino Mega)
INTERNAL2V56 - Un riferimento 2,56 V integrato (solo Arduino Mega)
EXTERNAL - La tensione applicata al pin AREF (solo da 0 a 5 V) viene utilizzata come riferimento
Sintassi della funzione analogReference ()
analogReference (type);
type - può utilizzare qualsiasi tipo di seguito (DEFAULT, INTERNAL, INTERNAL1V1, INTERNAL2V56, EXTERNAL)
Non utilizzare valori inferiori a 0 V o superiori a 5 V per la tensione di riferimento esterna sul pin AREF. Se si utilizza un riferimento esterno sul pin AREF, è necessario impostare il riferimento analogico su EXTERNAL prima di chiamare ilanalogRead()funzione. Altrimenti, cortocircuiterai la tensione di riferimento attiva (generata internamente) e il pin AREF, danneggiando probabilmente il microcontrollore sulla tua scheda Arduino.
In alternativa, è possibile collegare la tensione di riferimento esterna al pin AREF tramite un resistore 5K, consentendo di passare dalla tensione di riferimento esterna a quella interna.
Si noti che il resistore altererà la tensione utilizzata come riferimento perché è presente una resistenza interna da 32K sul pin AREF. I due fungono da partitore di tensione. Ad esempio, 2,5 V applicato attraverso il resistore produrrà 2,5 * 32 / (32 + 5) = ~ 2,2 V al pin AREF.
Example
int analogPin = 3;// potentiometer wiper (middle terminal) connected to analog pin 3
int val = 0; // variable to store the read value
void setup() {
Serial.begin(9600); // setup serial
analogReference(EXTERNAL); // the voltage applied to the AREF pin (0 to 5V only)
// is used as the reference.
}
void loop() {
val = analogRead(analogPin); // read the input pin
Serial.println(val); // debug value
}