analogReference()
analogReference(tipo)
O analogRead() compara a tensão do pino com uma referência pra decidir o número de 0 a 1023. Por padrão essa referência é a alimentação (5V no Uno), mas o analogReference() deixa você trocá-la — útil pra medir sinais pequenos com mais precisão.
Sintaxe
analogReference(tipo);
Parâmetros
- tipo: a fonte de referência. No Uno os principais são:
DEFAULT: a tensão de alimentação (5V).INTERNAL: referência interna (~1,1V no Uno/ATmega328).EXTERNAL: a tensão aplicada no pino AREF.
Retorno
Nada (void).
Exemplo
void setup() {
Serial.begin(9600);
analogReference(INTERNAL); // faixa de 0 a ~1,1V
}
void loop() {
int leitura = analogRead(A0);
Serial.println(leitura);
delay(200);
}
Notas e cuidados
- Depois de mudar a referência, faça uma leitura de descarte (
analogRead()) e ignore o valor: o ADC leva um instante pra estabilizar. - Se usar
EXTERNAL, nunca aplique no pino AREF uma tensão fora da faixa segura, e não useINTERNAL/DEFAULTcom algo ligado no AREF — pode causar curto e danificar o chip. - Os tipos válidos variam por placa (o ESP32, por exemplo, trata referência/atenuação de forma bem diferente). Confira a referência da sua placa.