Project showcase

Quiz Buzzer Film Prop © CC0

I was commissioned to create a quiz buzzer that would be used in a video shoot.

  • 1,104 views
  • 1 comment
  • 3 respects

Components and supplies

Necessary tools and machines

Battery operated hand drill
Dremel Rotary Tool

Apps and online services

About this project

I was randomly contacted by this person who wanted to simulate a quiz buzzer with a countdown timer for a video production. She gave a brief of what she was after. A big red button with light was important, but 7-segment display was optional.

The unit is portable and operates on a 12V AGM battery that is mounted inside the enclosure.

Once the Arduino is powered by the flip switch, the 7-segment will display a dash and beep 2 times to indicate that it's ready to start countdown, starting from 9 to 0. At every count, the buzzer will also beep once and at the press of the big pushbutton, the countdown stops and the buzzer will give off a long beep.

A reset button (normally closed and spring-loaded) at the back of the box temporarily cuts off power to the Arduino to restart the sequence.

Code

Final Arduino CodeArduino
I'm not expert in coding, but what I've managed to put together works well to achieve the desired outcome of this project.
//using 8-channel relay board to control 7-segment display. Pin 1&5 are common ground.
//Decimal Point on SSD unused.
int Relay1 = 12; //pin 7 of SSD (A - topmost segment)
int Relay2 = 11; //pin 6 of SSD (B - topright segment)
int Relay3 = 10; //pin 4 of SSD (C - bottomright segment)
int Relay4 = 9; //pin 3 of SSD (D - bottommost segment)
int Relay5 = 8; //pin 2 of SSD (E - bottomleft segment)
int Relay6 = 7; //pin 9 of SSD (F - topleft segment)
int Relay7 = 6; //pin 10 of SSD (G - middle segment)
int Relay8 = 5; //for Pushbutton LED
int Buzz = 3; //onBoard Buzzer (PWM capable)
int LED = 13; //simulate Pushbutton LED
int Pushbutton = 2; //Big red pushbutton

void one()
{
  digitalWrite(Relay1, HIGH);
  digitalWrite(Relay2, LOW);
  digitalWrite(Relay3, LOW);
  digitalWrite(Relay4, HIGH);
  digitalWrite(Relay5, HIGH);
  digitalWrite(Relay6, HIGH);
  digitalWrite(Relay7, HIGH);
}
void two()
{
  digitalWrite(Relay1, LOW);
  digitalWrite(Relay2, LOW);
  digitalWrite(Relay3, HIGH);
  digitalWrite(Relay4, LOW);
  digitalWrite(Relay5, LOW);
  digitalWrite(Relay6, HIGH);
  digitalWrite(Relay7, LOW);
}
void three()
{
  digitalWrite(Relay1, LOW);
  digitalWrite(Relay2, LOW);
  digitalWrite(Relay3, LOW);
  digitalWrite(Relay4, LOW);
  digitalWrite(Relay5, HIGH);
  digitalWrite(Relay6, HIGH);
  digitalWrite(Relay7, LOW);
}

