Arduino UNO Q - Afficheur 7 Segments à 4 Chiffres TM1637

Vous souhaitez afficher des nombres et l'heure sur un écran LED lumineux avec votre Arduino UNO Q ? Ce tutoriel convivial pour les débutants vous montre comment utiliser un afficheur 7 segments à 4 chiffres TM1637 avec l'Arduino UNO Q — étape par étape.

Dans ce tutoriel, vous apprendrez :

Afficheur 7 Segments à 4 Chiffres TM1637 Arduino UNO Q

Matériel Requis

1×Arduino UNO Q
1×USB Cable for Arduino Uno Q
1×Afficheur 7 segments 4 chiffres TM1637
1×Fils de connexion
1×Recommandé: Shield à bornier à vis pour Arduino Uno
1×Recommandé: Sensors/Servo Expansion Shield for Arduino Uno
1×Recommandé: Shield plaque d'essai pour Arduino Uno
1×Recommandé: Boîtier pour Arduino Uno
1×Recommandé: Kit plaque de base prototypage et plaque d'essai pour Arduino Uno

Ou vous pouvez acheter les kits suivants:

1×Kit de Capteurs DIYables (18 capteurs/écrans)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

À Propos de l'Afficheur 7 Segments à 4 Chiffres TM1637

L'afficheur 7 segments à 4 chiffres TM1637 utilise un circuit pilote dédié qui stocke les données d'affichage en interne, vous n'avez donc besoin que de 2 fils de signal depuis le MCU.

Caractéristiques et spécifications principales :

  • Chiffres : 4 chiffres avec 7 segments chacun, plus des points décimaux
  • LED deux-points : Entre les chiffres 1 et 2 — parfait pour l'affichage de type horloge HH:MM
  • Circuit pilote : TM1637 — données stockées dans sa propre mémoire, pas de mises à jour continues nécessaires
  • Interface : Série à 2 fils (CLK + DIO) — câblage simple et minimal
  • Luminosité : 8 niveaux de luminosité réglables
  • Alimentation : Compatible 3,3V ou 5V
  • Bibliothèque : DIYables_4Digit7Segment_TM1637 — prend en charge les entiers, les flottants, le texte, la température et l'heure
Broche Fonction Description
CLK Signal d'Horloge Entrée d'horloge série
DIO E/S de Données Entrée/sortie de données série
VCC Alimentation Alimentation 3,3V ou 5V
GND Masse Masse commune

Brochage

Brochage de l'Afficheur 7 Segments à 4 Chiffres TM1637
  • CLK : Signal d'horloge — synchronise le transfert de données entre le MCU et le TM1637
  • DIO : Entrée/sortie de données — porte les données série vers et depuis le circuit pilote
  • VCC : Alimentation — connecter à 3,3V ou 5V
  • GND : Masse — masse commune

Schéma de Câblage

Connectez l'afficheur 7 segments à 4 chiffres TM1637 au MCU de l'Arduino UNO Q comme indiqué :

Schéma de Câblage Arduino UNO Q Afficheur 7 Segments à 4 Chiffres TM1637

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Broche TM1637 Broche MCU Arduino UNO Q Description
CLK D9 Signal d'horloge
DIO D10 Entrée/sortie de données
VCC 5V Alimentation
GND GND Masse

Code Arduino UNO Q

L'Arduino UNO Q possède deux processeurs fonctionnant ensemble :

  • Le MCU STM32 pilote directement l'afficheur 7 segments TM1637 via deux broches numériques
  • Le MPU Qualcomm exécute Debian Linux et gère le Wi-Fi, Python et la connectivité cloud
  • Dans cette section, seul le MCU est programmé — le côté Linux reste inactif. Une section ultérieure montre comment les deux processeurs fonctionnent ensemble via Bridge.

Le sketch ci-dessous compte de 0 à 9999 sur l'afficheur 7 segments, s'incrémentant chaque seconde.

Note : Contrairement à l'afficheur 74HC595, le TM1637 conserve ses données en mémoire interne — vous n'avez PAS besoin d'appeler une fonction de rafraîchissement dans loop(). delay() peut être utilisé librement.

