Arduino – Entradas digitais

Ao longo do curso já aprendemos a como acionar as saídas digitais do Arduino. Nessa aula vamos descobrir como podemos ler sinais digitais nas entradas, tornando possível saber o estado lógico de cada pino de entrada.


O que são entradas digitais?

Cada pino do Arduino pode ter diversas funções. Na aula passada vimos como é possível configurar um pino para saída e controlar seu estado lógico em 1 (5v) e 0 (gnd). Porém, os pinos digitais também podem ser setados como entrada. Nesse modo, facilmente configurável, é possível ler o estado lógico de um pino. Tal estado será determinado pela tensão presente no pino. Uma tensão maior que 2.5V eleva o pino para estado lógico alto 1. Já, uma tensão menor que 2.5V leva o pino a estado lógico baixo 0.

Na realidade, o limiar não é tão bem definido por uma tensão específica e muda de CI para CI. Um pouco de histerese também poderá estar presente. Para um melhor entendimento aconselho a leitura de um datasheet, no caso do Arduino Mega o microcontrolador é o Atmega1280 ou Atmega2560.


Configurando o pino para entrada:

Configurar o pino para entrada é uma tarefa muito simples. Utilizaremos a mesma função que usamos para setar como saída, porém com um argumento diferente. Você provavelmente fará essa parte no setup.

pinMode(pino,INPUT);

Onde “pino” será o pino escolhido. Exemplo:

pinMode(10,INPUT);

pinMode(12,INPUT);


Lendo o estado de um pino:

Para ler uma entrada digital também usaremos uma função já disposta na biblioteca padrão do Arduino, que é de fácil manuseio. A função retorna o estado lógico do pino, que pode ser LOW ou HIGH, dependendo da tensão presente na entrada.

digitalRead(pino);

Onde “pino” é o pino que queremos ler, veja exemplos a seguir. É imprescindível, antes de utilizar tal função, setar o pino como entrada com pinMode(…) como já foi visto. 

char var;
var = digitalRead(13);

Para ler o estado do pino 13 e salvar em uma variável. Ou:

if (digitalRead(6) == LOW) {
      //executa ação
}

Para executar determinada ação quando o pino 6 estiver em nível lógico baixo.


Essa aula foi um oferecimento da CISTEK, líder em instrumentos de medição para engenharia e eletrônica.

logo