Como conectar e programar vários botões com um Arduino
Aprenda como conectar vários botões a um Arduino e verificar se eles estão sendo pressionados em um programa.
Os botões são incrivelmente comuns no espaço DIY Arduino, com inúmeros projetos na web contando com esses pequenos interruptores para ativar seu código. Mas como exatamente você pode conectar e programar mais de um botão para funcionar com seu Arduino? Vamos descobrir.
O que estamos fazendo?
Este é um projeto simples projetado para você começar com construções mais complexas do Arduino no futuro. Não daremos trabalho aos nossos botões, mas isso significa que você pode escolher o que gostaria que eles fizessem usando um de nossos outros guias úteis do DIY Arduino.
O que você precisa?
Você só precisa de algumas peças para concluir este projeto, muitas das quais você já terá em sua coleção de peças DIY.
- 4 x interruptores de botão
- 4 resistores de 10kΩ
- 1 x Qualquer tipo de placa Arduino (estamos usando uma Leonardo)
- Fio revestido de PVC/silicone
Conectando vários botões com um Arduino
A fiação para este projeto é simples, mas você deve ter cuidado para evitar que os fios se enrosquem ao fazer cada conexão, pois cada botão requer dois fios diferentes.
Começando de forma simples, faz sentido conectar um botão com sua perna positiva conectada ao pino de 5V em nosso Arduino, e a perna de aterramento do botão conectada ao GND e ao pino digital 2 em nossa placa Arduino. Um resistor deve ser conectado entre a perna de aterramento do botão e o pino GND do Arduino.
Com um botão conectado, é hora de adicionar os outros. Cada botão precisa de seu próprio Pin Digital; escolhemos 2, 3, 4 e 5 para os quatro botões que estamos usando, mas qualquer um dos pinos digitais funcionará. Agora que seu Arduino está todo conectado, é hora de começar a trabalhar no código.
Programando vários botões com um Arduino
O código do projeto é agradável e simples, sem a necessidade de bibliotecas de classes ou outra programação complicada.
Atribuindo botões a alfinetes
Para a primeira etapa, precisamos atribuir nossos botões aos diferentes pinos da placa Arduino. Visto que usamos os pinos digitais 2, 3, 4 e 5, esses são os pinos que declararemos em nosso código. Ele deve ser colocado no topo do seu projeto Arduino, antes de qualquer uma das funções.
int input4Pin = 5;
int input3Pin = 4;
int input2Pin = 3;
int input1Pin = 2;
Configurando os botões
Tal como acontece com a maioria dos projetos Arduino, usaremos uma função que será executada uma vez no início do programa, chamada void setup(). Primeiramente iniciaremos nossa conexão serial com taxa de transmissão de 57600, seguida da inicialização de nossos botões. Isso é tudo que precisamos em nossa função void setup().
void setup()
{
Serial.begin(57600); // this begins the serial connection with a baud rate of 57600
pinMode(input4Pin, INPUT);
pinMode(input3Pin, INPUT);
pinMode(input2Pin, INPUT);
pinMode(input1Pin, INPUT); // these lines declare each of the buttons as an input
}
Detectando pressionamentos de botão
Esta próxima etapa é mais complexa que as outras, pois estaremos criando nossa própria função que lidará com uma variável da função do loop principal. Para começar, precisamos declarar nossa função com uma variável inteira como o código abaixo.
void checkPush(int pinNumber)
Em seguida, precisamos atribuir a variável que estamos usando e criar uma instrução if para detectar quando cada botão é pressionado. Esta função só pode verificar um botão por vez, usando a variável que obtém da função de loop principal para saber qual botão deve ser verificado. Nossa instrução if verifica o estado do botão usando a função digitalRead integrada.
void checkPush(int pinNumber)
{
int buttonPushed = digitalRead(pinNumber);
if (buttonPushed == HIGH) {
// add code here for when a button is pressed
}
else {
// add code here for when a button is not pressed
}
}
O código adicionado à instrução if será executado quando um botão for pressionado, enquanto o código na instrução else só será executado quando um botão não for pressionado.
Construindo o Loop Principal
Finalmente, como último trecho de código que você precisa adicionar ao seu programa, é hora de construir a função void loop(). Precisamos apenas de quatro linhas de código: uma para cada um dos botões que conectamos ao nosso Arduino. Essas linhas chamam a função que criamos na etapa anterior com o número do pino de cada botão.
void loop()
{
checkPush (5);
checkPush (4);
checkPush (3);
checkPush (2);
}
O código finalizado
Depois de ter todo esse código instalado, seu programa finalizado deverá se parecer com o código abaixo. Adicionamos comentários a cada linha para facilitar a compreensão, mas incentivamos você a pesquisar e ler sobre qualquer coisa que não reconheça. Essa pode ser uma ótima maneira de expandir seu conhecimento de codificação.
int input4Pin = 5;
int input3Pin = 4;
int input2Pin = 3;
int input1Pin = 2;
// this declares each of our buttons and their pins
// make sure that you use the pins your buttons are wired to
void setup()
{
Serial.begin(57600); // this begins the serial connection with a baud rate of 57600
pinMode(input4Pin, INPUT);
pinMode(input3Pin, INPUT);
pinMode(input2Pin, INPUT);
pinMode(input1Pin, INPUT); // these lines declare each of the buttons as an input
}
void loop()
{
checkPush (5);
checkPush (4);
checkPush (3);
checkPush (2); // each of these lines calls our checkPush function with a different pin number
}
void checkPush(int pinNumber) // this function expects an integer value when it is called
{
int buttonPushed = digitalRead(pinNumber); // this reads the state of a button based on its pin number
if (buttonPushed == HIGH) { // this checks the state of the button
// add code here for when a button is pressed
}
else {
// add code here for when a button is not pressed
}
}
Sucesso: fiação e programação de vários botões com um Arduino
Este é um projeto fácil de começar quando você deseja aprender sobre hardware e software para Arduinos. Você pode expandir facilmente o que fez com componentes adicionais, dando-lhe a oportunidade de explorar uma variedade de ideias interessantes e criar coisas que o deixem orgulhoso.