O que é digitalRead()?

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) ou pinMode(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.
Voltar para o blog