Arduino Nano ESP32 - Afficheur 7 segments à 4 chiffres TM1637

Ce tutoriel vous apprend à utiliser l'Arduino Nano ESP32 avec le module d'affichage à 4 chiffres et 7 segments TM1637. Il couvre les sujets suivants :

Arduino Nano ESP32 TM1637 Afficheur 4 chiffres à 7 segments

Dans ce tutoriel, nous utiliserons un module d'affichage à 7 segments de 4 chiffres avec un séparateur de deux points. Si vous souhaitez afficher des nombres à virgule flottante, veuillez consulter le tutoriel sur le Module d'affichage 7 segments à 4 chiffres 74HC595.

Préparation du matériel

1×Arduino Nano ESP32
1×USB Cable Type-C
1×TM1637 4-digit 7-segment Display
1×Breadboard
1×Jumper Wires
1×(Optional) 5V Power Adapter for Arduino Nano ESP32
1×(Recommended) Screw Terminal Adapter for Arduino Nano

Or you can buy the following sensor kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
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'affichage TM1637 à 4 chiffres et 7 segments

Un afficheur à 7 segments à 4 chiffres est couramment utilisé pour les horloges, les minuteries et les compteurs, affichant la température... Cependant, il nécessite généralement 12 connexions. Le module TM1637 simplifie cela en n'ayant besoin que de 4 connexions : 2 pour l'alimentation et 2 pour contrôler les segments.

Un module TM1637 est généralement composé de quatre LED à 7 segments et de l'une des options suivantes :

  • Un LED en forme de deux-points au milieu : Il est idéal pour afficher l'heure en heures et minutes, ou minutes et secondes, ou les scores de deux équipes.
  • Quatre LED en forme de points pour chaque chiffre : Ils sont idéaux pour afficher la température ou toute valeur décimale.

Brochage de l'affichage à 7 segments 4 chiffres TM1637

Le module d'affichage à 4 chiffres et 7 segments TM1637 possède quatre broches :

  • Broche CLK : est une broche d'entrée d'horloge qui doit être connectée à n'importe quelle broche numérique sur Arduino Nano ESP32.
  • Broche DIO : est une broche de données E/S qui doit être connectée à n'importe quelle broche numérique sur Arduino Nano ESP32.
  • Broche VCC : sert à alimenter le module et doit être connectée à l'alimentation de 3,3V à 5V.
  • Broche GND : est une broche de masse qui doit être connectée à la masse de l'Arduino Nano ESP32.
Brochage du module TM1637

Diagramme de câblage

Afin de connecter un TM1637 à un ESP32, quatre fils sont nécessaires : deux pour l'alimentation et deux pour le contrôle de l'affichage. Le module peut être alimenté par la sortie 5 volts de l'Arduino Nano ESP32. Les broches CLK et DIO doivent être connectées à n'importe quelles broches numériques de l'Arduino ; par exemple, les broches 2 et 3. Si d'autres broches sont utilisées, les numéros des broches dans le code doivent être modifiés.

Schéma de câblage du module Arduino Nano ESP32 TM1637

This image is created using Fritzing. Click to enlarge image

Installation de la bibliothèque

Pour programmer facilement pour l'afficheur à 4 chiffres et 7 segments TM1637, nous devons installer la bibliothèque TM1637Display par Avishay Orpaz. Suivez les étapes ci-dessous pour installer la bibliothèque :

  • Ouvrez le Gestionnaire de bibliothèques en cliquant sur l'icône Gestionnaire de bibliothèques dans la barre de navigation gauche de l'Arduino IDE
  • Recherchez “TM1637”, puis trouvez la bibliothèque TM1637Display de Avishay Orpaz
  • Cliquez sur le bouton Install.
Bibliothèque d'affichage à 4 chiffres et 7 segments TM1637 pour Arduino

Comment programmer pour TM1637 4 chiffres 7 segments en utilisant Arduino Nano ESP32

  • Inclure la bibliothèque
#include <TM1637Display.h>
  • Spécifiez les broches de l'Arduino Nano ESP32 qui sont connectées aux CLK et DIO du module d'affichage. Par exemple, D9 et D10.
#define CLK D9 // La broche de l'Arduino Nano ESP32 connectée à la broche CLK du module 7 segments #define DIO D10 // La broche de l'Arduino Nano ESP32 connectée à la broche DIO du module 7 segments
  • Créez un objet TM1637Display.
TM1637Display display = TM1637Display(CLK, DIO);
  • Ensuite, vous pouvez afficher des nombres, des nombres avec des décimales, des nombres avec des signes négatifs ou des lettres. Dans le cas des lettres, vous devez préciser la forme de la lettre. Examinons chaque cas séparément.
  • Affichage des nombres : voir les exemples ci-dessous, '_' dans la description suivante représente un chiffre qui n'est pas affiché en pratique :
