Buzz Wire Game Using Arduino

ABOUT THIS PROJECT

After playing around with Arduino just to pass time for a while, I decided to make an enhanced version of the good old buzz wire game that counts your failures and goes nuts if you hit the wire 10 times!

The source code is divided in three files.

In the code, a “grace period” of 500ms is set after each failure. You can modify that to give the player a bigger break after each buzz.

Also something I noticed at the end was that the LEDs are a bit too bright! Feel free to swap the two resistors used on them with stronger ones. Mine are only about 100ohms.

For the ring, I have used the end of a key-chain. The good thing about it is that you can just open it and won’t have to navigate all the way back on the wire.

int latchPin = 3;      // ST_CP [RCK] on 74HC595
int clockPin = 4;      // SH_CP [SCK] on 74HC595
int dataPin = 2;     // DS [S1] on 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);
  }
}

SCHEMATICS

Schematic

DOWNLOADJust keep in mind the D10 getting connected to the 5V, will constitute a failure causing the buzzer to beep and counter to count. In the schematic there wasn’t a way to show it.
So build up your wires and structure accordingly 🙂

Nms schem f9tfogfa7g

Source And Credit – behrooz66

Leave a Reply

Your email address will not be published. Required fields are marked *