Skip to content
BeginnerUnoarduino-unotm16377-segment-display

4-Digit 7-Segment Counter with TM1637 & Arduino

Drive a TM1637-based 4-digit 7-segment display with Arduino Uno to show a real-time up/down counter, elapsed timer, and scrolling text. Covers library setup, brightness control, and custom segment mapping.

SolderHub10/17/2026 16 min read 5 views

Overview

The TM1637 is a dedicated LED driver IC that controls a 4-digit 7-segment display over a simple 2-wire protocol (CLK + DIO). It handles all the segment multiplexing internally, which means your Arduino only needs two GPIO pins and a tiny library to display any number from 0000 to 9999, show a colon separator, or write raw segments.

In this project we'll build three modes:

  1. Stopwatch — counts elapsed seconds since boot
  2. Up/Down counter — two buttons increment and decrement
  3. Countdown timer — 60-second countdown with buzzer at zero

💡 Tip

Install the **TM1637Display** library by Avishkar (search 'TM1637' in Arduino Library Manager). The `display.showNumberDecEx()` method handles the colon and leading-zero padding in a single call.

Components

6 items
NameQtyLink
Arduino Uno R3×1Buy ↗
TM1637 4-Digit 7-Segment Display Module×1Buy ↗
Tactile Push Button (6 mm)×2—
10 kΩ Resistors (pull-down)×2—
5V Active Buzzer×1—
Breadboard + Jumper Wires×1—

Need these parts? Get this build sheet by email

Parts list with buy links, plus new builds as they're published. By subscribing you agree to our Privacy Policy. Unsubscribe anytime.

Wiring

The TM1637 module already includes current-limiting resistors on each segment, so direct wiring is safe:

TM1637 PinArduino Pin
CLKD2
DIOD3
VCC5V
GNDGND

Button A (increment) → D5 with 10 kΩ pull-down to GND.
Button B (decrement) → D6 with 10 kΩ pull-down to GND.
Buzzer + → D7.

C++

Live simulation

Steps

  1. 1Install 'TM1637Display' via Arduino Library Manager (search: TM1637)
  2. 2Wire the display and buttons per the table above
  3. 3Upload the sketch — the display should show '0000' on boot
  4. 4Mode 0 starts automatically as a MM:SS stopwatch
  5. 5Press BTN_UP to switch to Up/Down Counter mode
  6. 6Press BTN_DOWN to switch to 60-second Countdown mode
  7. 7In Countdown mode, hold both buttons simultaneously to reset to 60s

Q&A is currently disabled site-wide.

Related projects