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
}