Described here is an Arduino-based fastest finger first system. In quiz shows, the buzzer or fastest finger first round is frequently used to determine which candidate (or group) achieves the highest priority in attempting the question. The fastest finger first method involves candidates pressing a key (or buzzer) placed in front of them such that whoever presses the key first gets the right to answer the question first.
Here, the buzzer is emulated by using a keyboard having six switches indicating six candidates. Arduino continuously scans the keys and records the key numbers, one through six, to see which one is pressed first. Key numbers are also displayed on an LCD to indicate which key is pressed first. The authors’ prototype of the project is shown in Fig. 1.
Circuit and working
The circuit diagram of the fastest finger first system using Arduino is shown in Fig. 2. It is built around Arduino Uno board (board1), 16×2 alphanumeric LCD (LCD1), six tactile switches and a few other components.
Main components used in this project are:
Arduino Uno is an AVR ATmega328P microcontroller (MCU)-based development board with six analogue input pins and fourteen digital I/O pins. The MCU has 32kB ISP flash memory, 2kB RAM and 1kB EEPROM.
In this project, a 1×6 matrix keyboard is used as the input device. The row is connected to ground and the six columns are connected to Arduino analogue input pins (A0 through A5) and 5V individually through 1-kilo-ohm resistor.
A 16×2 LCD is connected to digital pins 12, 11, 5, 4, 3 and 2 of Arduino to interface with it. The first pressed key is displayed on the LCD.
Preset VR1 is used to control contrast of the LCD.
Whenever a key is pressed, an LED (LED1), which is connected to digital pin 13 of Arduino, glows for 0.5 seconds.
As observed from Fig. 2, digital pins 12, 11, 5, 4, 3 and 2 of Arduino are connected to RS, E, 4, 5, 6 and 7 pins, respectively, of the LCD. When no keys are pressed, Arduino reads 5V from each column. If more than one key is pressed, Arduino reads 0V from the corresponding column of the fastest pressed key while rejecting the readings from other keys. For example, if 1 is pressed before 6, then A0 pin will be read by Arduino.
The source code is written in Arduino programming language. ATmega328/328P is programmed using Arduino IDE software. Select the correct board from ToolsBoard menu in Arduino IDE and burn the program (sketch) through the standard USB port in your computer.
Source code (fast_press_fast_print.ino) uses LiquidCrystal.h header file provided by Arduino library for working with the LCD.
lcd.begin(16, 2) function helps configure the LCD.
Serial.begin(9600) function initialises the serial port with a baud rate of 9600.
Construction and testing
An actual-size PCB layout of the fastest finger first system is shown in Fig. 3 and its components layout in Fig. 4. Assemble the components as per the circuit diagram on the PCB and connect the 9V battery. After this, the LCD will display “Start the game” message, and users have to press the switch. Then, it will display the number assigned to the candidate who pressed the switch first.
Download PCB and component layout: click here
Download source folder: click here
Souvik Kumar Das is passionate about electronics and MCU-based system design
Shibendu Mahata is M.Tech (gold medalist) in instrumentation and electronics engineering from Jadavpur University. He has keen interest in MCU-based real-time embedded signal processing and process control systems