Kit Arduino Iniciante – Projeto 2 – Usando Botões

Venancio Miranda 0

Na postagem de hoje vamos ver como podemos dar mais liberdade a nossos projetos usando botões, desta forma você consegue montar menus, solicitar confirmação de eventos, e outras aplicações distintas.

Se você chegou até este post, para que você não fique perdido, saiba que já vimos até agora:

Montagem:

Vamos começar pelo simples, a montagem dos componentes na sua protoboard. Vamos precisar do seguinte material:

  • 1 Chave Táctil (Botão);
  • Jumper;
  • 1 Led
  • 1 Resistor 330R (Laranja, Laranja, Marron)

Cuidados na montagem:

Durante a montagem, não esqueça de verificar a polaridade do LED na montagem, se você inverter, não há risco de danificar o LED, mas ele não vai acender. Verifique também o botão (Chave Táctil), ela possui 4 terminais, 2 deles (1 e 2 ) são ligados estão ligados juntos e os outros 2 (3 e 4) ligados juntos, no contato oposto:

O ideal é que você tenha um multímetro, para te auxiliar na montagem, mas se não tiver, observe atentamente a imagem a cima para que consiga fazer a montagem correta.

Vamos começar a programar

Acionar LED durante toque no botão:

Podemos fazer o LED acender somente enquanto o botão estiver sendo pressionado. Acompanhe o código abaixo:

#define led 9
#define botao 8

void setup()
{
  pinMode(botao, INPUT_PULLUP);
  pinMode(led, OUTPUT);
}

void loop()
{
  if(digitalRead(botao)== LOW)
  {
    digitalWrite(led, HIGH);
    delay(200);
  }
  else
  {
    digitalWrite(led, LOW);
    delay(200);
  }
}

Acompanhe o resultado a baixo:

Acender Led com um toque e desligar com Outro:

Para montarmos, a montagem na protoboard é a mesma, vai mudar somente o código. Veja abaixo como ficou:

#define led 9
#define botao 8

int estadoLido = LOW;

void setup()
{
  pinMode(botao, INPUT_PULLUP);
  pinMode(led, OUTPUT);
}

void loop()
{
  if(digitalRead(botao)== LOW)
  {
    estadoLido = !estadoLido;
    delay(200);
  }
  
  digitalWrite(led, estadoLido);
  delay(200);
  
}

Desta forma, o LED vai acionar quando pressionarmos uma vez, e permanecerá acesso até pressionarmos o botão novamente.

Explicando o Código

Um detalhe importante, que gostaria que você reparasse. A função pinMode(), tem a função de registrar a nossa placa, como vamos usar um determinado pino, se vamos usar como um pino de entrada ou como um pino de saída.

pinMode(botao, INPUT_PULLUP); nesta linha estamos definindo que o pino chamado botão (Definido no cabeçalho do programa, através do #define botao 8) que seria o pino 8 da nossa placa, como um pino de entrada com resistor de PULL UP internos ativos. Definindo desta forma, você consegue garantir que a chave não tenha um acionamento inesperado ou problema com funcionamento devido a interferências.

No segundo programa proposto, temos a seguinte linha:

estadoLido = !estadoLido; – Nesta linha usamos o operador aritmético ! (Exclamação), que na Algebra Booleana (Uma forma de “calcularmos”, principalmente usada quando usamos componente discretos (Portas Lógicas) na montagem de circuitos) significa que estamos usando está variável Negada, Em resumo, quando definimos que uma variável é igual a ela mesma “Negada”, é o mesmo que dizer que estamos invertendo o valor contido nela.

Gostou ou ficou com alguma duvida?
Deixe os comentários sua opinião…

Vamos para mais um Projeto? Que tal aprendermos sobre os Pinos com conversores analógicos Digital e usarmos junto a potenciômetros….

Escrito por: Venâncio Miranda
Revisado por: Jefferson Proesi

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

8  +  2  =