7-Segment
Interfacing TM1637 7-Segment with Arduino Uno
What is the TM1637?
The TM1637 drives a 4-digit 7-segment display (almost always with a center colon for clock displays) over a 2-wire protocol that looks like I2C but isn't quite — it uses its own bit-banged timing rather than the standard I2C peripheral, which is why it needs a dedicated software library instead of Wire.h. The chip also has a built-in keypad-scan input, though most hobbyist breakout modules don't wire up the buttons for it.
Its main appeal over the MAX7219 is simplicity for small digit counts: only two signal wires (CLK, DIO) instead of three, no external current-limiting resistor to worry about, and a one-line brightness call. It's the natural choice for clocks, timers, and simple 4-digit counters where you don't need the MAX7219's cascading or larger digit count.
Specifications
| Digits | 4 x 7-segment digits, most modules include a center colon (:) |
| Operating voltage | 3.3V - 5V DC |
| Interface | 2-wire (CLK, DIO) — I2C-like bit-banged protocol, not standard I2C |
| Brightness | 8 software-adjustable levels via a single library call |
| Extra hardware feature | Built-in key-scan input for a keypad matrix (unused on most breakout modules) |
TM1637 Pinout
| Pin | Name | Description |
|---|---|---|
| 1 | CLK | Clock line for the TM1637 protocol |
| 2 | DIO | Bidirectional data line for the TM1637 protocol |
| 3 | VCC | Power, 3.3V-5V DC |
| 4 | GND | Ground |
Despite the CLK/DIO naming looking like I2C SCL/SDA, do not wire this to a shared I2C bus or drive it with Wire.h — the timing is proprietary to the TM1637 and will not respond to standard I2C transactions. Use a dedicated library (TM1637Display by Avishorp, or similar) which bit-bangs the correct timing on any two GPIO pins.
Setting Up TM1637 with Arduino Uno
Library
TM1637Display by Avishay Orpaz
Library Manager → search "TM1637" → install "TM1637 by Avishay Orpaz"
Wiring
| Component pin | Arduino Uno pin | Note |
|---|---|---|
| CLK | D2 | Any digital pin works — bit-banged protocol, not hardware I2C |
| DIO | D3 | Any digital pin works |
| VCC | 5V | — |
| GND | GND | — |
Example code
Colon segment (if present) is controlled via a bitmask on showNumberDecEx, not a separate pin.
Related Components
Related Guides & Projects

Arduino Uno R3 Pinout: Every Pin Explained (Digital, Analog, PWM, Power)
Complete Arduino Uno R3 pinout reference: all 14 digital pins, 6 analog inputs, PWM, UART, SPI, I2C, AREF, and power rails explained with wiring tips and common mistakes.

Ultimate Arduino Mega 2560 Pinout Guide: Complete Power & I/O Reference
Master the Arduino Mega 2560 pinout. Detailed reference for all 54 digital pins, 16 analog inputs, PWM, UARTs, SPI, I2C, interrupts, and power. Includes a printable table and practical wiring tips.

Interfacing HC-SR04 Ultrasonic Sensor with Arduino
Measure distance accurately using ultrasonic sound waves and an Arduino Uno — no complex math, no expensive hardware.
HC‑SR04 Ultrasound Distance Measurement with Arduino – Parking Alert (LCD & Buzzer)
Learn HC‑SR04 ultrasound distance measurement with Arduino Uno. Build a parking alert system with 16x2 LCD and buzzer – shows distance and beeps faster as you approach.