O que é digitalRead()?
Share
A digitalRead() é uma função interna nativa do ecossistema Arduino que efetua a leitura lógica das portas de entrada digital de um pino de controle, retornando o valor binário correspondente: HIGH ou LOW.
Funcionamento Prático do Comando digitalRead()
Ler o estado físico de sensores externos (fim de curso, botões ou infravermelhos) exige monitorar portas lógicas. Ao usar microcontroladores como o Arduino Uno R3 SMD, a leitura digital processa dados de entrada do loop principal. Passos de projeto:
-
Configuração de Direção: O pino monitorado deve ser programado na inicialização como entrada por meio da chamada
pinMode(pino, INPUT)oupinMode(pino, INPUT_PULLUP). - Valor Retornado: Retorna HIGH se a tensão física presente no pino lido superar o limite mínimo lógico (tipicamente acima de 3V em placas de 5V) e LOW se a tensão estiver próxima a 0V.
- Uso Condicional: Comumente associado a instruções condicionais if-else para desviar o fluxo operacional do robô em caso de cliques físicos.
Para evitar estados lógicos flutuantes indesejados ao deixar o pino livre, recomenda-se usar resistores físicos de pull-up ou pull-down na entrada física.
Perguntas Frequentes (FAQ)
- O que acontece se eu ler um pino digital com digitalRead() deixado sem conexão física externa?
- O pino entrará em estado lógico flutuante (floating), agindo como uma micro-antena sensível a ruídos eletrostáticos e retornando valores alternados HIGH e LOW de forma imprevisível.
- Por que usar a configuração INPUT_PULLUP associada ao digitalRead()?
- A configuração ativa o resistor pull-up de silício interno da placa conectado ao VCC, garantindo leitura lógica estável HIGH padrão quando o botão ou chave externa está aberto.