Project showcase

Quiz Buzzer Film Prop © CC0

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

  • 1,031 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

Similar projects you might like

Arduino Atari Adaptor

Project tutorial by Dante Roumega

  • 6,880 views
  • 6 comments
  • 21 respects

Generating Audio with an Arduino and a Resistor Ladder DAC

Project showcase by 3 developers

  • 2,517 views
  • 5 comments
  • 7 respects

Humidity Measuring Molecule

Project showcase by KatjaNiggl

  • 1,253 views
  • 4 comments
  • 13 respects

Electroplating with Copper

Project tutorial by Ryan Gill

  • 6,619 views
  • 8 comments
  • 14 respects

I2C OLED Display Using Arduino/NodeMCU

by Tarantula3

  • 560 views
  • 2 comments
  • 9 respects

PWM Sound Synthesis

by 3 developers

  • 1,115 views
  • 2 comments
  • 3 respects
Add projectSign up / Login