A 6-digit count-up and count-down timer using Arduino Uno and a standalone MAX7219 7-segment display driver.
This project implements a 6-digit digital timer using an Arduino Uno and a standalone MAX7219 IC to drive a 7-segment display.
The timer can operate in two modes: count-up and count-down.
Users can configure hours, minutes, and seconds using push buttons, then start or pause the timer.
The MAX7219 handles multiplexing, making the display smooth and efficient.
Optional components include:
- I2C LCD (connected to A4/SDA and A5/SCL) to display the current mode, which field is being set (hours, minutes, seconds), when the timer is ready, and when it reaches zero.
- Buzzers (pins 8 and 9) to indicate when the countdown timer finishes.
This project is intended for learning embedded systems, timing logic, and display driving using the MAX7219.
- Count-Up mode
- Count-Down mode
- 6-digit 7-segment display output (HH:MM:SS)
- Mode selection via button
- Time setup for hours, minutes, and seconds
- Start/Stop button control
- Optional I2C LCD for mode/setting display
- Optional buzzer indicator when timer ends
- Uses standalone MAX7219 IC (not module)
- Debounce-friendly button logic
- Arduino Uno
- MAX7219 IC (standalone)
- 6-digit 7-segment display
- Push buttons:
- Mode
- Next
- Increment
- Start/Stop
- 10k resistor
- 10 µF capacitor
- 0.1 µF capacitor
- Jumper wires and breadboard
- Optional:
- I2C LCD (A4/SDA, A5/SCL)
- Buzzers (pins 8 and 9)
- Arduino IDE
- Required libraries:
- LedControl
- Optional: LiquidCrystal_I2C (if using I2C LCD)
| Device Pin | Microcontroller Pin |
|---|---|
| DIN | 12 |
| CLK | 10 |
| CS | 11 |
| VCC | 5V |
| GND | GND |
| Button Pin | Microcontroller Pin |
|---|---|
| Mode | 2 |
| Next | 3 |
| Increment | 4 |
| Start/Stop | 5 |
| Optional resistor | Use 10k pull-down or internal pull-up |
| Device Pin | Microcontroller Pin |
|---|---|
| I2C LCD SDA | A4 |
| I2C LCD SCL | A5 |
| Buzzer 1 | 8 |
| Buzzer 2 | 9 |
- Install board support in Arduino IDE
- Install required libraries
- Open the Arduino sketch
- Adjust pin assignments if needed
- Upload to the board
When powered on, the 7-segment display first shows the selected mode (UP or DOWN).
Press the Mode button to switch between Count-Up and Count-Down.
Press Next to configure hours, minutes, and seconds using the Increment button.
After setup, press Start/Stop to begin or pause the timer.
The optional I2C LCD displays the current mode, the field being set, when the timer is ready, and signals when the timer reaches zero.
When countdown finishes, the optional buzzers sound as an alert.
MIT License
Amiel Josh Basug