void four()
{
  digitalWrite(Relay1, HIGH);
  digitalWrite(Relay2, LOW);
  digitalWrite(Relay3, LOW);
  digitalWrite(Relay4, HIGH);
  digitalWrite(Relay5, HIGH);
  digitalWrite(Relay6, LOW);
  digitalWrite(Relay7, LOW);
}
void five()
{
  digitalWrite(Relay1, LOW);
  digitalWrite(Relay2, HIGH);
  digitalWrite(Relay3, LOW);
  digitalWrite(Relay4, LOW);
  digitalWrite(Relay5, HIGH);
  digitalWrite(Relay6, LOW);
  digitalWrite(Relay7, LOW);
}
void six()
{
  digitalWrite(Relay1, LOW);
  digitalWrite(Relay2, HIGH);
  digitalWrite(Relay3, LOW);
  digitalWrite(Relay4, LOW);
  digitalWrite(Relay5, LOW);
  digitalWrite(Relay6, LOW);
  digitalWrite(Relay7, LOW);
}
void seven()
{
  digitalWrite(Relay1, LOW);
  digitalWrite(Relay2, LOW);
  digitalWrite(Relay3, LOW);
  digitalWrite(Relay4, HIGH);
  digitalWrite(Relay5, HIGH);
  digitalWrite(Relay6, HIGH);
  digitalWrite(Relay7, HIGH);
}
void eight()
{
  digitalWrite(Relay1, LOW);
  digitalWrite(Relay2, LOW);
  digitalWrite(Relay3, LOW);
  digitalWrite(Relay4, LOW);
  digitalWrite(Relay5, LOW);
  digitalWrite(Relay6, LOW);
  digitalWrite(Relay7, LOW);
}
void nine()
{
  digitalWrite(Relay1, LOW);
  digitalWrite(Relay2, LOW);
  digitalWrite(Relay3, LOW);
  digitalWrite(Relay4, LOW);
  digitalWrite(Relay5, HIGH);
  digitalWrite(Relay6, LOW);
  digitalWrite(Relay7, LOW);
}
void zero()
{
  digitalWrite(Relay1, LOW);
  digitalWrite(Relay2, LOW);
  digitalWrite(Relay3, LOW);
  digitalWrite(Relay4, LOW);
  digitalWrite(Relay5, LOW);
  digitalWrite(Relay6, LOW);
  digitalWrite(Relay7, HIGH);
}
void dash()
{
  digitalWrite(Relay1, HIGH);
  digitalWrite(Relay2, HIGH);
  digitalWrite(Relay3, HIGH);
  digitalWrite(Relay4, HIGH);
  digitalWrite(Relay5, HIGH);
  digitalWrite(Relay6, HIGH);
  digitalWrite(Relay7, LOW);
  digitalWrite(Buzz, HIGH);
  delay(50);
  digitalWrite(Buzz, LOW);
  delay(100);
  digitalWrite(Buzz, HIGH);
  delay(50);
  digitalWrite(Buzz, LOW);
}

void setup()
{
  pinMode(Relay1, OUTPUT);
  pinMode(Relay2, OUTPUT);
  pinMode(Relay3, OUTPUT);
  pinMode(Relay4, OUTPUT);
  pinMode(Relay5, OUTPUT);
  pinMode(Relay6, OUTPUT);
  pinMode(Relay7, OUTPUT);
  pinMode(Relay8, OUTPUT);
  pinMode(Buzz, OUTPUT);
  pinMode(LED, OUTPUT);
  pinMode(Pushbutton, INPUT);
  digitalWrite(Pushbutton, HIGH);
  digitalWrite(Relay1, LOW);
  digitalWrite(Relay2, LOW);
  digitalWrite(Relay3, LOW);
  digitalWrite(Relay4, LOW);
  digitalWrite(Relay5, LOW);
  digitalWrite(Relay6, LOW);
  digitalWrite(Relay7, LOW);
  digitalWrite(Relay8, HIGH);
 }

