Introduction: 8 Player Quizz Buzzer System Using Arduino
8 player quiz buzzer can be used in various competition organise in school and colleges to identify the team who has pressed the buzzer first.
Advantage of this quiz buzzer circuit is once a team has press the switch others team may press the switch but only number. displayed on display who press switch first. So with the help of this circuit we can easily identify the contestant who has press the switch first. Let build the circuit using a ARDUINO NANO which read the input from push buttons and displays the corresponding number on a display device. It is a simple circuit with minimum number of components and easily can build. The ARDUINO takes into account the time delay between two buttons and the accurate number is displayed. When one of the buttons is pressed, the buzzer starts ringing and the corresponding number is displayed on the 7 segment display.
Step 1: Components:
1. Arduino Nano or any
2. Push Buttons x8
3. Resistors x8 2.2Kohm
4. Resistor 220ohm 1watt
5. 7 Segment Display
6. Male Female headers
7. Buzzer
8. 2N2222 npn transistor x1
9. Resistor 1kohm
10. 9v Battery & connector
11. Dot matrix PCB
Step 2:
Step 3: Circuit Diagram:
Here in circuit we are not using A6 & A7 pins of nano because there is no digital circuit present internally in the chip.
Step 4: Coding:
int x=1;// take int value as 1
void setup()
{ pinMode(A0,INPUT); //analog pins as input
pinMode(A1,INPUT);
pinMode(A2,INPUT);
pinMode(A3,INPUT);
pinMode(A4,INPUT);
pinMode(A5,INPUT);
pinMode(0,INPUT); //digital pins as input
pinMode(1,INPUT);
pinMode(12,OUTPUT); //Digital pins as output for seven seg display
pinMode(11,OUTPUT);
pinMode(10,OUTPUT);
pinMode(9,OUTPUT);
pinMode(8,OUTPUT);
pinMode(7,OUTPUT);
pinMode(6,OUTPUT);
pinMode(3,OUTPUT); // output for buzzer
// set initially display to 0
digitalWrite(12,HIGH); // seg a
digitalWrite(11,HIGH); // seg b
digitalWrite(10,HIGH); // seg c
digitalWrite(9,HIGH); //seg d
digitalWrite(8,HIGH); //seg e
digitalWrite(7,HIGH); // seg f
digitalWrite(6,LOW); //seg g
digitalWrite(3,LOW); // buzzer as off
}
void loop() {
int a=digitalRead(A0); // reading pin values for 8 buttons
int b=digitalRead(A1);
int c=digitalRead(A2);
int d=digitalRead(A3);
int e=digitalRead(A4);
int f=digitalRead(A5);
int g=digitalRead(0);
int h=digitalRead(1);
if(a==LOW) //if 1 player press button
{ if(x==1) // check if x is 1 if yes then execute the code
{ digitalWrite(3,HIGH); // buzzer on
digitalWrite(11,HIGH); // pirnt 1
digitalWrite(10,HIGH);
digitalWrite(9,LOW);
digitalWrite(8,LOW);
digitalWrite(7,LOW);
digitalWrite(6,LOW);
digitalWrite(12,LOW);
x++; //increment x
} }
else if(b==LOW) //if player 2 press button
{ if(x==1) // check if x is 1 if yes then execute the code
{ digitalWrite(3,HIGH);// buzzer on
digitalWrite(11,HIGH); // pirnt 2
digitalWrite(12,HIGH);
digitalWrite(9,HIGH);
digitalWrite(8,HIGH);
digitalWrite(7,LOW);
digitalWrite(6,HIGH);
digitalWrite(10,LOW);
x++; } }
else if(c==LOW) //if player 3 press button
{ if(x==1) // check if x is 1 if yes then execute the code
{ digitalWrite(3,HIGH);// buzzer on
digitalWrite(11,HIGH); // pirnt 3
digitalWrite(12,HIGH);
digitalWrite(10,HIGH);
digitalWrite(9,HIGH);
digitalWrite(6,HIGH);
digitalWrite(7,LOW);
digitalWrite(8,LOW);
x++; } }
else if(d==LOW) //if player 4 press button
{ if(x==1) // check if x is 1 if yes then execute the code
{ digitalWrite(3,HIGH);// buzzer on
digitalWrite(11,HIGH); // pirnt 4
digitalWrite(10,HIGH);
digitalWrite(7,HIGH);
digitalWrite(6,HIGH);
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(12,LOW);
x++;
} }
else if(e==LOW) //if player 5 press button
{ if(x==1) // check if x is 1 if yes then execute the code
{ digitalWrite(3,HIGH);// buzzer on
digitalWrite(10,HIGH); // pirnt 5
digitalWrite(12,HIGH);
digitalWrite(9,HIGH);
digitalWrite(7,HIGH);
digitalWrite(6,HIGH);
digitalWrite(11,LOW);
digitalWrite(8,LOW);
x++;
} }
else if(f==LOW) //if player 6 press button
{ if(x==1) // check if x is 1 if yes then execute the code
{ digitalWrite(3,HIGH);// buzzer on
digitalWrite(10,HIGH); // pirnt 6
digitalWrite(12,HIGH);
digitalWrite(9,HIGH);
digitalWrite(8,HIGH);
digitalWrite(7,HIGH);
digitalWrite(6,HIGH);
digitalWrite(11,LOW); x++; } }
else if(g==LOW) //if player 7 press button
{ if(x==1) // check if x is 1 if yes then execute the code
{ digitalWrite(3,HIGH);// buzzer on
digitalWrite(10,HIGH); // pirnt 7
digitalWrite(12,HIGH);
digitalWrite(9,LOW);
digitalWrite(8,LOW);
digitalWrite(7,LOW);
digitalWrite(6,LOW);
digitalWrite(11,HIGH);
x++;
} }
else if(h==LOW) //if player 8 press button
{ if(x==1) // check if x is 1 if yes then execute the code
{ digitalWrite(3,HIGH);// buzzer on
digitalWrite(10,HIGH); // pirnt 8
digitalWrite(12,HIGH);
digitalWrite(9,HIGH);
digitalWrite(8,HIGH);
digitalWrite(7,HIGH);
digitalWrite(6,HIGH);
digitalWrite(11,HIGH);
x++;
} }
}
17 Comments
3 years ago
The project is very nice. I constructed it. working very nicely.
Some suggestions for those who want to construct this project:
If the length of the wires for each switch is kept very large, as shown in my prototype (which I regularly use in my classroom for quizzes), there are some stray pickup and accidental triggering.
For that I used 1uF styroflex capacitor in parallel witht the switch below the pullup resistor.
Also I made little changes in the code, so that there is no need to reset the system.
After every action the system will reset itself i.e. x=1 after about 5 sec.
check more constructional details in an attractive case, on my website:
http://vsa.edu.in/
Question 3 years ago
HI Rishabh,
In my project the display is not getting reset every time, it takes 2 to 4 clicks to reset, what can be done..
Question 3 years ago
Hi RishabhL,
This project is really nice. I guess you did it on fritzing software. Can you share this project file to open in fritzing. Is to possible to perform simulation on fritzing?
Thank you
Reply 3 years ago
Thank you. I am glad you like it. Sorry I searched for that file but I did't get it. It is very simple to make it on fritzing you can build your own. For simulation I prefer you to use proteus. Fritzing do not have any provision for simulation.
3 years ago
Hi all, 220 ohm resistor not in the circuit. Any one done this project? Is it working?
Reply 3 years ago
Yes there is 220ohm resistor in ckt . This resistor is connected to common ground of 7segment display.
Question 4 years ago
can u post ur video of making this
Question 4 years ago
Hi, what about the 220ohm resistor, where it is get connected? The circuit diagram did not
show this resistor?? Pl help
Question 4 years ago
Instead of seven segment display, is it possible to use LEDs for each participant? What changes in the circuitry will be required for that?
Answer 4 years ago
Yes it is possible and very simple to do. You need leds which will be connected to digital pins and make it high when button is pressed.
4 years ago
Instead of seven segment display, is it possible to use LEDs for each participant? What changes in the circuitry will be required for that?
Question 5 years ago on Step 4
I want to use common anode 7 segment display how to change this program
Reply 5 years ago
Just write LOW on the place of HIGH for pint of 7seg display.
5 years ago
How to reset the system
Reply 5 years ago
Reset by using on board button of arduino nano.
5 years ago
Hello,
I am a beginner. Could u please tell me why you have used a 9v battery here?
Can we do this without using that. Also, in the diagram, the negative edge of the battery is not clear, where it is connected ?
With Regards,
Faaltu_77
Reply 5 years ago
9v battery is used for power supply, you can use 5v to 12 v power supply. Any power supply you can use. Negative terminal of battery is connected to common terminal of 7segment display, arduino nano gnd terminal, npn transistor's emitter terminal and to all push buttons.