/* * Ce code Arduino UNO Q a été développé par newbiely.fr * Ce code Arduino UNO Q est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/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); } }

Étapes Rapides

Première utilisation d'Arduino UNO Q ? Suivez le tutoriel Démarrer avec Arduino UNO Q pour préparer votre environnement de développement avant de continuer.

  • Connecter : Câblez l'afficheur TM1637 à l'Arduino UNO Q comme indiqué, puis branchez le câble USB-C.
  • Ouvrir Arduino App Lab : Lancez Arduino App Lab et attendez qu'il détecte votre Arduino UNO Q — cela peut prendre plusieurs minutes au premier lancement.
  • Créer une nouvelle application : Cliquez sur le bouton Créer une nouvelle application.
Créer une nouvelle application dans Arduino App Lab sur Arduino UNO Q
  • Donnez un nom à l'application, par exemple : DIYables_7SegTM1637
  • Cliquez sur Créer pour confirmer.
  • Vous verrez un ensemble de dossiers et fichiers générés dans votre nouvelle application.
Dossiers et fichiers de l'application Arduino App Lab sur Arduino UNO Q
  • Trouvez le fichier sketch/sketch.ino — c'est ici que vous collerez le sketch MCU.
  • Coller le sketch : Copiez le code MCU ci-dessus et collez-le dans ce fichier sketch. Laissez les autres fichiers par défaut.
    • 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
    • Téléverser : Cliquez sur le bouton Exécuter dans Arduino App Lab pour compiler et téléverser vers le STM32.
    Cliquez sur le bouton Exécuter dans Arduino App Lab sur Arduino UNO Q

    Votre afficheur TM1637 commencera à compter de 0 à 9999, s'incrémentant chaque seconde !

    • Conseil Pro : Utilisez display.setBrightness(7) dans setup() pour définir le niveau de luminosité maximum (0 = le plus faible, 7 = le plus lumineux).

    Bridge : Linux + MCU

    Cette section montre comment programmer les deux processeurs de l'Arduino UNO Q pour que le côté Linux puisse contrôler l'afficheur TM1637 à distance :

    • L'afficheur 7 segments TM1637 est connecté au MCU (STM32) — le MCU écrit des valeurs via la communication série à 2 fils
    • Le MPU ne peut pas contrôler directement l'afficheur — il doit demander au MCU de mettre à jour les valeurs via Bridge.call()
    • Le MPU dispose du Wi-Fi — exécutant Debian Linux complet, il peut se connecter à Internet et envoyer des mises à jour d'affichage à distance
    • Arduino_RouterBridge permet la communication RPC entre les deux processeurs
    • ⚠️ /dev/ttyHS1 (Linux) et Serial1 (MCU) sont RÉSERVÉS par le routeur — ne les ouvrez jamais dans le code utilisateur

    En résumé : Le MCU pilote l'afficheur TM1637 → le MPU envoie des valeurs → le MPU peut mettre à jour l'afficheur depuis n'importe où via Internet.

    Code MCU (Bridge)

    /* * Ce code Arduino UNO Q a été développé par newbiely.fr * Ce code Arduino UNO Q est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/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() { }

    Code Python (Bridge)

    /* * Ce code Arduino UNO Q a été développé par newbiely.fr * Ce code Arduino UNO Q est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/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)

    Étapes Rapides

    • Connecter : Câblez l'afficheur TM1637 à l'Arduino UNO Q et branchez le câble USB-C.
    • Ouvrir Arduino App Lab : Lancez Arduino App Lab et attendez que la carte soit détectée.
    • Créer une nouvelle application : Cliquez sur Créer une nouvelle application, nommez-la DIYables_7SegTM1637Bridge, puis cliquez sur Créer.
    • Coller le sketch MCU : Copiez le code MCU Bridge ci-dessus et collez-le dans sketch/sketch.ino.
    • Coller le code Python : Copiez le code Python Bridge ci-dessus et collez-le dans le fichier Python de l'application.
    • Téléverser : Cliquez sur le bouton Exécuter dans Arduino App Lab.
    Cliquez sur le bouton Exécuter dans Arduino App Lab sur Arduino UNO Q

    Sortie de la Console App Lab

    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

    Contrôlez l'afficheur 7 segments TM1637 depuis n'importe où avec Telegram. Envoyez un nombre depuis votre téléphone et l'afficheur se met à jour instantanément.

    Sketch MCU : Conservez le même sketch MCU de la section Bridge précédente.

    Code Python (Telegram)

    /* * Ce code Arduino UNO Q a été développé par newbiely.fr * Ce code Arduino UNO Q est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/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)

    Étapes Rapides

    • Remplacez YOUR_TELEGRAM_BOT_TOKEN par votre vrai token de bot de BotFather.
    • Remplacez YOUR_CHAT_ID par votre identifiant de chat Telegram.
    • Collez ce code Python dans le fichier Python de votre application (conservez le même sketch MCU).
    • Cliquez sur le bouton Exécuter. Ouvrez Telegram et envoyez des commandes à votre bot.

    Sortie de la Console App Lab

    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

    Intégration d'OpenClaw

    Vous pouvez adapter OpenClaw à ce tutoriel en vous référant aux instructions du tutoriel Arduino UNO Q - OpenClaw.

    Idées de Projets

    Vous pouvez réaliser de nombreux projets utiles avec un afficheur 7 segments TM1637 et l'Arduino UNO Q :

    • Horloge Internet : Python récupère l'heure actuelle via NTP et l'envoie au MCU pour l'afficher au format HH:MM avec les deux-points clignotants
    • Compteur à Distance : Envoyez une valeur de comptage à l'afficheur via Telegram — utile pour les compteurs de production ou les tableaux de score
    • Affichage de Température en Direct : Récupérez la température d'un capteur sur le MCU et affichez-la sur l'afficheur 7 segments via Bridge
    • Minuteur Décompte : Python envoie une valeur de départ via Bridge, et le MCU compte à rebours vers zéro sur l'afficheur
    • Minuteur Pomodoro : Affichez les intervalles travail/pause sur l'afficheur TM1637, contrôlé et suivi via Telegram

    Défiez-Vous

    Prêt à aller plus loin avec l'afficheur 7 segments TM1637 sur l'Arduino UNO Q ? Essayez ces défis :

    • Facile : Modifiez le sketch MCU pour afficher 26.5 au démarrage en utilisant display.print(26.5, 1) et ajoutez display.setBrightness(7) pour la luminosité maximale.
    • Moyen : Utilisez le Bridge pour implémenter une commande Telegram /time HH MM qui envoie les heures et les minutes au MCU, qui les affiche ensuite au format HH:MM avec les deux-points activés.
    • Avancé : Construisez un minuteur décompte contrôlé par Telegram : /timer <secondes> commence le décompte depuis la valeur donnée, l'afficheur montre les secondes restantes, et /stop arrête le décompte.

    ※ NOS MESSAGES

    • N'hésitez pas à partager le lien de ce tutoriel. Cependant, veuillez ne pas utiliser notre contenu sur d'autres sites web. Nous avons investi beaucoup d'efforts et de temps pour créer ce contenu, veuillez respecter notre travail !