Jogo Buzz Wire Aprimorado com Contador de Pontos Embutido – Projeto Arduino Nano
Componentes e Materiais
| Arduino Nano R3 | 1 |
| Buzzer | 1 |
| LED 5mm: Vermelho | 1 |
| LED 5mm: Verde | 1 |
| Registrador de Deslocamento Texas Instruments SN74HC595N - Serial para Paralelo | 1 |
| Display LED 7 Segmentos, Vermelho | 1 |
| Resistor 221 Ω | 10 |
| Bateria 9V (genérica) | 1 |
Ferramentas e Máquinas Necessárias
- Furadeira, Chave de fenda
- Ferro de solda (genérico)
Sobre o Projeto
Depois de brincar com Arduino apenas para passar o tempo por um tempo, decidi fazer uma versão aprimorada do bom e velho jogo buzz wire que conta suas falhas e enlouquece se você encostar no fio 10 vezes!
Aqui está um vídeo de mim sendo ruim no meu próprio jogo:
O código fonte é dividido em três arquivos.
No código, um "período de graça" de 500ms é definido após cada falha. Você pode modificar isso para dar ao jogador uma pausa maior após cada buzz.
Também notei no final que os LEDs estão um pouco brilhantes demais! Sinta-se à vontade para trocar os dois resistores usados neles por outros mais fortes. Os meus são apenas cerca de 100ohms.
Para o anel, usei a ponta de um chaveiro. A vantagem é que você pode apenas abri-lo e não precisa navegar todo o caminho de volta no fio.
Espero que gostem do meu projeto!
Código
nervous_meter_score.inoArduino
int latchPin = 3; // ST_CP [RCK] no 74HC595
int clockPin = 4; // SH_CP [SCK] no 74HC595
int dataPin = 2; // DS [S1] no 74HC595
const int STOP_LED = 6;
const int GO_LED = 7;
const int BUZZ = 8;
const int TOUCH = 10;
const int fail_threshold = 9;
enum Status { STOP = 0, GO = 1 };
void setup() {
Serial.begin(9600);
displayInitialSetup();
gameInitialSetup();
}
Status status = GO;
int failCounter = 0;
void loop() {
while (failCounter > fail_threshold) {
gameover();
}
switch (status) {
case GO:
digitalWrite(GO_LED, HIGH);
digitalWrite(STOP_LED, LOW);
digitalWrite(BUZZ, LOW);
if (digitalRead(TOUCH) == HIGH) {
status = STOP;
}
break;
case STOP:
digitalWrite(GO_LED, LOW);
failCounter++;
if (failCounter > fail_threshold) break;
displayDigit(failCounter);
Serial.println(failCounter);
failAlarm();
status = GO;
break;
}
}
byte seg_spin[6] = {
B10000000, B01000000, B00100000,
B00010000, B00001000, B00000100
};
void gameover() {
for (int i = 0; i < 6; i++) {
digitalWrite(BUZZ, HIGH);
delay(5);
digitalWrite(BUZZ, LOW);
delay(50);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, seg_spin[i]);
digitalWrite(latchPin, HIGH);
delay(10);
}
}
score_display.inoArduino
byte seg_digits[10] = {
B11111100, // = 0
B01100000, // = 1
B11011010, // = 2
B11110010, // = 3
B01100110, // = 4
B10110110, // = 5
B10111110, // = 6
B11100000, // = 7
B11111110, // = 8
B11100110 // = 9
};
void displayDigit(int x) {
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, seg_digits[x]);
digitalWrite(latchPin, HIGH);
}
void displayInitialSetup() {
pinMode(latchPin, OUTPUT);
pinMode(dataPin, OUTPUT);
pinMode(clockPin, OUTPUT);
displayDigit(0);
}
game.inoArduino
void gameInitialSetup() {
pinMode(STOP_LED, OUTPUT);
pinMode(GO_LED, OUTPUT);
pinMode(BUZZ, OUTPUT);
pinMode(TOUCH, HIGH);
digitalWrite(TOUCH, LOW);
}
void failAlarm() {
digitalWrite(STOP_LED, HIGH);
beep();
delay(150);
digitalWrite(STOP_LED, LOW);
digitalWrite(BUZZ, LOW);
delay(500);
}
void beep() {
for(int i = 0; i < 3; i++) {
digitalWrite(BUZZ, HIGH);
delay(50);
digitalWrite(BUZZ, LOW);
delay(50);
}
}
Esquemáticos
Lembre-se que o D10 conectado ao 5V constituirá uma falha fazendo o buzzer bipar e o contador contar. No esquemático não havia uma forma de mostrar isso.
Então construa seus fios e estrutura de acordo :)

Processo de manufatura
- Malha de Fio de Tungstênio Reage com Ar? Uma Visão Técnica
- A Arte e Ofício das Tiaras: História, Materiais e Design Moderno
- Arame Farpado Explicado: História, Construção e Usos Modernos
- Painel de Controle para Flight Simulator 2020 com Arduino Nano – Display LCD e CDI
- Painel de Chaves e LEDs para Microsoft Flight Simulator 2020 com Arduino
- Counter do Python em collections: Contagem Eficiente, Atualização e Operações Aritméticas
- Domine a Inserção de Fios em Projetos Elétricos no E3.series com E3.cable
- Controlar um LED via Bluetooth com Arduino – Guia DIY Simples
- Kit MOSMusic: MOSFET, Arduino e Mais - Iluminação Sincronizada com Música
- Soluções Pioneiras de Wire EDM para Produção Complexa de Moldes e Matrizes