Skip to content

albiecr/timer-arduino

Repository files navigation

📜 Description

Simple timer system created using Arduino UNO, with countdown functionality, pause/resume, LED and buzzer alerts, and LCD display for user feedback.

✨ Features

• Countdown timer with configurable time
• Add 30 seconds increments before starting
• Pause and resume functionality
• LCD 16x2 (I2C) real-time display
• Green LED indicates countdown is running
• Red LED + Buzzer alerts when timer ends
• Button debounce handling
• Serial Monitor logging (optional)

📋 Requirements

• Arduino UNO
• LCD 16x2 with I2C module
• 3x push buttons
• 1x Buzzer
• 1x Green LED and 1x Red LED
• Resistors (220Ω for LEDs, optional 10kΩ for pull-downs)
• Breadboard and jumper wires
• Arduino IDE

⚙️ Circuit Schematic

You can view the schematic in the file:
📄 timer-schematic view.pdf

The image below shows the circuit assembled on the Tinkercad platform:

Image

🔌 Pin Connections

Component Arduino Pin
Start Button D2
+30s Button D3
Stop Button D4
Green LED D5
Red LED D6
Buzzer D7
LCD SDA A4
LCD SCL A5

All buttons are connected to GND on one side and use INPUT_PULLUP on the Arduino.

🚀 Upload & Usage

  1. Connect components following the schematic.
  2. Open the .ino file in Arduino IDE.
  3. Select the correct board (Arduino UNO) and port.
  4. Upload the code.
  5. Interact with the buttons:
    • Press +30s to increase the timer
    • Press Start to begin
    • Press Stop to pause
    • Press Start again to resume

🏗️ Code Structure

setup()         // Initializes LCD, pins, and state
loop()          // Handles button presses and countdown logic
startTimer()    // Starts countdown from configured time
resumeTimer()   // Resumes countdown from paused time
stopTimer()     // Pauses countdown and stores time left
endTimer()      // Ends countdown, triggers buzzer/LED
updateDisplay() // Shows time set before starting

📄 License

This project is licensed under the MIT License — see the LICENSE file for details.

✉️ Contact

Albertina Rodrigues - albertinacrodrigues@gmail.com
Project Link: https://github.com/albiecr/arduino-timer-project

🔮 Future Improvements

1. Hardware:

• Add rotary encoder for time configuration
• RTC (Real-Time Clock) integration
• OLED support

2. Software:

• EEPROM time save
• Multiple timer modes (count up / intervals)
• Web interface via ESP8266

🤝 Contributing

Contributions are welcome! Please open an issue or submit a pull request.

  1. Fork the project

  2. Create your feature branch
    git checkout -b feature/AmazingFeature
  3. Commit your changes
    git commit -m 'Add some AmazingFeature'
  4. Push to the branch
    git push origin feature/AmazingFeature
  5. Open a pull request

About

Repository for a timer project using arduino

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages