digitalRead()

digitalRead(pino)

Quando você quer saber se um botão está apertado, se uma chave está fechada ou se um sensor mandou sinal, é o digitalRead() que faz a leitura. Ele olha a tensão no pino e te diz se está "alto" ou "baixo".

Sintaxe

digitalRead(pino);

Parâmetros

  • pino: o número do pino que você quer ler (deve estar como INPUT ou INPUT_PULLUP).

Retorno

Devolve HIGH ou LOW (tipo int). No Uno, uma tensão acima de ~3V lê como HIGH; perto de 0V lê como LOW.

Exemplo

const int BOTAO = 2;
const int LED = 13;

void setup() {
  pinMode(BOTAO, INPUT_PULLUP);
  pinMode(LED, OUTPUT);
}

void loop() {
  if (digitalRead(BOTAO) == LOW) { // com pull-up, apertado = LOW
    digitalWrite(LED, HIGH);
  } else {
    digitalWrite(LED, LOW);
  }
}

Notas e cuidados

  • Pino em INPUT puro sem resistor fica "boiando" e lê valores aleatórios; use INPUT_PULLUP (aí o repouso é HIGH e o apertado é LOW).
  • Nunca aplique mais de 5V num pino do Uno (3,3V no ESP32) — você pode queimar a porta.
  • Para leituras muito rápidas em sequência, cuidado com o "bounce" (repique) mecânico de botões: pode ser preciso um pequeno delay() ou debounce por software.

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

Conhecer o Curso Maker