analogRead()

analogRead(pino)

Sensores do mundo real (potenciômetro, LDR, sensor de temperatura) não falam só "ligado/desligado" — eles variam suavemente. O analogRead() é quem traduz essa tensão contínua num número que o seu código entende, usando o conversor analógico-digital (ADC) do Arduino.

Sintaxe

int valor = analogRead(pino);

Parâmetros

  • pino: o pino analógico a ser lido. No Uno são A0 a A5.

Retorno

Um int de 0 a 1023 (resolução de 10 bits). No Uno, 0 corresponde a 0V e 1023 a ~5V.

Exemplo

void setup() {
  Serial.begin(9600);
}

void loop() {
  int leitura = analogRead(A0);
  float tensao = leitura * (5.0 / 1023.0);
  Serial.println(tensao);
  delay(200);
}

Notas e cuidados

  • Não precisa de pinMode() para ler pinos analógicos — é só chamar.
  • Nunca aplique mais que a tensão de referência (5V no Uno) no pino: você pode danificar o microcontrolador.
  • No ESP32 o ADC é de 12 bits (0 a 4095) e opera em 3,3V, além de não ser perfeitamente linear — o mesmo código dá valores diferentes.

Quer aprender a usar isso em projetos reais, do zero?

Conhecer o Curso Maker