display.showNumberDec(-12); // affiche _-12 display.showNumberDec(-999); // affiche -999 display.showNumberDec(42); // affiche __42 display.showNumberDec(42, false); // affiche __42 display.showNumberDec(42, false, 2, 0); // affiche 42__ => affiche 2 chiffres à la position 0 display.showNumberDec(42, true); // affiche 0042 => remplissage de zéros display.showNumberDec(14, false, 2, 1); // affiche _14_ display.showNumberDec(-5, false, 3, 0); // affiche _-5_ display.showNumberDec(1234); // affiche 1234
  • Affichez le nombre avec un deux-points ou un point :
// affiché 15:30 dans le module séparé par des deux-points, ou 15.30 dans le module séparé par des points display.showNumberDecEx(1530, 0b11100000, false, 4, 0);

Vous pouvez trouver des informations supplémentaires concernant les fonctions à la fin de ce tutoriel.

Code Arduino Nano ESP32

/* * Ce code Arduino Nano ESP32 a été développé par newbiely.fr * Ce code Arduino Nano ESP32 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-nano-esp32/arduino-nano-esp32-tm1637-4-digit-7-segment-display */ #include <TM1637Display.h> // define the connections pins #define CLK D9 // The Arduino Nano ESP32 pin connected to the CLK pin of 7-segment module #define DIO D10 // The Arduino Nano ESP32 pin connected to the DIO pin of 7-segment module // create a display object of type TM1637Display TM1637Display display = TM1637Display(CLK, DIO); // an array that sets individual segments per digit to display the word "dOnE" const uint8_t done[] = { SEG_B | SEG_C | SEG_D | SEG_E | SEG_G, // d SEG_A | SEG_B | SEG_C | SEG_D | SEG_E | SEG_F, // O SEG_C | SEG_E | SEG_G, // n SEG_A | SEG_D | SEG_E | SEG_F | SEG_G // E }; // degree celsius symbol const uint8_t celsius[] = { SEG_A | SEG_B | SEG_F | SEG_G, // Degree symbol SEG_A | SEG_D | SEG_E | SEG_F // C }; void setup() { display.clear(); display.setBrightness(7); // set the brightness to 7 (0:dimmest, 7:brightest) } void loop() { // show counter 0-9 int i; for (i = 0; i < 10; i++) { display.showNumberDec(i); delay(500); display.clear(); } display.showNumberDec(-91); // displayed _-91 delay(2000); display.clear(); display.showNumberDec(-109); // displayed -109 delay(2000); display.clear(); display.showNumberDec(21, false); // displayed __21 delay(2000); display.clear(); display.showNumberDec(21, true); // displayed 0021 delay(2000); display.clear(); display.showNumberDec(28, false, 2, 1); // displayed _28_ delay(2000); display.clear(); display.showNumberDec(-9, false, 3, 0); // displayed _-9_ delay(2000); display.clear(); // displayed 15:30 display.showNumberDecEx(1530, 0b11100000, false, 4, 0); delay(2000); display.clear(); // displayed 23°C int temperature = 23; // or read from temperature sensor display.showNumberDec(temperature, false, 2, 0); display.setSegments(celsius, 2, 2); delay(2000); display.clear(); // displayed letters: dOnE display.setSegments(done); delay(2000); display.clear(); }

Étapes rapides

Pour commencer avec Arduino Nano ESP32 sur Arduino IDE, suivez ces étapes :

Pour commencer avec l'Arduino Nano ESP32, suivez ces étapes :

  • Si vous débutez avec l'Arduino Nano ESP32, consultez le tutoriel sur comment configurer l'environnement pour l'Arduino Nano ESP32 dans l'Arduino IDE.
  • Câblez les composants selon le schéma fourni.
  • Connectez la carte Arduino Nano ESP32 à votre ordinateur à l'aide d'un câble USB.
  • Lancez l'Arduino IDE sur votre ordinateur.
  • Sélectionnez la carte Arduino Nano ESP32 et le port COM correspondant.
  • Copiez le code ci-dessus et collez-le dans l'Arduino IDE.
  • Compilez et téléversez le code sur la carte Arduino Nano ESP32 en cliquant sur le bouton Upload de l'Arduino IDE.
Code de téléversement de l'IDE Arduino
  • Vérifiez les états de l'affichage à 7 segments.

Vidéo

Références de fonction

Voici les références pour :

  • display.clear()
  • display.afficherNombreDec()
  • display.afficherNombreDecEx()
  • display.definirSegments()
  • display.reglerLuminosite()

display.clear()

Déscription

