Arduino based Game Show Buzzer in an Altoid Tin

The sales people where I work have a weekly meeting and they have decided to have contests in these meetings.

Being a competitive group they needed a system to decide who “raised their hand” first to answer a question.  This of course leads to the use of the Game Show type buzzer system.

Arduino Gameshow Buzzer in an Altoid Tin

Arduino Gameshow Buzzer in an Altoid Tin

Two things need to happen in this system.  There must an indicator to show someone buzzed in and second,  any other buzz ins after the first must be ignored.  Seems simple enough.

For my system I only needed 4 inputs and one additional button to allow the host to reset the system.

Relays or discreet logic could be used to handle all of this.  I was however under a time crunch and a cost crunch so I went the Arduino route.  Looking at all of the parts involved I think this was done for under $20.  The most expensive things were the momentary pushbuttons, but those were “free” as they came from parts from an old radio broadcast console.

Arduino Gameshow Buzzer in an Altoid Tin

Arduino Gameshow Buzzer in an Altoid Tin

For a case I decided that an Altoid tin would be fine.  I had one sitting around and I only needed space to connect the buttons and to display the results via LED.  The handles of the pushbuttons were cut from a piece of conduit (about 4 inches/10cm long).  The pushbuttons were wired to the control box via a DB9 connector.  This allows for the 5 pushbuttons I needed (4 contestant, one reset) .  I used pins 1-5 for the button and pins 6-9 as a common.

Arduino Gameshow Buzzer in an Altoid Tin

With the construction in hand the electronics are next.  All there is to this project is a barebones Arduino, some limiting resistors on the LED outputs, a few LEDs and a 5V regulator.  In the picture you can see a fifth LED in the case.  This was the pin 13 LED that I usually put in projects for testing the barebones build.

Arduino Gameshow Buzzer Schematic

Arduino Gameshow Buzzer Schematic

The software is equally easy to put together.  Scan the 4 lines to see if they go low (I used the internal pull-up resistors to make the circuit easier), if a line goes low light an LED and then go into an endless loop of nothing to basically end the program.  To start again you reset the Arduino.  This is not shown in the schematic but it is done by pulling pin 1 low.

int button1 = 0;

int button2 = 0;
int button3 = 0;
int button4 = 0;
int chuck =1;
void setup() {

pinMode(13, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, INPUT);
pinMode(10, INPUT);
pinMode(11, INPUT);
pinMode(12, INPUT);}

void loop() {
digitalWrite(9, HIGH);
digitalWrite(10, HIGH);
digitalWrite(11, HIGH);
digitalWrite(12, HIGH);

digitalWrite(5, HIGH);
delay (200);
digitalWrite(5, LOW);
delay (200);
digitalWrite(6, HIGH);
delay (200);
digitalWrite(6, LOW);
delay (200);
digitalWrite(7, HIGH);
delay (200);
digitalWrite(7, LOW);
delay (200);
digitalWrite(8, HIGH);
delay (200);
digitalWrite(8, LOW);
delay (200);

while (chuck=1){
button1 = digitalRead(9);
button2 = digitalRead(10);
button3 = digitalRead(11);
button4 = digitalRead(12);
if (button1 == LOW) {
digitalWrite(5, HIGH);
while(1) {
}
} // set the LED on
if (button2 == LOW) {
digitalWrite(6, HIGH);
while(1) {
}
} // set the LED on’
if (button3 == LOW) {
digitalWrite(7, HIGH);
while(1) {
}
} // set the LED on
if (button4 == LOW) {
digitalWrite(8, HIGH);
while(1) {
}
} // set the LED on
}
}

With some testing I found that the reset takes 1-2 seconds.  While you are waiting you of course cannot buzz in.  To let the users know the system is ready I added the quick LED scroll.  This of course increases the time between reset and “ready to go” but it does let the user know that things the system is running and that each LED does in fact light up.

http://www.youtube.com/watch?v=8UfxOmglSBg

In looking into the ways other people created these systems I noticed a few people talking about ties.  This is nothing that I worry about.  If I was setting up a real contest I would be, but these are coworkers and the chance of getting sued is low :)

This entry was written by Chuck , posted on Thursday February 02 2012at 03:02 pm , filed under Uncategorized . Bookmark the permalink . Post a comment below or leave a trackback: Trackback URL.

