digitalRead
Os pinos digitais do Arduino podem ser usados tanto como saída de energia (OUTPUT) quanto como entrada (INPUT). Até agora, fizemos diversas descrições de programas usando os pinos como saída, que é a mais comum. Agora vamos descrever, de maneira simples, como um pino digital pode ser usado como entrada, ou seja, no modo INPUT. Para isso vamos usar uma montagem com botão de pressionar:

Nesta montagem, o botão está conectado ao pino digital 8 do Arduino, através do fio amarelo. O outro lado do botão está conectado, através do fio vermelho, ao pino de 5 V do Arduino. Assim, quando o botão for pressionado, o pino 8 receberá 5 V. No entanto, quando o botão não estiver pressionado, teoricamente não estaria chegando nada ao pino 8. Mas, por conta dos circuitos eletrônicos do Arduino e até mesmo influências externas, o valor percebido no pino 8 pode flutuar, gerando leituras erradas. Para evitar isso, conectamos um dos terminais de um resistor de 10 kΩ ao pino 8 (fio amarelo) e o outro terminal ao GND (fio preto). Com isso garantimos que o pino 8 estará sempre numa voltagem baixa quando o botão não estiver pressionado.
Agora vamos ao programa que vai ler o estado do botão:

Descrição:
- na linha 2, chamamos o pino 8 de botao.
- na linha 3, criamos uma variável para guardar o estado do botão. Inicialmente o estado será LOW, ou seja, 0.
- na linha 6, iniciamos a comunicação serial.
- na linha 7, definimos o pino 8 como entrada (INPUT).
- na linha 12, fazemos a leitura do botão através da instrução digitalRead e guardamos a leitura na variável estado.
- na linha 13, usamos um if para verificar se o botão foi apertado. Neste caso, a leitura de digitalRead será HIGH e é o que aparecerá na variável estado.
- na linha 14 está a instrução que será executada no caso do botão ser apertado.
- na linha 16 está a instrução que será executada no caso do botão não ser apertado.
Para essa montagem, além de simplesmente escrever na tela, podemos fazer com que o botão apertado acenda um LED, ou ligue um motor ou até mesmo inicie o programa todo.
Como você viu, o uso da instrução digitalRead é bem simples: basta indicar qual pino deve ser lido. Como se trada de uma leitura digital, essa instrução indicará 0 (LOW) ou 1 (HIGH). O cuidado que devemos tomar é com a configuração do próprio pino: em geral, usamos a configuração indicada nessa montagem, fazendo com que o pino fique conectado por um resistor ao GND. Nesta configuração, o resistor é chamado “resistor PULLDOWN”. Poderíamos ter feito a ligação ao contrário, ou seja, conectando o pino do Arduino através de um resistor ao 5 V. Neste caso, quando o botão não estivesse apertado, o pino estaria em estado alto (HIGH) e o resistor seria um “resistor PULLUP”.
O próprio Arduino possui, em seu circuito interno, resistores PULLUP e poderíamos evitar essa montagem externa. Mas isso é assunto para um aprofundamento.

Deixe um comentário