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.
As imagens abaixo descrevem o circuito através de um diagrama elétrico e um modelo de feito em simulador 123d.circuit.oi:
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:
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.
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.
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.
Onde encontrar alguns doscomponentes:
- Arduino R3 Uno
- DCcEle DCduino (clone do Arduino R3 Uno)
- Protoboard com 400 furos
- Protoboard com 830 furos
- Cabos do tipo macho-macho com 10cm
- Cabos do tipo macho-macho com 20cm
Obrigado pela atenção e até o próximo post!