Introduction:
A buzzer system is a system designed to allow a certain number of players to determine the first one to answer by "buzzing in". Making a buzzer system according to the http://science.energy.gov/wdts/nsb/high-school/high-school-regionals/hs-rules-forms-resources/make-your-own-competition-buzzer/ (plan for buzzer same to official one for National Science Bowl) costs $300, a high price tag for up and coming clubs wanting to compete without sufficient funds. Thus I decided to make one for my school team/club.
List of materials:
-Arduino Micro ( or other micro controller)
- housing box ( made of multiple pieces of acrylic )
- 8 buzzers
Composed of
- buzzer - momentary push button on top of cylinder
- light - 10 mm LED housed on top of small acrylic box
- wires
- multiplexer
- perfboards
- AC-DC power supply
- switch
- buttons
- LEDs
- Molex
Code :
Starts up, sets up pins, cycles through multiplexed pins 0-7 to see if buzzer was pressed. When a buzzer is pressed at that index it will go to a light the corresponding led and then wait for another button to be pressed on top of the box, when button is pressed the buzzer LED turns off, and the button LED lights up to designate that the reset has happened and buzzer presses are now being looked for.
//8 button goes to 0 led
//9 button goes to 1 led
//10 button goes to 2 led
//11 button goes to 3 led
//12 button goes to 4 led
//13 button goes to 5 led
//14 button goes to 6 led
//15 button goes to 7 led
int r0 = 0; //value of select pin at (s0)
int r1 = 0; //value of select pin at (s1)
int r2 = 0; //value of select pin at (s2)
int r3 = 0; //value of select pin at (s3)
int count; //which y pin we are selecting
int buzzedPin;
void lightLED(){
// sets multiplexer to be demultiplexer
pinMode(12,OUTPUT);
//lights corresponding LED
switch(buzzedPin){
case 0: r0 = 0 ;
r1 = 0;
r2 = 0;
r3 = 0;
break;
case 1: r0 = 1 ;
r1 = 0;
r2 = 0;
r3 = 0;
break;
case 2: r0 = 0 ;
r1 = 1;
r2 = 0;
r3 = 0;
break;
case 3: r0 = 1 ;
r1 = 1;
r2 = 0;
r3 = 0;
break;
case 4: r0 = 0 ;
r1 = 0;
r2 = 1;
r3 = 1;
break;
case 5: r0 = 0 ;
r1 = 0;
r2 = 1;
r3 = 1;
break;
case 6: r0 = 0 ;
r1 = 1;
r2 = 1;
r3 = 1;
break;
case 7: r0 = 0 ;
r1 = 1;
r2 = 1;
r3 = 1;
break;
}
digitalWrite(A0, r0);
digitalWrite(A1, r1);
digitalWrite(A2, r2);
digitalWrite(A3, r3);
digitalWrite(12, HIGH);
while(digitalRead(2) == HIGH){
delay(10);
};
digitalWrite(3,HIGH);
digitalWrite(12,LOW);
delay(1000);
digitalWrite(3,LOW);
}
void setup(){
pinMode(A0, OUTPUT); // s0
pinMode(A1, OUTPUT); // s1
pinMode(A2, OUTPUT); // s2
pinMode(A3, OUTPUT); // s3
pinMode(2,INPUT); //nextQuestionButton
pinMode(3,OUTPUT); //clicked button light
pinMode(4,OUTPUT);//on light
Serial.begin(9600);
}
void loop () {
pinMode(4,HIGH); // shows that the system is on.
for (count=0; count<=7; count++) {
// resets the multiplexer to become input
pinMode(12, INPUT);
// select the bit
r0 = bitRead(count,0); // use this with arduino 0013 (and newer versions)
r1 = bitRead(count,1); // use this with arduino 0013 (and newer versions)
r2 = bitRead(count,2); // use this with arduino 0013 (and newer versions)
r3 = 1;
//r0 = count & 0x01; // old version of setting the bits
//r1 = (count>>1) & 0x01; // old version of setting the bits
//r2 = (count>>2) & 0x01; // old version of setting the bits
digitalWrite(A0, r0);
digitalWrite(A1, r1);
digitalWrite(A2, r2);
digitalWrite(A3, r3);
if(digitalRead(12) == LOW){
Serial.println(count+8);
buzzedPin = count;
lightLED();
}
}
}
Point of View : System is designed for a 8 players, 2 teams of 4 designated by different colored LEDs. (with one question reader). Used for practice for National Science Bowl.
Paper Prototype:
See WilsonTang_FinalProject(PaperPrototype) picture
Verplank Diagram:
See WilsonTang_FinalProject(Verplank Diagram) picture
State Diagram:
See WilsonTang_FinalProject(StateDiagram) file
Sample Buzzer Picture:
see WilsonTang_FinalProject(Buzzer) picture
Sample Wire Picture:
see WilsonTang_FinalProject(Wiring) picture
Video Link :