17 Responses to “Arduino based Game Show Buzzer in an Altoid Tin”

  • [...] The sales team in [Chuck’s] office is a pretty competitive bunch as you might expect, and they decided that they wanted a system which would allow them to challenge one another during their weekly meetings. The competition involves answering questions posed by their manager, but hand raising only works for so long – they needed a definitive way to tell who “buzzed in” to answer a question first. [...]

  • [...] The sales team in [Chuck’s] office is a pretty competitive bunch as you might expect, and they decided that they wanted a system which would allow them to challenge one another during their weekly meetings. The competition involves answering questions posed by their manager, but hand raising only works for so long – they needed a definitive way to tell who “buzzed in” to answer a question first. [...]

  • [...] The sales team in [Chuck’s] office is a pretty competitive bunch as you might expect, and they decided that they wanted a system which would allow them to challenge one another during their weekly meetings. The competition involves answering questions posed by their manager, but hand raising only works for so long – they needed a definitive way to tell who “buzzed in” to answer a question first. [...]

  • [...] The sales team in [Chuck’s] office is a pretty competitive bunch as you might expect, and they decided that they wanted a system which would allow them to challenge one another during their weekly meetings. The competition involves answering questions posed by their manager, but hand raising only works for so long – they needed a definitive way to tell who “buzzed in” to answer a question first. [...]

  • [...] The sales team in [Chuck’s] office is a pretty competitive bunch as you might expect, and they decided that they wanted a system which would allow them to challenge one another during their weekly meetings. The competition involves answering questions posed by their manager, but hand raising only works for so long – they needed a definitive way to tell who “buzzed in” to answer a question first. [...]

  • [...] The sales team in [Chuck’s] office is a pretty competitive bunch as you might expect, and they decided that they wanted a system which would allow them to challenge one another during their weekly meetings. The competition involves answering questions posed by their manager, but hand raising only works for so long – they needed a definitive way to tell who “buzzed in” to answer a question first. [...]

  • [...] The sales team in [Chuck’s] office is a pretty competitive bunch as you might expect, and they decided that they wanted a system which would allow them to challenge one another during their weekly meetings. The competition involves answering questions posed by their manager, but hand raising only works for so long – they needed a definitive way to tell who “buzzed in” to answer a question first. [...]

  • [...] The sales team in [Chuck’s] office is a pretty competitive bunch as you might expect, and they decided that they wanted a system which would allow them to challenge one another during their weekly meetings. The competition involves answering questions posed by their manager, but hand raising only works for so long – they needed a definitive way to tell who “buzzed in” to answer a question first. [...]

  • NeXTWay says:

    I think you can remove the delay by erasing the bootloader and directly flashing the code with ArduinoISP.
    Anyway, very handy :)

  • Ryan Gibson says:

    Hey Chuck,

    Great piece of work you’ve put together here and clever use of the Arduino dev kit.

    Do you have an email I can grab you on? I have a few questions i’d like to fire your way.

    Cheers

    Ryan

  • [...] to get started, head over to Chuck’s website here. And we’re on twitter and Google+, so follow us for news and [...]

  • David Hay says:

    Cool, thanks for this. I’m going to build a similar system with a TI Launchpad (programmed using Energia), so I’ll borrow some of your code for that. If you don’t mind, of course.

  • Dave says:

    I am an arduino noob and wanted this to be my first project. I am using an Arduio UNO and cannot get this to work. I see that in your wiring you have pins hooked to different numbers then you are using in your code.

    I am a complete noob but I am assuming the 5V regulator on your chip is because you are using a bare chip and not an arduino unit.

    Can you help me get this working? My ultimate goal is to get it to not light LED’s but to trigger relays on my relay shield.

    Baby steps first, what I did is connect the switch’s to the pins used in the program and the outputs to the outputs used in the program. Was this the correct thing to do?

    • Chuck says:

      Yes the 5V regulator is to power the bare bones board I built, on an Arduino shield they put a regulator, crystal and all of that other good stuff on the shield.

      Please note that the pinouts in the schematic (a wiring diagram) are the the same as the Arduino IO pinouts.

      If you are using a shield (and it sounds like you are) then yes wiring it up according to the code is the correct thing to do.

      To get a full understanding of what is going on wire up a single input and output, test it. Keep adding to that until you get the number of buttons and outputs you want.

  • Nathan and Kiko says:

    Hello ,
    A group of friends including I were making a game show using arduino boards and buzzers. I was wondering if we could get some help with explanation of the code because we have no idea what some of bits in the code above do.

    I was wondering what the delay in the void loop would do and what does the if statement do.

    Our game show will have 6 buttons, 3 on each side and one reset button so it will have a total of seven buttons. We will be using all 13 pins. When one of the buttons are pressed a LED will turn on and none of the other LEDs will turn on until we reset the board.

    Sorry to bother you,
    Thank you for your time

    • Chuck says:

      The delays are just there for the LED boot up sequence. You can remove that whole section, I just use it as an indicator and check that everything is working.

      The IF statements check to see if the button is pressed. The statement says that if someone presses a button, light the LED and then stop the program. Pressing the RESET button is like pressing the RESET button on the Arduino.

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>