void loop(){
 dash();
 delay(5000);
 if (digitalRead(Pushbutton) == LOW){
    nine();
    digitalWrite(Relay8, LOW);
    digitalWrite(Buzz, HIGH);
    delay(1000);
    digitalWrite(Buzz, LOW);
    delay(3600000);
    digitalWrite(Relay8, HIGH);
  } else{
    nine();
    digitalWrite(Buzz, HIGH);
    delay(50);
    digitalWrite(Buzz, LOW);
    delay(500);
  }
 if (digitalRead(Pushbutton) == LOW){
    nine();
    digitalWrite(Relay8, LOW);
    digitalWrite(Buzz, HIGH);
    delay(1000);
    digitalWrite(Buzz, LOW);
    delay(3600000);
    digitalWrite(Relay8, HIGH);
  } else{
    nine();
    delay(500);
  }
  if (digitalRead(Pushbutton) == LOW){
    eight();
    digitalWrite(Relay8, LOW);
    digitalWrite(Buzz, HIGH);
    delay(1000);
    digitalWrite(Buzz, LOW);
    delay(3600000);
    digitalWrite(Relay8, HIGH);
  } else{
    eight();
    digitalWrite(Buzz, HIGH);
    delay(50);
    digitalWrite(Buzz, LOW);
    delay(500);
  }
  if (digitalRead(Pushbutton) == LOW){
    eight();
    digitalWrite(Relay8, LOW);
    digitalWrite(Buzz, HIGH);
    delay(1000);
    digitalWrite(Buzz, LOW);
    delay(3600000);
    digitalWrite(Relay8, HIGH);
  } else{
    eight();
    delay(500);
  }
  if (digitalRead(Pushbutton) == LOW){
    seven();
    digitalWrite(Relay8, LOW);
    digitalWrite(Buzz, HIGH);
    delay(1000);
    digitalWrite(Buzz, LOW);
    delay(3600000);
    digitalWrite(Relay8, HIGH);
  } else{
    seven();
    digitalWrite(Buzz, HIGH);
    delay(50);
    digitalWrite(Buzz, LOW);
    delay(500);
  }
  if (digitalRead(Pushbutton) == LOW){
    seven();
    digitalWrite(Relay8, LOW);
    digitalWrite(Buzz, HIGH);
    delay(1000);
    digitalWrite(Buzz, LOW);
    delay(3600000);
    digitalWrite(Relay8, HIGH);
  } else{
    seven();
    delay(500);
  }
  if (digitalRead(Pushbutton) == LOW){
    six();
    digitalWrite(Relay8, LOW);
    digitalWrite(Buzz, HIGH);
    delay(1000);
    digitalWrite(Buzz, LOW);
    delay(3600000);
    digitalWrite(Relay8, HIGH);
  } else{
    six();
    digitalWrite(Buzz, HIGH);
    delay(50);
    digitalWrite(Buzz, LOW);
    delay(500);
  }
  if (digitalRead(Pushbutton) == LOW){
    six();
    digitalWrite(Relay8, LOW);
    digitalWrite(Buzz, HIGH);
    delay(1000);
    digitalWrite(Buzz, LOW);
    delay(3600000);
    digitalWrite(Relay8, HIGH);
  } else{
    six();
    delay(500);
  }
  if (digitalRead(Pushbutton) == LOW){
    five();
    digitalWrite(Relay8, LOW);
    digitalWrite(Buzz, HIGH);
    delay(1000);
    digitalWrite(Buzz, LOW);
    delay(3600000);
    digitalWrite(Relay8, HIGH);
  } else{
    five();
    digitalWrite(Buzz, HIGH);
    delay(50);
    digitalWrite(Buzz, LOW);
    delay(500);
  }
  if (digitalRead(Pushbutton) == LOW){
    five();
    digitalWrite(Relay8, LOW);
    digitalWrite(Buzz, HIGH);
    delay(1000);
    digitalWrite(Buzz, LOW);
    delay(3600000);
    digitalWrite(Relay8, HIGH);
  } else{
    five();
    delay(500);
    }
    if (digitalRead(Pushbutton) == LOW){
    four();
    digitalWrite(Relay8, LOW);
    digitalWrite(Buzz, HIGH);
    delay(1000);
    digitalWrite(Buzz, LOW);
    delay(3600000);
    digitalWrite(Relay8, HIGH);
    } else{
    four();
    digitalWrite(Buzz, HIGH);
    delay(50);
    digitalWrite(Buzz, LOW);
    delay(500);
    }
    if (digitalRead(Pushbutton) == LOW){
    four();
    digitalWrite(Relay8, LOW);
    digitalWrite(Buzz, HIGH);
    delay(1000);
    digitalWrite(Buzz, LOW);
    delay(3600000);
    digitalWrite(Relay8, HIGH);
    } else{
    four();
    delay(500);
    }
    if (digitalRead(Pushbutton) == LOW){
    three();
    digitalWrite(Relay8, LOW);
    digitalWrite(Buzz, HIGH);
    delay(1000);
    digitalWrite(Buzz, LOW);
    delay(3600000);
    digitalWrite(Relay8, HIGH);
    } else{
    three();
    digitalWrite(Buzz, HIGH);
    delay(50);
    digitalWrite(Buzz, LOW);
    delay(500);
    }
    if (digitalRead(Pushbutton) == LOW){
    three();
    digitalWrite(Relay8, LOW);
    digitalWrite(Buzz, HIGH);
    delay(1000);
    digitalWrite(Buzz, LOW);
    delay(3600000);
    digitalWrite(Relay8, HIGH);
    } else{
    three();
    delay(500);
    }
    if (digitalRead(Pushbutton) == LOW){
    two();
    digitalWrite(Relay8, LOW);
    digitalWrite(Buzz, HIGH);
    delay(1000);
    digitalWrite(Buzz, LOW);
    delay(3600000);
    digitalWrite(Relay8, HIGH);
    } else{
    two();
    digitalWrite(Buzz, HIGH);
    delay(50);
    digitalWrite(Buzz, LOW);
    delay(500);
    }
    if (digitalRead(Pushbutton) == LOW){
    two();
    digitalWrite(Relay8, LOW);
    digitalWrite(Buzz, HIGH);
    delay(1000);
    digitalWrite(Buzz, LOW);
    delay(3600000);
    digitalWrite(Relay8, HIGH);
    } else{
    two();
    delay(500);
    }
    if (digitalRead(Pushbutton) == LOW){
    one();
    digitalWrite(Relay8, LOW);
    digitalWrite(Buzz, HIGH);
    delay(1000);
    digitalWrite(Buzz, LOW);
    delay(3600000);
    digitalWrite(Relay8, HIGH);
    } else{
    one();
    digitalWrite(Buzz, HIGH);
    delay(50);
    digitalWrite(Buzz, LOW);
    delay(500);
    }
    if (digitalRead(Pushbutton) == LOW){
    one();
    digitalWrite(Relay8, LOW);
    digitalWrite(Buzz, HIGH);
    delay(1000);
    digitalWrite(Buzz, LOW);
    delay(3600000);
    digitalWrite(Relay8, HIGH);
    } else{
    one();
    delay(500);
    }
    if (digitalRead(Pushbutton) == LOW){
    one();
    digitalWrite(Relay8, LOW);
    digitalWrite(Buzz, HIGH);
    delay(1000);
    digitalWrite(Buzz, LOW);
    delay(3600000);
    digitalWrite(Relay8, HIGH);
    } else{
    zero();
    digitalWrite(Buzz, HIGH);
    delay(1000);
    digitalWrite(Buzz, LOW);
    }
    delay(900000);
}
  
   
 

Schematics

Proof of Concept wiring diagram (Tinkercad)
Arduino Code is simulated on TinkerCad and actual components used vary slightly. For instance, the 7-segment display is powered by a 5v 8-channel relay board as a quick fix solution.
Wiring diagram ulfm4sy9y0

Comments

Author

Limpinglim
LIMPINGLIM
  • 3 projects
  • 2 followers

Additional contributors

Published on

April 27, 2018

Members who respect this project

15056260 10210963450146204 8257791474118531868 n

and 2 others

See similar projects
you might like

Similar projects you might like

Arduino Bluetooth Basic Tutorial

by Mayoogh Girish

  • 454,928 views
  • 42 comments
  • 239 respects

Home Automation Using Raspberry Pi 2 And Windows 10 IoT

Project tutorial by Anurag S. Vasanwala

  • 285,512 views
  • 95 comments
  • 671 respects

Security Access Using RFID Reader

by Aritro Mukherjee

  • 229,362 views
  • 38 comments
  • 236 respects

OpenCat

Project in progress by Team Petoi

  • 196,152 views
  • 154 comments
  • 1,363 respects
Add projectSign up / Login