Arduino UNO Q - TM1637 4-stelliges 7-Segment-Display

Möchten Sie Zahlen und Uhrzeit auf einem hellen LED-Display mit Ihrem Arduino UNO Q anzeigen? Dieses anfängerfreundliche Tutorial zeigt Ihnen Schritt für Schritt, wie Sie ein TM1637 4-stelliges 7-Segment-Display mit Arduino UNO Q verwenden.

In diesem Tutorial erfahren Sie:

Arduino UNO Q TM1637 4-Stelliges 7-Segment-Display

Erforderliche Hardware

1×Arduino UNO Q
1×USB-Kabel für Arduino UNO Q
1×TM1637 4-stelliges 7-Segment-Display (Doppelpunkt getrennt)
1×Jumperkabel
1×(Empfohlen) Schraubklemmenblock-Shield für Arduino Uno
1×(Empfohlen) Sensors/Servo Expansion Shield for Arduino Uno
1×(Empfohlen) Breadboard-Shield für Arduino Uno
1×(Empfohlen) Gehäuse für Arduino Uno
1×(Empfohlen) Prototyping-Grundplatte & Breadboard-Kit für Arduino Uno

Oder Sie können die folgenden Kits kaufen:

1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Über das TM1637 4-stellige 7-Segment-Display

Das TM1637 4-stellige 7-Segment-Display verwendet einen dedizierten Treiber-IC, der Anzeigedaten intern speichert, daher benötigen Sie nur 2 Signalleitungen von der MCU.

Wichtige Spezifikationen und Merkmale:

  • Ziffern: 4 Ziffern mit je 7 Segmenten plus Dezimalpunkten
  • Doppelpunkt-LED: Zwischen den Ziffern 1 und 2 — perfekt für die Anzeige im Uhrenformat HH:MM
  • Treiber-IC: TM1637 — Daten werden im eigenen Speicher gespeichert, keine kontinuierlichen Aktualisierungen erforderlich
  • Schnittstelle: 2-Draht-Seriell (CLK + DIO) — einfache und minimale Verdrahtung
  • Helligkeit: 8 einstellbare Helligkeitsstufen
  • Stromversorgung: 3,3V oder 5V kompatibel
  • Bibliothek: DIYables_4Digit7Segment_TM1637 — unterstützt Ganzzahlen, Dezimalzahlen, Text, Temperatur und Uhrzeit
Pin Funktion Beschreibung
CLK Taktsignal Serielle Takteingabe
DIO Daten E/A Serielle Dateneingabe/-ausgabe
VCC Stromversorgung 3,3V oder 5V Stromversorgung
GND Masse Gemeinsame Masse

Pinbelegung

TM1637 4-stelliges 7-Segment-Display Pinbelegung
  • CLK: Taktsignal — synchronisiert die Datenübertragung zwischen MCU und TM1637
  • DIO: Dateneingabe/-ausgabe — trägt Seriendaten zu und vom Treiber-IC
  • VCC: Stromversorgung — mit 3,3V oder 5V verbinden
  • GND: Masse — gemeinsame Masse

Verdrahtungsdiagramm

Verbinden Sie das TM1637 4-stellige 7-Segment-Display mit dem Arduino UNO Q MCU wie dargestellt:

Arduino UNO Q TM1637 4-Stelliges 7-Segment-Display Verdrahtungsdiagramm

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

TM1637 Pin Arduino UNO Q MCU Pin Beschreibung
CLK D9 Taktsignal
DIO D10 Dateneingabe/-ausgabe
VCC 5V Stromversorgung
GND GND Masse

Arduino UNO Q Code

Der Arduino UNO Q hat zwei Prozessoren, die zusammenarbeiten:

  • Der STM32 MCU treibt das TM1637 7-Segment-Display direkt über zwei digitale Pins
  • Der Qualcomm MPU führt Debian Linux aus und verwaltet Wi-Fi, Python und Cloud-Konnektivität
  • In diesem Abschnitt wird nur der MCU programmiert — die Linux-Seite bleibt untätig. Ein späterer Abschnitt zeigt, wie beide Prozessoren über Bridge zusammenarbeiten.

Die Skizze unten zählt von 0 bis 9999 auf dem 7-Segment-Display und erhöht sich jede Sekunde.

Hinweis: Im Gegensatz zum 74HC595-Display speichert das TM1637 seine Daten im internen Speicher — Sie müssen KEINE loop()-Aktualisierungsfunktion aufrufen. delay() kann frei verwendet werden.

