O Arduino é muito popular para a construção de projetos e jogos de passatempo, e já usamos o Arduino para construir o jogo Snake, Ping pong, Space Race, etc. Hoje estamos construindo mais um jogo popular usando o Arduino- Buzz wire game ou Steady hand game.
Para este projeto, usaremos um Arduino Uno, Buzzer e dois fios de alumínio. Um LCD 16x2 também tem interface para exibir o status do jogo. Ambas as extremidades do fio do labirinto serão conectadas ao pino digital 2 e 3 do Arduino, e o fio da alça será conectado ao pino de aterramento do Arduino. Os pinos digitais são definidos como pinos INPUT_PULLUP. Portanto, quando o cabo da alça toca o cabo do labirinto, ele muda o estado dos pinos digitais para baixo e a campainha emite um som.
Um diodo é conectado na extremidade do fio do labirinto, então quando você passa por aquele diodo e toca o fio do labirinto com o fio de alça redonda, apenas um pino (Pino 3) ficará baixo. Nessa condição, um texto de parabéns (muito bem) será exibido no LCD.
Componentes necessários
- Arduino Uno
- Fio de Alumínio
- LCD 16x2
- Módulo I 2 C
- Tábua de pão
- Buzzer
- Diodo
Diagrama de circuito
O diagrama de circuito para o Arduino Buzz Wire Game é fornecido acima. Os pinos SCL e SDA do módulo I2C são conectados aos pinos A5 e A4 do Arduino, enquanto os pinos V CC e GND do módulo I2C são conectados aos pinos 5V e GND do Arduino. O trilho positivo do Buzzer é conectado ao pino digital 4 do Arduino e o trilho negativo é conectado ao GND. Corte um fio de alumínio e dobre-o em forma de Zig-Zag. Solde um diodo em uma das pontas do fio. Em seguida, corte outro fio para fazer uma alça e dobre uma das pontas em um laço.
O LCD 16x2 também pode ser conectado ao Arduino sem usar um módulo I2C.
Conecte os pinos D2 e D3 do Arduino a ambas as extremidades do fio Zig-Zag e conecte o fio da alça ao pino GND do Arduino.
Explicação do código
O código completo para este jogo Arduino Buzz Wire é fornecido no final do documento.
Comece seu código incluindo o arquivo de biblioteca para o módulo LCD. A biblioteca LiquidCrystal_I2C.h é usada para comunicação I2C entre os módulos Arduino e LCD.
#incluir
Depois disso, defina os pinos do Arduino para a campainha, o ponto inicial do fio e o ponto final do fio.
const int startPin = 2; const int endPin = 3; const int buzzer = 4;
Em seguida, defina duas variáveis start & end_. Essas variáveis serão usadas para salvar as leituras do fio.
início interno, fim;
Agora defina o pino da campainha como saída e os pinos do fio como INPUT_PULLUP . O Arduino tem resistores pull-up internos com um valor de cerca de 20k ohm. Esses resistores podem ser conectados internamente usando INPUT_PULLUP . Definir um INPUT_PULLUP é funcionalmente o mesmo que conectar um resistor de ~ 20k ohm entre o pino e + 5V.
pinMode (buzzer, OUTPUT); pinMode (startPin, INPUT_PULLUP); pinMode (startPin, INPUT_PULLUP);
Dentro do loop vazio, leia o status dos pinos de arame.
start = digitalRead (startPin); end_ = digitalRead (endPin);
Agora compare as leituras dos pinos de arame. Se os dois pinos estiverem baixos, isso significa que você tocou o fio, então a campainha fará um som, e se o pino inicial do fio estiver alto e o pino final estiver baixo, isso significa que você atingiu o ponto final.
if (start == LOW && end _ == LOW) {digitalWrite (buzzer, HIGH); atraso (1000); digitalWrite (campainha, LOW); lcd.setCursor (0,0); lcd.print ("Tente novamente"); Serial.print ("Tente novamente"); } else if (start == HIGH && end _ == LOW) {lcd.setCursor (0,0); lcd.print ("Muito bem"); Serial.print ("Muito bem"); }
Testando o jogo Buzz Wire
Depois de conectar o hardware e enviar o código fornecido, você pode começar a jogar. Portanto, segure o fio com um círculo em sua mão e tente passar o fio com o círculo até o diodo soldado com fio em zigue-zague, sem deixar o fio redondo tocar em qualquer lugar. Se você tocar nos fios, a campainha emitirá um som e o LCD exibirá “ Tente novamente ”. E se você completar o jogo sem tocar no fio, ele mostrará “ Muito bem ”.
É assim que você pode fazer um jogo Buzz Wire com um Arduino. Um vídeo de trabalho e o código completo são fornecidos abaixo.