You can view the group assignment at the following link: Group Assignment
| Arduino Uno | Seeed Studio XIAO ESP32C3 | |
|---|---|---|
| VERSION | UNO R3 | ESP32C3 |
| # OF PINS | 14 digital input/output pins 6 analog pins |
11 digital I/O 4 of them could be Analog |
| MICROCONTROLLER | ATMega328P | ESP32-C3 SoC |
| OSCILLATOR | 16 MHz crystal oscillator | 17.5 MHz crystal oscillator |
| DATA SHEET | Arduino Uno R3 Datasheet | ESP32-C3 Datasheet |
To do this week’s assignment, I used the Arduino IDE to write and upload code to the microcontrollers. The Arduino IDE is a popular development environment for programming Arduino boards and other compatible microcontrollers. It provides a user-friendly interface and a wide range of libraries and tools to make programming easier.
You could download the Arduino IDE from the official website: Arduino IDE Download
To upload the code to the Arduino Uno, I connected the board to my computer using a USB cable. Then, I opened the Arduino IDE, selected the correct board type and port, and uploaded the code.
#include <LiquidCrystal_I2C.h> to #include "LiquidCrystal_I2C.h". Alternatively, you can keep it as is, but place the header file inside the Arduino IDE lib directory.
The system configures all hardware pins, starts Serial communication, and initializes the LCD. It reads the saved best reaction time from EEPROM and resets it if the value is invalid. Finally, it waits for the user to press the button before starting the game.
The LCD displays “READY…”, and LEDs light up sequentially with buzzer sounds. This creates a visual and audio countdown to prepare the player.
After the countdown, the program waits for a random time between 1–4 seconds. This prevents the player from predicting when the signal will appear.
All LEDs turn on and a buzzer tone plays to indicate the start of the reaction test. At that exact moment, the program records the start time using millis().
When the button is pressed, the system records the end time and calculates the reaction speed. It compares the result with the stored best time and updates EEPROM if a new record is achieved.
The LCD shows the current reaction time along with the best recorded time. After a short delay, the LEDs turn off and the system waits to begin a new round.
Before Soldering
After Soldering