Cette fonction efface l'affichage. Elle éteint toutes les LED.

display.showNumberDec()

Description

L'afficheur à 7 segments est utilisé pour afficher un nombre décimal. Cette fonction est utilisée à cette fin.

Syntaxe

void showNumberDec(int num, bool leading_zero = false, uint8_t length = 4, uint8_t pos = 0);

Paramètre

  • num : est la valeur à afficher sur l'affichage à 7 segments, allant de -9999 à 9999.
  • leading_zero : un paramètre optionnel avec une valeur par défaut de false, détermine si les zéros non significatifs doivent être affichés.
  • length, un autre paramètre optionnel avec une valeur par défaut de 4, définit le nombre de chiffres à afficher.
  • pos : également un paramètre optionnel avec une valeur par défaut de 0, définit la position du chiffre le plus significatif.

Veuillez noter que la fonction n'affichera rien si le nombre est hors de la plage ou si la valeur de longueur dépasse 4.

showNumberDecEx()

Description

Cette fonction est une amélioration de showNumberDec(), offrant plus de contrôle sur l'affichage d'un nombre décimal sur l'afficheur à 7 segments. Elle a la capacité de contrôler individuellement le point ou les deux-points de chaque chiffre.

Syntaxe

void showNumberDecEx(int num, uint8_t dots, bool leading_zero = false, uint8_t length = 4, uint8_t pos = 0);

Paramètre

  • num1 : C'est le nombre à afficher sur l'affichage à 7 segments. Il doit être compris entre -9999 et 9999.
  • dots : Ce paramètre est utilisé pour spécifier quels segments de l'affichage doivent être activés comme points. Chaque bit de la valeur correspond à un chiffre sur l'affichage. Les valeurs possibles sont :
    • 0b10000000 pour afficher le premier point (0.000)
    • 0b01000000 pour afficher le deuxième point (00.00), ou les deux-points (00:00), cela dépend du type de module.
    • 0b00100000 pour afficher le troisième point (000.0)
  • leading_zero : C'est un paramètre facultatif avec une valeur par défaut de false. S'il est défini sur true, les zéros non significatifs seront affichés.
  • length : C'est un paramètre facultatif avec une valeur par défaut de 4. Il détermine le nombre de chiffres à afficher sur l'affichage à 7 segments.
  • pos : C'est un paramètre facultatif avec une valeur par défaut de 0. Il définit la position du chiffre le plus significatif du nombre.

Par exemple, si vous utilisez display.showNumberDecEx(1530, 0b01000000), cela affichera :

  • L'heure 15:30 sur l'afficheur à 7 segments si le module possède une LED en forme de deux-points.
  • Le nombre 15.30 sur l'afficheur à 7 segments si le module possède des LEDs en forme de points.

Veuillez noter que la fonction n'affichera rien si le nombre est hors de la plage ou si la valeur de la longueur dépasse 4.

setSegments()

Description

La fonction permet de définir directement les segments de l'affichage à 7 segments. Elle peut être utilisée pour afficher des lettres, des caractères spéciaux, ou pour éteindre tous les segments LED.

Syntaxe

void setSegments(const uint8_t segments[], uint8_t length = 4, uint8_t pos = 0);

Paramètre

  • segments : Ce paramètre définit les segments de l'afficheur 7 segments, qui est un tableau d'octets. Chaque octet représente les segments de chaque chiffre et chaque segment est représenté par un bit dans l'octet.
  • length : C'est un paramètre optionnel avec une valeur par défaut de 4. Il détermine le nombre de chiffres à afficher sur l'afficheur 7 segments.
  • pos : C'est un paramètre optionnel avec une valeur par défaut de 0. Il spécifie la position du chiffre le plus significatif du nombre.

Cette fonction est bénéfique lorsque vous avez besoin d'afficher des caractères ou des symboles qui ne sont pas disponibles sur l'affichage standard à 7 segments. Vous pouvez créer n'importe quel motif que vous désirez en réglant directement les segments.

Veuillez être conscient que la fonction n'affichera rien si le nombre est hors plage ou si la valeur de la longueur dépasse 4.

setBrightness()

Description

La luminosité de l'afficheur à 7 segments peut être ajustée à l'aide de cette fonction.

Syntaxe

void setBrightness(uint8_t brightness, bool on = true);

Paramètre

  • luminosité : Ce paramètre ajuste la luminosité de l'affichage à 7 segments. La valeur doit être comprise entre 0 et 7, un nombre plus élevé produisant un affichage plus lumineux.
  • activé : C'est un paramètre optionnel, dont la valeur par défaut est vraie. Il est utilisé pour activer ou désactiver l'affichage. S'il est réglé sur faux, l'affichage sera désactivé.

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!