Arduino UNO R4 - TM1637 4-Digit 7-Segment Display
The Arduino Uno R4 - available as Minima and WiFi - brings more processing power, additional memory, and a 14-bit ADC while keeping the classic Uno header layout. The TM1637 display module connects to any two digital pins and works at both 3.3V and 5V, so it pairs with the Uno R4 without any level-shifting.
In this guide you will:
- Wire the TM1637 display module to the Arduino Uno R4.
- Show integers, text, and temperature on the display.
- Display time in HH:MM format with a blinking colon.
- Control individual digits and adjust brightness.

Hardware Preparation
Or you can buy the following kits:
| 1 | × | DIYables STEM V4 IoT Starter Kit (Arduino included) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Additionally, some of these links are for products from our own brand, DIYables .
TM1637 4-Digit 7-Segment Display Overview
The TM1637 module drives a 4-digit 7-segment LED display using just two signal wires (CLK and DIO). It handles the LED multiplexing internally and stores the display data in its own memory, which means the display stays lit without any continuous updates from the microcontroller.
Highlights:
- 4 digits with 7 segments each, plus decimal points
- Colon LED between digit 1 and digit 2 for clock-style display
- 8 adjustable brightness levels
- 2-wire serial interface
- Works with 3.3V or 5V logic
| Function | Pin |
|---|---|
| CLK | Clock signal input |
| DIO | Data input/output |
| VCC | Power supply (3.3V or 5V) |
| GND | Ground |
Any two digital pins on the Uno R4 can serve as CLK and DIO.
Wiring Diagram
Hook up the TM1637 to your Arduino Uno R4:
- CLK to pin 9
- DIO to pin 10
- VCC to 5V
- GND to GND

This image is created using Fritzing. Click to enlarge image
See The best way to supply power to the Arduino Uno R4 and other components.
How to Install the Library
- Plug the Arduino Uno R4 into your computer using a USB Type-C cable.
- In the Arduino IDE, verify that the correct board (Arduino Uno R4 Minima or WiFi) and serial port are selected.
- Click the Libraries icon in the left sidebar.
- Type "DIYables_4Digit7Segment_TM1637" into the search box and locate the library published by DIYables.
- Hit Install to add the library to your IDE.

No additional dependencies are needed - the library is entirely self-contained.
Minimal Sketch Structure
All sketches using the DIYables_4Digit7Segment_TM1637 library share this skeleton:
Construct the display object with pin numbers, call begin() once, and you are ready to write data to the display.
Showing Integer Values
Displays various integers on the 7-segment display, including zero-padded output.
How to Run
- Connect the TM1637 module to the Arduino Uno R4 as described in the wiring diagram.
- Plug in the USB Type-C cable.
- Paste the code in Arduino IDE, choose the correct board and port, and press Upload.
- Open the Serial Monitor to see the output.
Numbers cycle through 0, 42, 1234, -5, -123, 9999, followed by zero-padded "0042".
Method Quick Reference
| Method | What It Does | Usage |
|---|---|---|
| print(int) | Shows an integer (-999 to 9999) | display.print(1234) |
| print(int, true) | Shows with leading zeros | display.print(42, true) |
| clear() | Blanks the display | display.clear() |
Showing Text and Temperature
Displays text strings, the degree symbol, and formatted temperature.
How to Run
- Wire the module as shown above.
- Upload the sketch and open the Serial Monitor.
The display cycles through "HELP", "Hi", "COOL", "done", then shows "25*C" and "72*F".
Method Quick Reference
| Method | What It Does | Usage |
|---|---|---|
| print(const char*) | Displays a string (up to 4 chars) | display.print("HELP") |
| printTemperature(int, char) | Shows temperature with degree and unit | display.printTemperature(25, 'C') |
| DEGREE | Degree character for building strings | display.DEGREE |
Showing Time with Blinking Colon
Displays a clock-like output with the colon toggling every half second.
How to Run
- Wire the module, upload the code.
- The display shows "12:30" with the colon blinking.
Method Quick Reference
| Method | What It Does | Usage | |
|---|---|---|---|
| printTime(int, int) | Shows HH | MM with colon on | display.printTime(12, 30) |
| printTime(int, int, bool) | Shows HH | MM, controls colon | display.printTime(12, 30, false) |
Blinking the Display On and Off
Uses off() and on() to create a blinking effect while keeping the display content.
How to Run
- Upload and observe - "1234" blinks five times, then "HELP" blinks five times.
Method Quick Reference
| Method | What It Does | Usage |
|---|---|---|
| off() | Turns display off, data stays | display.off() |
| on() | Restores display | display.on() |
| setBrightness(int) | Adjusts brightness (0-7) | display.setBrightness(4) |
Controlling Individual Digits
Sets each digit independently using numbers, characters, and the colon separator.
How to Run
- Upload the code and watch the display cycle through different combinations.
Method Quick Reference
| Method | What It Does | Usage |
|---|---|---|
| setNumber(int, int) | Places a digit 0-9 at a position | display.setNumber(0, 1) |
| setChar(int, char) | Places a character at a position | display.setChar(0, 'H') |
| setColon(bool) | Toggles the colon | display.setColon(true) |
| setSegments(int, uint8_t) | Writes raw segment data | display.setSegments(0, 0x76) |
Troubleshooting
- Nothing appears on the display - Recheck wiring. CLK and DIO must match the pin numbers in code. VCC should go to 5V (or 3.3V).
- Wrong characters show up - CLK and DIO are likely swapped. Try switching the two wires.
- Brightness too low - Call setBrightness(7) for maximum brightness.
- Library not found - Install DIYables_4Digit7Segment_TM1637 from the Library Manager in Arduino IDE.
Platform Support
The library relies exclusively on Arduino standard APIs (pinMode, digitalWrite, digitalRead, delayMicroseconds) and runs on all Arduino-compatible platforms.