Utilizando os pinos digitais do Arduino para ler sinais

Olá a todos,

nesse post descreveremos como realizar a leitura de sinais nos pinos digitais do Arduino. Como os pinos são digitais conseguiremos apenas ler sinais do tipo ligado/desligado. Sinais do tipo analógico devem ser lidos pelos pinos analógicos  do Arduino que veremos em outro post.

No exemplo desse post faremos o Arduino ler o valor de um botão identificando quando o mesmo está ou não pressionado. Porém esse código pode ser utilizado para fazer a leitura de outros componentes do circuito ou sensores dos nossos projetos.

O primeiro passo é a montagem do circuito: Coloque um botão na protoboard e ligue um de seus terminais ao pino 5V do Arduino conforme indicado pela imagem. Em seguida conecte outro terminal do botão a um resistor e esse resistor ao terra da placa. Finalmente conecte o outro terminal do botão ao pino digital que utilizaremos para ler o valor do botão.

Eventualmente você precisará trocar algum dos terminais para acertar qual terminal do botão deve estar conectado a cada componente.

Circuito para demonstrar a leitura do botão pelo Arduino
Circuito para demonstrar a leitura do botão pelo Arduino

As imagens abaixo descrevem o circuito através de um diagrama elétrico e um modelo de feito em simulador 123d.circuit.oi:

Diagrama elétrico do circuito
Diagrama elétrico do circuito
Modelo do circuito para letra do botão
Modelo do circuito para letra do botão

O próximo passo é escrevermos o programa que fará a leitura do estado do botão, para isso crie um novo arquivo no IDE. Começamos nosso programa indicando em qual pino o nosso botão está ligado através de uma constante:

Indicando o pino que o botão está ligado
Indicando o pino que o botão está ligado

Em seguida configure o pino para leitura utilizando a constante INPUT. Utilizaremos a comunicação serial através do cabo USB para mostrar o estado do botão, dessa forma saberemos que o circuito está funcionando e a placa lendo corretamente o botão.

Portanto precisamos configurar a porta serial com o uso do método begin objeto Serial. Esse método recebe o valor da velocidade de envio de dados em bits por segundos. Utilize a velocidade de 9600.

Configurando o pino de leitura e a porta serial
Configurando o pino de leitura e a porta serial

Agora deveremos escrever a função loop. O primeiro passo é a leitura do estado do pino com a função digitalRead. Quando o botão é pressionado o circuito entre o pino e o 5V da placa é fechado, circulando corrente. Nessa situação o pino estará com o estado HIGH. Quando o botão é solto o circuito é interrompido e o pino volta para o estado LOW.

Em seguida enviamos o estado do pino para o nosso computador através da comunicação serial. Para isso utilize o método println do objeto Serial. Utilizamos o controle de fluxo IF/ELSE para verificar em qual estado o pino está e enviar o texto correto. O controle IF faz uma comparação entre dois valores e executa o código entre chaves quando essa comparação é verdadeira. Já a cláusula ELSE tem seu código executado quando a comparação do operador IF é falsa.

Terminamos o programa adicionando uma chamada à função delay para podemos ver o resultado no computador.

Código da função Loop
Código da função Loop

Ligue a placa ao computador com o cabo USB e execute o programa. Em seguida abra o monitor serial para ver o resultado da execução. Pressione e solte algumas vezes o botão para ver o programa funcionando.

Testando o projeto
Testando o projeto

Onde encontrar alguns doscomponentes:

Obrigado pela atenção e até o próximo post!

Deixe um comentário

O seu endereço de e-mail não será publicado.