/* * Dieser Arduino UNO Q Code wurde von newbiely.de entwickelt * Dieser Arduino UNO Q Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino-uno-q/arduino-uno-q-tm1637-4-digit-7-segment-display */ #include <DIYables_4Digit7Segment_TM1637.h> #define CLK_PIN 9 // MCU pin connected to CLK of TM1637 7-segment display #define DIO_PIN 10 // MCU pin connected to DIO of TM1637 7-segment display DIYables_4Digit7Segment_TM1637 display(CLK_PIN, DIO_PIN); int count = 0; unsigned long lastUpdate = 0; void setup() { display.begin(); display.print(0); } void loop() { if (millis() - lastUpdate >= 1000) { lastUpdate = millis(); count++; if (count > 9999) count = 0; display.print(count); } }

Schnelle Schritte

Erste Schritte mit Arduino UNO Q? Folgen Sie dem Tutorial Erste Schritte mit Arduino UNO Q, um Ihre Entwicklungsumgebung vorzubereiten, bevor Sie fortfahren.

  • Verbindung: Verdrahten Sie das TM1637-Display mit dem Arduino UNO Q wie dargestellt und schließen Sie das USB-C-Kabel an.
  • Öffnen Sie Arduino App Lab: Starten Sie Arduino App Lab und warten Sie, bis Ihr Arduino UNO Q erkannt wird — dies kann beim ersten Start mehrere Minuten dauern.
  • Erstellen Sie eine neue App: Klicken Sie auf die Schaltfläche Create New App.
Neue App in Arduino App Lab auf Arduino UNO Q erstellen
  • Geben Sie der App einen Namen, z. B.: DIYables_7SegTM1637
  • Klicken Sie auf Create, um zu bestätigen.
  • Ihnen werden automatisch Ordner und Dateien in Ihrer neuen App angezeigt.
