Arduino Countdown Timer with Menu, EEPROM, and Buzzer Alerts

This project is perfect if you’ve ever wondered how to build a user-friendly countdown timer with an interactive menu, memory storage, and buzzer alerts. This step-by-step guide will walk you through creating an Arduino countdown timer using an I2C 20×4 LCD, push buttons, and a buzzer. The functions of this timer include setting and saving the countdown time, pausing and resetting, and even with buzzer notifications loudly when the time is up.

This project is great for beginners, but it’s also feature-packed for advanced makers. In addition, it uses EEPROM to store your settings, so your countdown configuration will survive even when power is lost. Let’s get started!

Why Build an Arduino Countdown Timer?

Timers are an integral part of a wide variety of activities, from cooking and workout routines to the operations in industry. While there are many timers commercially available, building your own enables feature customization, serves as an introduction to learning about microcontrollers, and, quite frankly, is a fun project.

With this timer, you’ll gain hands-on experience with:

  • Using menus to navigate and configure settings.
  • Saving time data to EEPROM, ensuring your settings persist even after a power cycle.
  • Generating buzzer alerts for both button presses and when the countdown ends.
  • Displaying dynamic information on a 20×4 I2C LCD screen.

Components You’ll Need

Here’s what you need to get started:

  • Arduino Nano (or any compatible microcontroller)
  • I2C 20×4 LCD Display
  • 3 Push Buttons (for Increase, Decrease, and Shift/Set)
  • Buzzer (for audio alerts)
  • Resistors: 10kΩ (for pull-up configuration)
  • Breadboard and connecting wires

arduino countdown timer with menu

Understanding the Circuit

Take a look at the circuit diagram. It’s simple yet functional:

  1. The buttons (Increase, Decrease, and Shift/Set) are connected to digital pins D3, D4, and D5, respectively. Each button is pull-up configured using 10kΩ resistors.
  2. The LCD display communicates via I2C, with SDA and SCL connected to pins A4 and A5.
  3. The buzzer is connected to D6, producing beeps on button presses and a continuous alert when the countdown finishes.
  4. Power is provided through the Arduino’s 5V and GND pins, ensuring stable operation.

How the Buttons Work

The buttons are in a pull-up resistor configuration—normally HIGH, pulled LOW when pressed. This helps to reduce noise and provide a reliable input detection.

Features of the Arduino Countdown Timer

menu of arduino countdown timer

Figure 2: Menu System of Arduino Countdown Timer

Interactive Menu System

The timer has a basic menu system to navigate between “Countdown and “Config modes. You can:

  • Navigate the menu using the Increase and Decrease buttons.
  • Select options using the Shift/Set button.

Configurable Time

In Config mode, you can set:

  • Hours
  • Minutes
  • Seconds

The Shift/Set button cycles through these options, while the Increase and Decrease buttons adjust the values. Once configured, you can save the settings to EEPROM.

EEPROM Memory

The configured time is stored in the EEPROM, meaning it won’t be lost even if the Arduino is powered off. This feature makes the timer reliable for long-term use.

Countdown with Pause and Reset

During the countdown:

  • Press Shift/Set to pause or resume the timer.
  • Press Increase or Decrease while paused to reset the timer to the saved values.

Buzzer Alerts

The buzzer at pin D6 provides:

  • A short beep on every button press for feedback.
  • A 5-second continuous alert when the countdown reaches zero.

prototype of arduino countdown timer

Figure 3: Prototype of Arduino Countdown Timer

Step-by-Step Instructions

Step 1: Assemble the Circuit

Follow the circuit diagram to connect all components:

  • Connect the buttons to pins D3, D4, and D5 with 10kΩ pull-up resistors.
  • Attach the LCD display to the I2C pins (SDA to A4, SCL to A5).
  • Connect the buzzer to pin D6.

Step 2: Upload the Code

Use the Arduino IDE to upload the code provided in this project. Ensure you have the required libraries:

  • Wire.h for I2C communication.
  • LiquidCrystal_I2C.h for LCD functionality.

The code handles:

  • Menu navigation
  • Time configuration
  • Countdown logic
  • EEPROM storage
  • Buzzer control

Step 3: Test the Timer

  1. Power on the Arduino. The LCD will display the main menu with two options: “Countdown and “Config.”
  2. Navigate to “Config mode using the buttons. Set the hours, minutes, and seconds, then save the settings.
  3. Select “Countdown mode to start the timer. Watch as the time counts down, and listen for the buzzer when it hits zero.

Code for the Arduino Countdown Timer

Here’s the full code for your Arduino timer. Copy and paste it into the Arduino IDE.

How It Works

During Setup

The EEPROM stores the configured time, ensuring the timer remembers your settings even after a restart. When you power on the Arduino, the saved time is loaded automatically.

During Countdown

The LCD updates every second to show the remaining time in HH:MM:SS format. The buzzer provides an audible alert at the end of the countdown, ensuring you don’t miss it.

Menu and Navigation

The menu is intuitive and easy to handle because of the timer’s setting and starting via this menu. The buttons guarantee smooth interaction with audible feedback while setting the time and starting the countdown.

Applications of the Arduino Countdown Timer

This versatile countdown timer finds application in:

  1. Kitchens: to keep track of cooking times.
  2. Workouts: for the timing of your exercises and rest periods.
  3. Labs: for timing experiments.
  4. Games: during board games or challenges

Conclusion

This project of building an Arduino Countdown Timer with Menu, EEPROM, and Buzzer Alerts is quite an interesting study process. You’ll learn essential topics such as I2C communication, using EEPROM memory, and easy interface development. Moreover, it can be used everywhere in life for whatever purpose you will find necessary or convenient.

So, grab your Arduino, some buttons, a buzzer, and build your personal countdown timer starting today! For real-this time, literally.

 

Leave a Comment