fbpx
ArduinoNovidadeSérie Arduino

Ligar e Desligar LED com Botão (Push Button – Chave Táctil) com Arduino

O botão push button é um tipo de interruptor simples utilizado para acionar ou interromper um circuito elétrico. Quando o botão é pressionado, ele fecha um circuito elétrico, enviando um sinal elétrico para um dispositivo ou sistema, iniciando uma ação específica. Quando o botão é liberado, o circuito é aberto novamente, interrompendo a ação.

O botão push button é comumente utilizado em uma variedade de aplicações, desde aparelhos eletrônicos, como controle remotos, calculadoras, teclados e eletrodomésticos, até equipamentos industriais e sistemas de automação.

A imagem mostra uma foto tirada de um botão Push Button
Figura 1: Botão push button – Chave Táctil.

O princípio de funcionamento do botão push button é bastante simples. Internamente, esse componente possui contatos elétricos que estão normalmente separados. Ao pressionar o botão, o mecanismo interno move esses contatos elétricos, permitindo que eles se toquem e que a corrente flua no circuito.

Figura 3: Mecanismo interno do botão push button.

Nesse tutorial, vamos aprender como utilizar um botão do tipo push button/chave táctil para acionar um LED com Arduino. Desse modo, vamos aprender como ler uma porta digital da placa Arduino e forma de funcionamento do botão push button.

Além disso, esse tutorial também visa colocar em prática o uso da estrutura de decisão if…else (Se/senão), que torna possível múltiplos testes agrupados. Uma instrução escrita no comando else será executada se a condição do comando if for falsa. Para saber mais veja o post Fundamentos de Programação para Arduino.


VÍDEO PASSO A PASSO NO YOUTUBE

Vídeo 1: Tutorial em vídeo – Como ligar e desligar um LED usando botão push button no Arduino.



MATERIAIS NECESSÁRIOS

1 x Placa UNO SMD R3 Atmega328 compatível com Arduino UNO;
1 x Cabo USB;
1 x Protoboard;
1 x Resistor de 200 Ω ou 220 Ω;
1 x Resistor de 10 kΩ;
1 x Botão tipo push button;
1 x LED vermelho difuso de 5 mm;
Fios de jumper macho-macho.

ESQUEMÁTICO DE LIGAÇÃO DOS COMPONENTES

Inicialmente, certifique-se que a sua placa Arduino esteja desligada. Em seguida, monte o circuito utilizando o LED, os resistores e o botão.

Ao montar seu circuito na protoboard preste atenção nos seguintes pontos:

• O terminal mais longo do LED (ânodo) encontra-se conectado a um resistor de 220 Ω e a porta digital 10 da placa UNO. O terminal mais curto do LED (cátodo) deve ser conectado ao GND;
• O botão possui 4 terminais que são interligados aos pares, de modo que quando pressionada os 4 são conectados gerando continuidade no circuito;
• O botão deve ser montado com dois terminais abaixo da cavidade central da protoboard e os outros dois acima;
• Vamos conectar o push button com um resistor de 10 kΩ pull-down (resistor conectado no GND). Desta forma, quando o botão estiver pressionado a placa UNO retornará nível lógico alto (HIGH).

Após a montagem do circuito, certifique-se de que todas as ligações estão corretas e, então, conecte sua placa Arduino ao computador para realizar a programação.


ELABORANDO O CÓDIGO

Após a montagem do circuito, vamos a programação do Sketch. Conforme, mencionado anteriormente, o objetivo deste projeto é ligar e desligar um LED com um botão push button. Desta forma, quando o botão for pressionado o LED deverá acender e retornará ao estado desligado quando o botão deixar de ser pressionado.

Vamos entender a lógica de programação deste projeto a partir dos seguintes passos:

1. Declarar as variáveis:

O primeiro passo na construção do Sketch será a declaração de variáveis. Desta forma, definimos a porta digital 7, em que o botão está conectado, a variável buttonPin, definimos a porta digital 10, em que o LED está conectado, a variável ledPin, e criamos a variável estadoButton, do tipo inteiro, para armazenar o estado (HIGH ou LOW) do botão.

2. Configurar as portas de saída e entrada:

Na função setup() configuraremos as portas de entrada e saída da placa UNO. A porta 10 (ledPin) deve ser configurada como saída e a porta 7 (buttonPin) deve ser configurada como entrada.

3. Realizar a leitura da porta digital:

Na função loop() escreveremos todos os comandos e operações para ligar e desligar o LED com o botão. Iniciamos o loop() realizando a leitura da porta digital 7 (buttonPin), para isso utilizaremos a função digitalRead(buttonPin), e armazenaremos este valor na variável estadoButton.

4. Realizar a comparação

Utilizaremos a lógica do if…else para comparar se a variável estadoButton encontra-se em nível alto ou baixo (chave pressionada ou chave não pressionada). Se a variável estadoButton estiver em nível lógico alto (chave pressionada) o LED será ligado através do comando digitalWrite(ledPin, HIGH);. Senão, o LED deve ser desligado por meio da instrução digitalWrite(ledPin, LOW);.

Desta forma, o Sketch deste projeto ficará da seguinte maneira:

int buttonPin = 7;//Define buttonPin no pino digital 7
int ledPin = 10;//Define ledPin no pino digital 10
int estadoButton = 0;//Variável responsável por armazenar o estado do botão (ligado/desligado)

void setup(){
  pinMode(ledPin , OUTPUT);//Define ledPin (pino 10) como saída
  pinMode(buttonPin , INPUT);//Define buttonPin (pino 7) como entrada
}

void loop(){
  estadoButton = digitalRead(buttonPin);//Lê o valor de buttonPin e armazena em estadoButton
  if (estadoButton == HIGH) {//Se estadoButton for igual a HIGH ou 1
    digitalWrite(ledPin , HIGH);//Define ledPin como HIGH, ligando o LED
    delay(100);//Intervalo de 100 milissegundos
  }
  else { //Senão = estadoButton for igual a LOW ou 0
    digitalWrite(ledPin, LOW);//Define ledPin como LOW, desligando o LED
  }
}


EXTRA

Você também pode fazer este mesmo projeto substituindo o LED por um buzzer. Disponibilizamos esse projeto para você visualizar e simular no Tinkercad Para isso, acesse o seguinte link: www.blogdarobotica.com/tinkercad-buzzerbotao.

Obrigado a todos e qualquer dúvida deixe nos comentários abaixo!

Abraços,

Carol Correia Viana

Dúvidas? Deixe seu comentário

Bacharel em Engenharia Elétrica com ênfase em Eletrônica, mestra em Engenharia Industrial e especialista em Docência com ênfase em Educação Inclusiva. Atua no setor de Desenvolvimento de Produtos na Casa da Robótica. Editora chefe e articulista no Blog da Robótica. Fanática por livros, Star Wars e projetos Maker.

Carol Correia Viana

Bacharel em Engenharia Elétrica com ênfase em Eletrônica, mestra em Engenharia Industrial e especialista em Docência com ênfase em Educação Inclusiva. Atua no setor de Desenvolvimento de Produtos na Casa da Robótica. Editora chefe e articulista no Blog da Robótica. Fanática por livros, Star Wars e projetos Maker.

Deixe uma pergunta

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.