Arduino App Lab App-Ordner und Dateien auf Arduino UNO Q
  • Suchen Sie die Datei sketch/sketch.ino — hier werden Sie die MCU-Skizze einfügen.
  • Fügen Sie die Skizze ein: Kopieren Sie den MCU-Code oben und fügen Sie ihn in die Skizzendatei ein. Behalten Sie andere Dateien wie Standard.
    • Install the library: Click the Add sketch library button (the open book icon with a + sign) in the left sidebar.
    Add sketch library in Arduino App Lab on Arduino UNO Q
    • Search for Arduino_RouterBridge created by Arduino and click the Install button.
    My Apps / DIYables Apps
    Run
    Bricks
    No bricks added...
    Sketch Libraries
    No sketch libra...
    Files
    python
    sketch
    .gitignore
    README.md
    app.yaml
    sketch.ino
    Add sketch library
    Arduino_RouterBridge Arduino

    This library provides a simple RPC bridge for Arduino UNO Q boards, allowing communication between the board and other devices using MsgPack serialization.

    0.4.1
    Install
    More Info
    • Search for DIYables_4Digit7Segment_TM1637 created by DIYables.io and click the Install button.
    My Apps / DIYables Apps
    Run
    Bricks
    No bricks added...
    Sketch Libraries
    No sketch libra...
    Files
    python
    sketch
    .gitignore
    README.md
    app.yaml
    sketch.ino
    Add sketch library
    DIYables_4Digit7Segment_TM1637 DIYables.io

    Supports integer display, text, temperature with degree symbol, time with colon separator, brightness control, and individual digit control. Uses 2-wire CLK/DIO interface. Compatible with all Arduino boards.

    1.0.0
    Install
    More Info
    • Hochladen: Klicken Sie die Schaltfläche Run in Arduino App Lab, um es zu kompilieren und auf den STM32 hochzuladen.
    Klicken Sie die Schaltfläche Run in Arduino App Lab auf Arduino UNO Q

    Ihr TM1637-Display beginnt zu zählen, von 0 bis 9999, und erhöht sich jede Sekunde!

    • Pro-Tipp: Verwenden Sie display.setBrightness(7) in setup(), um die maximale Helligkeitsstufe einzustellen (0 = dimmste, 7 = hellste).

    Bridge: Linux + MCU

    In diesem Abschnitt wird gezeigt, wie Sie beide Prozessoren des Arduino UNO Q programmieren, damit die Linux-Seite das TM1637-Display ferngesteuert steuern kann:

    • Das TM1637 7-Segment-Display ist mit der MCU (STM32) verbunden — der MCU schreibt Werte über 2-Draht-Seriell
    • Der MPU kann das Display nicht direkt steuern — er muss den MCU anfordern, Werte über Bridge.call() zu aktualisieren
    • Der MPU hat Wi-Fi — mit vollständigem Debian Linux kann er sich mit dem Internet verbinden und Anzeigeaktualisierungen remote durchführen
    • Arduino_RouterBridge ermöglicht RPC-Kommunikation zwischen den beiden Prozessoren
    • ⚠️ /dev/ttyHS1 (Linux) und Serial1 (MCU) sind RESERVIERT durch den Router — öffnen Sie diese niemals in Benutzercode

    Kurz gesagt: MCU treibt das TM1637-Display → MPU sendet Werte → MPU kann das Display von überall über das Internet aktualisieren.

    MCU-Code (Bridge)

    /* * Dieser Arduino UNO Q Code wurde von newbiely.de entwickelt * Dieser Arduino UNO Q Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino-uno-q/arduino-uno-q-tm1637-4-digit-7-segment-display */ #include "Arduino_RouterBridge.h" #include <DIYables_4Digit7Segment_TM1637.h> #define CLK_PIN 9 #define DIO_PIN 10 DIYables_4Digit7Segment_TM1637 display(CLK_PIN, DIO_PIN); String current_value = ""; void display_number(String text) { int number = text.toInt(); current_value = text; display.print(number); Monitor.println("7SEG: " + text); } void display_float(String text) { float value = text.toFloat(); current_value = text; display.print(value, 1); Monitor.println("7SEG float: " + text); } void clear_display() { current_value = ""; display.clear(); Monitor.println("7SEG cleared"); } String get_status() { if (current_value == "") return "Display is clear"; return "Display shows: " + current_value; } void setup() { Bridge.begin(); Monitor.begin(9600); display.begin(); display.print(0); Bridge.provide_safe("display_number", display_number); Bridge.provide_safe("display_float", display_float); Bridge.provide_safe("clear_display", clear_display); Bridge.provide("get_status", get_status); } void loop() { }

    Python-Code (Bridge)

    /* * Dieser Arduino UNO Q Code wurde von newbiely.de entwickelt * Dieser Arduino UNO Q Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino-uno-q/arduino-uno-q-tm1637-4-digit-7-segment-display */ from arduino.app_utils import * import time def loop(): result = Bridge.call("display_number", "1234") print(result) time.sleep(3) result = Bridge.call("display_float", "26.5") print(result) time.sleep(3) result = Bridge.call("display_number", "-42") print(result) time.sleep(3) result = Bridge.call("clear_display") print(result) time.sleep(2) result = Bridge.call("get_status") print(result) time.sleep(2) App.run(user_loop=loop)

    Schnelle Schritte

    • Verbindung: Verdrahten Sie das TM1637-Display mit dem Arduino UNO Q und schließen Sie das USB-C-Kabel an.
    • Öffnen Sie Arduino App Lab: Starten Sie Arduino App Lab und warten Sie, bis das Board erkannt wird.
    • Erstellen Sie eine neue App: Klicken Sie auf Create New App, benennen Sie sie DIYables_7SegTM1637Bridge, und klicken Sie auf Create.
    • Fügen Sie die MCU-Skizze ein: Kopieren Sie den MCU-Bridge-Code oben und fügen Sie ihn in sketch/sketch.ino ein.
    • Fügen Sie den Python-Code ein: Kopieren Sie den Python-Bridge-Code oben und fügen Sie ihn in die Python-Datei in der App ein.
    • Hochladen: Klicken Sie die Schaltfläche Run in Arduino App Lab.
    Klicken Sie die Schaltfläche Run in Arduino App Lab auf Arduino UNO Q

    App Lab Konsolenausgabe

    DIYables_Apps
    Stop
    sketch.ino
    1#include "Arduino_RouterBridge.h"
    Serial Monitor
    Python
    Message (Enter to send a message to "Newbiely" on usb(2820070321))
    New Line
    9600 baud
    [2026-04-29 09:00:01] 7SEG: 1234 [2026-04-29 09:00:04] 7SEG float: 26.5 [2026-04-29 09:00:07] 7SEG: -42 [2026-04-29 09:00:09] 7SEG cleared
    DIYables_Apps
    Stop
    sketch.ino
    1#include "Arduino_RouterBridge.h"
    Serial Monitor
    Python
    [2026-04-29 09:00:01] OK [2026-04-29 09:00:04] OK [2026-04-29 09:00:07] OK [2026-04-29 09:00:09] OK [2026-04-29 09:00:11] Display is clear

    Telegram

    Steuern Sie das TM1637 7-Segment-Display von überall mit Telegram. Senden Sie eine Zahl von Ihrem Telefon und das Display aktualisiert sich sofort.

    MCU-Skizze: Behalten Sie die gleiche MCU-Skizze aus dem vorherigen Bridge-Abschnitt.

    Python-Code (Telegram)

    /* * Dieser Arduino UNO Q Code wurde von newbiely.de entwickelt * Dieser Arduino UNO Q Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino-uno-q/arduino-uno-q-tm1637-4-digit-7-segment-display */ from arduino.app_utils import * import requests import time TELEGRAM_TOKEN = "YOUR_TELEGRAM_BOT_TOKEN" CHAT_ID = "YOUR_CHAT_ID" last_update_id = 0 def get_updates(): global last_update_id url = f"https://api.telegram.org/bot{TELEGRAM_TOKEN}/getUpdates" params = {"offset": last_update_id + 1, "timeout": 5} try: response = requests.get(url, params=params, timeout=10) data = response.json() if data["ok"]: return data["result"] except Exception: pass return [] def send_message(text): url = f"https://api.telegram.org/bot{TELEGRAM_TOKEN}/sendMessage" requests.post(url, data={"chat_id": CHAT_ID, "text": text}) def loop(): global last_update_id updates = get_updates() for update in updates: last_update_id = update["update_id"] message = update.get("message", {}) text = message.get("text", "") if text.startswith("/number "): number = text[8:].strip() result = Bridge.call("display_number", number) send_message(result) elif text.startswith("/float "): value = text[7:].strip() result = Bridge.call("display_float", value) send_message(result) elif text == "/clear": result = Bridge.call("clear_display") send_message(result) elif text == "/status": result = Bridge.call("get_status") send_message(result) elif text == "/start": send_message("Commands:\n/number <value> - Show integer on display\n/float <value> - Show float on display\n/clear - Clear the display\n/status - Get current display value") App.run(user_loop=loop)

    Schnelle Schritte

    • Ersetzen Sie YOUR_TELEGRAM_BOT_TOKEN durch Ihren tatsächlichen Bot-Token von BotFather.
    • Ersetzen Sie YOUR_CHAT_ID durch Ihre Telegram-Chat-ID.
    • Fügen Sie diesen Python-Code in die Python-Datei Ihrer App ein (behalten Sie die gleiche MCU-Skizze).
    • Klicken Sie die Schaltfläche Run. Öffnen Sie Telegram und senden Sie Befehle an Ihren Bot.

    App Lab Konsolenausgabe

    DIYables_Apps
    Stop
    sketch.ino
    1#include "Arduino_RouterBridge.h"
    Serial Monitor
    Python
    [2026-04-29 09:15:00] Waiting for Telegram messages... [2026-04-29 09:15:08] Received: /number 2025 [2026-04-29 09:15:22] Received: /float 23.4 [2026-04-29 09:15:40] Received: /status
    Telegram
    Telegram 12:45
    Welcome to Telegram!
    ArduinoBot 10:19
    Chatting with Arduino...
    telegram-botfather
    BotFather Yesterday
    Your bot has been created.

    ArduinoBot

    bot
    Today
    /number 2025
    10:15 AM ✓✓
    OK
    10:16 AM
    /float 23.4
    10:17 AM ✓✓
    OK
    10:18 AM
    /status
    10:19 AM ✓✓
    Display shows: 23.4
    10:20 AM
    /clear
    10:21 AM ✓✓
    OK
    10:22 AM

    OpenClaw

    You can adapt the OpenClaw to this tutorial by refering the instruction on Arduino Uno Q - OpenClaw Tutorial

    Projektideen

    Sie können viele nützliche Projekte mit einem TM1637 7-Segment-Display und Arduino UNO Q erstellen:

    • Internet-Uhr: Python ruft die aktuelle Uhrzeit über NTP ab und sendet sie an den MCU, um sie im Format HH:MM mit blinkenden Doppelpunkten anzuzeigen
    • Ferngesteuerte Zähler: Senden Sie einen Zählwert über Telegram an das Display — nützlich für Produktionszähler oder Anzeigetafeln
    • Live-Temperaturanzeige: Rufen Sie Temperaturwerte von einem Sensor auf dem MCU ab und zeigen Sie sie über Bridge auf dem 7-Segment-Display an
    • Countdown-Timer: Python sendet einen Startwert über Bridge, und der MCU zählt auf dem Display bis null herunter
    • Pomodoro-Timer: Zeigen Sie Arbeits-/Pausenintervalle auf dem TM1637-Display an, gesteuert und überwacht über Telegram

    Fordern Sie sich selbst heraus

    Bereit, mit dem TM1637 7-Segment-Display auf Arduino UNO Q weiter zu gehen? Probieren Sie diese Herausforderungen aus:

    • Einfach: Ändern Sie die MCU-Skizze, um 26.5 beim Start mit display.print(26.5, 1) anzuzeigen und fügen Sie display.setBrightness(7) für maximale Helligkeit hinzu.
    • Mittel: Verwenden Sie die Bridge, um einen /time HH MM Telegram-Befehl zu implementieren, der Stunden und Minuten an den MCU sendet, der sie dann im Format HH:MM mit aktiviertem Doppelpunkt anzeigt.
    • Fortgeschritten: Erstellen Sie einen Telegram-gesteuerten Countdown-Timer: /timer <Sekunden> startet den Countdown ab dem angegebenen Wert, das Display zeigt die verbleibenden Sekunden an, und /stop stoppt den Countdown.

    ※ UNSERE NACHRICHTEN

    • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!