Arduino - Função I / O Avançada

Neste capítulo, aprenderemos algumas funções avançadas de entrada e saída.

Função analogReference ()

Configura a tensão de referência usada para entrada analógica (ou seja, o valor usado como o topo da faixa de entrada). As opções são -

  • DEFAULT - A referência analógica padrão de 5 volts (em placas Arduino de 5 V) ou 3,3 volts (em placas Arduino de 3,3 V)

  • INTERNAL - Uma referência integrada, igual a 1,1 volts no ATmega168 ou ATmega328 e 2,56 volts no ATmega8 (não disponível no Arduino Mega)

  • INTERNAL1V1 - Uma referência de 1.1 V integrada (apenas Arduino Mega)

  • INTERNAL2V56 - Uma referência integrada de 2,56 V (apenas Arduino Mega)

  • EXTERNAL - A tensão aplicada ao pino AREF (apenas 0 a 5V) é usada como referência

Sintaxe da função analogReference ()

analogReference (type);

type - pode usar qualquer tipo dos seguintes (DEFAULT, INTERNAL, INTERNAL1V1, INTERNAL2V56, EXTERNAL)

Não use nada menos que 0 V ou mais que 5 V para tensão de referência externa no pino AREF. Se você estiver usando uma referência externa no pino AREF, você deve definir a referência analógica para EXTERNA antes de chamar oanalogRead()função. Caso contrário, você causará um curto na tensão de referência ativa (gerada internamente) e no pino AREF, possivelmente danificando o microcontrolador em sua placa Arduino.

Alternativamente, você pode conectar a tensão de referência externa ao pino AREF por meio de um resistor de 5K, permitindo que você alterne entre as tensões de referência externa e interna.

Observe que o resistor irá alterar a tensão que é usada como referência porque há um resistor interno de 32K no pino AREF. Os dois atuam como um divisor de tensão. Por exemplo, 2,5 V aplicados através do resistor produzirão 2,5 * 32 / (32 + 5) = ~ 2,2 V no pino 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
}