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
}