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
INPUTouINPUT_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
INPUTpuro sem resistor fica "boiando" e lê valores aleatórios; useINPUT_PULLUP(aí o repouso éHIGHe 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.