Olá, como estão? A princípio iremos realizar um contador. Entretanto para esse projeto usaremos o KIT básico com Arduíno UNO da WJ Componentes.
Componentes Utilizados
OU
Funcionamento do Projeto Contador
Como foi comentado anteriormente, hoje iremos fazer um projeto para demonstrar como estar usar o botão no Arduíno UNO. Portanto iremos desenvolver um contador que incrementa +1, decrementa -1 ou reinicia a variável.
Montagem do Projeto Contador
Logo após compra dos componentes na WJ Componentes, vamos à montagem! Em seguida conectamos os botões na protoboard de um lado ligamos o GND da protoboard e do outro conectamos nos pinos 2, 3 e 4 do Arduíno UNO.
Obs.: cuidado ao conectar os botões, dependendo da forma que conecte eles podem não funcionar corretamente.
Contudo segue abaixo uma imagem que demonstra a montagem do circuito.
Diagrama Esquemático do Projeto Contador
Código-fonte do Projeto Contador
Em seguida teremos o código completo do projeto do contador com Arduíno UNO.
//Definições -----------------------------------------------------------------------------------------
#define btn1 2 // Define pino do botão 1
#define btn2 3 // Define pino do botão 2
#define btn3 4 // Define pino do botão 3
//Variáveis Globais ----------------------------------------------------------------------------------
byte cont = 0; // Variável de Controle
//Setup ----------------------------------------------------------------------------------------------
void setup() {
Serial.begin(9600); // Inicializa a serial com 9600
pinMode(btn1, INPUT_PULLUP); // Configura o pino como INPUT PULL-UP
pinMode(btn2, INPUT_PULLUP); // Configura o pino como INPUT PULL-UP
pinMode(btn3, INPUT_PULLUP); // Configura o pino como INPUT PULL-UP
}
//Loop -----------------------------------------------------------------------------------------------
void loop() {
if(!digitalRead(btn1)){ // Verifica se o botão 1 foi pressionado
cont++; // Caso tenha incrementa +1 a cont
while(!digitalRead(btn1)){delay(10);} // Loop até que o botão 1 seja solto
Serial.print(F("Contador: ")); // Imprime a quantidade de cont na Serial
Serial.println(cont);
}
else if(!digitalRead(btn2)){ // Verifica se o botão 2 foi pressionado
cont--; // Caso tenha decrementa -1 a cont
while(!digitalRead(btn2)){delay(10);} // Loop até que o botão 2 seja solto
Serial.print(F("Contador: " )); // Imprime a quantidade de cont na Serial
Serial.println(cont);
}
else if(!digitalRead(btn3)){ // Verifica se o botão 3 foi pressionado
while(!digitalRead(btn3)){cont = 0;} // Loop até que o botão 3 seja solto
Serial.println(F("Contador Reiniciado!")); // Imprime que o contador foi reiniciado
}
}
Vamos dar uma olhada mais de perto no código:
Definições de pinos
Primeiramente temos que estar definindo dos pinos que utilizamos em nosso projeto.
//Definições -----------------------------------------------------------------------------------------
#define btn1 2 // Define pino do botão 1
#define btn2 3 // Define pino do botão 2
#define btn3 4 // Define pino do botão 3
Variáveis Globais
Em seguida declaramos uma variável global para controle chamada cont, ela irá ser responsável por armazenar um valor que será impresso para o usuário.
//Variáveis Globais ----------------------------------------------------------------------------------
byte cont = 0; // Variável de Controle
Função Setup
Então agora na função setup, iremos iniciar a serial com uma velocidade de 9600 e configurar os pinos dos botões como INPUT PULL-UP.
//Setup ----------------------------------------------------------------------------------------------
void setup() {
Serial.begin(9600); // Inicializa a serial com 9600
pinMode(btn1, INPUT_PULLUP); // Configura o pino como INPUT PULL-UP
pinMode(btn2, INPUT_PULLUP); // Configura o pino como INPUT PULL-UP
pinMode(btn3, INPUT_PULLUP); // Configura o pino como INPUT PULL-UP
}
Função Loop
Indo agora para a função loop, iremos verificar se o botão 1 é igual a 0, ou seja, se o botão foi pressionado ou não. Contudo caso tenha sido pressionado iremos incrementar +1 a variável cont e fazemos um loop até que o botão seja solto. Assim que o botão for solto imprimimos o valor de cont na Serial. Em seguida realizamos esse mesmo procedimento para todos os botões, porém, ao invés de incrementar iremos decrementar ou atribuir 0 a cont.
//Loop -----------------------------------------------------------------------------------------------
void loop() {
if(!digitalRead(btn1)){ // Verifica se o botão 1 foi pressionado
cont++; // Caso tenha incrementa +1 a cont
while(!digitalRead(btn1)){delay(10);} // Loop até que o botão 1 seja solto
Serial.print(F("Contador: ")); // Imprime a quantidade de cont na Serial
Serial.println(cont);
}
else if(!digitalRead(btn2)){ // Verifica se o botão 2 foi pressionado
cont--; // Caso tenha decrementa -1 a cont
while(!digitalRead(btn2)){delay(10);} // Loop até que o botão 2 seja solto
Serial.print(F("Contador: " )); // Imprime a quantidade de cont na Serial
Serial.println(cont);
}
else if(!digitalRead(btn3)){ // Verifica se o botão 3 foi pressionado
while(!digitalRead(btn3)){cont = 0;} // Loop até que o botão 3 seja solto
Serial.println(F("Contador Reiniciado!")); // Imprime que o contador foi reiniciado
}
}
Assim finalizamos o código-fonte com a explicação do projeto contador com Arduíno UNO.
Resultado do Projeto
Por fim esse foi o resultado obtido com o projeto.
Agradecemos sua Presença
Por fim, espero que tenham gostado e aprendido. Então compartilhe com seus colegas e deixe um comentário de qual projeto deveria ser o próximo aqui no Blog da WJ Componentes!!
Enfim estarei deixando o arquivo do Arduíno e Fritzing, link dos posts anteriores referentes ao projeto e software e sites utilizados.
Fique à vontade para tirar suas dúvidas nos comentários.
Software e Sites Utilizados
Post Relacionados
- Código Morse com Arduíno UNOOlá, como estão? Hoje iremos desenvolver um decodificador de código… Leia mais: Código Morse com Arduíno UNO
- Como Programar pelo Celular o Arduíno!Olá, como estão? A princípio iremos explicar como programar pelo… Leia mais: Como Programar pelo Celular o Arduíno!
- Como Programar por BlocosOlá, como estão? A princípio iremos falar sobre alguns sites… Leia mais: Como Programar por Blocos
- Contador com Botões no Arduíno UNOOlá, como estão? A princípio iremos realizar um contador. Entretanto… Leia mais: Contador com Botões no Arduíno UNO
- Jogo da Forca com Arduíno UNOOlá, como estão? A princípio iremos falar sobre a Serial… Leia mais: Jogo da Forca com Arduíno UNO
Posts mais Recentes
- Programando Relé RF 4331 -Instruções de emparelhamento do modo de alternância Modo de… Leia mais: Programando Relé RF 433
- Acionando motor DC por meio do pino “Touch” do ESP-32Neste projeto, vamos explorar uma aplicação ainda mais dinâmica e… Leia mais: Acionando motor DC por meio do pino “Touch” do ESP-32
- Acendendo led RGB por meio do pino “Touch” do ESP-32No último post, exploramos o fascinante mundo dos pinos touch… Leia mais: Acendendo led RGB por meio do pino “Touch” do ESP-32
- Utilizando os Pinos touch do ESP32Nesse projeto Vamos aprender a usar os pinos touch´s do… Leia mais: Utilizando os Pinos touch do ESP32
- Como Programar e Localizar o Endereço de uma Tela OLED I2C com Arduinoeste guia, vou levá-lo através dos passos para programar uma… Leia mais: Como Programar e Localizar o Endereço de uma Tela OLED I2C com Arduino
Julio Cesar Bonow Manoel
Cursando Engenharia da Computação pelo Centro Universitário Facens e atua no desenvolvimento de projetos na WJ Componentes. Participante da equipe de robótica Omegabotz.
Deixe um comentário