Arduino - Afficheur 7 segments à 4 chiffres TM1637

Un afficheur 7 segments à 4 chiffres standard est nécessaire pour les projets d'horloge, de minuterie et de compteur, mais il nécessite généralement 12 connexions. Le module TM1637 facilite les choses en ne nécessitant que 4 connexions : 2 pour l'alimentation et 2 pour contrôler les segments.

Ce tutoriel ne vous surchargera pas en plongeant profondément dans le matériel. Au lieu de cela, nous apprendrons à connecter l'afficheur à 7 segments de 4 chiffres à un Arduino, et comment le programmer pour afficher ce que nous voulons.

Afficheur 7 segments à 4 chiffres TM1637 Arduino

Ce tutoriel va utiliser le module d'affichage à 7 segments 4 chiffres séparés par des deux-points. Si vous souhaitez afficher des nombres flottants, veuillez utiliser le Module d'affichage 7 segments 4 chiffres 74HC595

Préparation du matériel

1×Arduino Uno
1×USB 2.0 cable type A/B
1×TM1637 4-digit 7-segment Display (colon-separated)
1×Jumper Wires
1×(Optional) 9V Power Adapter for Arduino
1×(Recommended) Screw Terminal Block Shield for Arduino Uno
1×(Optional) Transparent Acrylic Enclosure For Arduino Uno

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’afficheur TM1637 à 4 chiffres et 7 segments

Un module TM1637 se compose généralement de quatre LED à 7 segments et d'une LED en forme de deux-points au milieu : il est idéal pour afficher l'heure en heures et minutes, ou les minutes et les secondes, ou les scores de deux équipes.

Brochage

Le module d'affichage TM1637 à 4 chiffres et 7 segments inclut 4 broches :

  • Broche CLK : est une broche d'entrée d'horloge. Connectez-la à n'importe quelle broche numérique sur Arduino.
  • Broche DIO : est une broche de données I/O. Connectez-la à n'importe quelle broche numérique sur Arduino.
  • Broche VCC : la broche alimente le module en énergie. Connectez-la à une alimentation de 3,3V à 5V.
  • Broche GND : est une broche de masse.
Brochage du module TM1637

Diagramme de câblage

Pour connecter un TM1637 à un Arduino, connectez quatre fils : deux pour l'alimentation et deux pour contrôler l'affichage. Le module peut être alimenté par la sortie 5 volts de l'Arduino. Connectez les broches CLK et DIO à n'importe quelles broches numériques de l'Arduino. Par exemple, 2 et 3 sur l'Arduino. Les numéros de broche dans le code doivent être modifiés si d'autres broches sont utilisées.

Schéma de câblage du module Arduino TM1637

This image is created using Fritzing. Click to enlarge image

Installation de la bibliothèque

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

  • Naviguez vers l'icône Libraries sur la barre latérale gauche de l'IDE Arduino.
  • Recherchez "TM1637", puis trouvez la bibliothèque TM1637Display de Avishay Orpaz
  • Cliquez sur le bouton Install.
Bibliothèque d'affichage Arduino TM1637 à 4 chiffres et 7 segments

Comment programmer TM1637 à 4 chiffres et 7 segments avec Arduino

  • Inclure la bibliothèque
#include <TM1637Display.h>
  • Définissez les broches d'Arduino qui se connectent à CLK et DIO du module d'affichage. Par exemple, broche D9 et D10.
#define CLK 9 #define DIO 10
  • Créez un objet d'affichage de type TM1637Display.
TM1637Display display = TM1637Display(CLK, DIO);
  • Ensuite, vous pouvez afficher un nombre, un nombre avec décimale, un nombre avec signe moins, ou une lettre. Dans le cas d'une lettre, vous devez définir la forme de la lettre. Voyons cela un par un.
  • Afficher un nombre : voir les exemples ci-dessous, le '_' dans la description ci-dessous représente un chiffre qui ne montre rien en pratique :
display.showNumberDec(-12); // affiché _-12 display.showNumberDec(-999); // affiché -999 display.showNumberDec(42); // affiché __42 display.showNumberDec(42, false); // affiché __42 display.showNumberDec(42, false, 2, 0); // affiché 42__ => affiche 2 chiffres à la position 0 display.showNumberDec(42, true); // affiché 0042 => remplissage de zéros display.showNumberDec(14, false, 2, 1); // affiché _14_ display.showNumberDec(-5, false, 3, 0); // affiché _-5_ display.showNumberDec(1234); // affiché 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 trouverez plus de détails dans les références de fonction à la fin de ce tutoriel.

Code Arduino

/* * Ce code Arduino a été développé par newbiely.fr * Ce code Arduino 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/arduino-tm1637-4-digit-7-segment-display */ #include <TM1637Display.h> // define the connections pins #define CLK 9 #define DIO 10 // 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

  • Copiez le code ci-dessus et ouvrez-le avec l'IDE Arduino
  • Cliquez sur le bouton Upload de l'IDE Arduino pour charger le code sur Arduino
  • Observez les états de l'affichage à 7 segments

Vidéo

Références de fonction

Les éléments ci-dessous sont des références pour les fonctions suivantes :

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

display.clear()

Description

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

display.showNumberDec()

Description

La fonction est utilisée pour afficher un nombre décimal sur l'affichage à 7 segments.

Syntaxe

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

Paramètre

  • num : C'est le nombre à afficher sur l'afficheur 7 segments. Il doit être compris entre -9999 et 9999.
  • leading_zero : C'est un paramètre optionnel dont la valeur par défaut est false. S'il est défini sur true, des zéros non significatifs seront affichés.
  • length : C'est un paramètre optionnel dont la valeur par défaut est 4. Il détermine le nombre de chiffres à afficher sur l'afficheur 7 segments.
  • pos : C'est un paramètre optionnel dont la valeur par défaut est 0. Il définit la position du chiffre le plus significatif du nombre.

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

showNumberDecEx()

Description

La fonction est utilisée pour afficher un nombre décimal sur l'affichage à 7 segments avec des fonctionnalités supplémentaires par rapport à la fonction showNumberDec(). C'est une version avancée de showNumberDec() qui vous permet de contrôler les segments de point ou de deux-points de chaque chiffre individuellement.

Syntaxe

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

Paramètre

  • num1 : Il s'agit du nombre à afficher sur l'afficheur à 7 segments. Il doit être compris dans l'intervalle de -9999 à 9999.
  • dots : Ce paramètre est utilisé pour spécifier quels segments de l'affichage doivent être allumés sous forme de points. Chaque bit de la valeur correspond à un chiffre sur l'affichage : Valeur valide
    • 0b10000000 : affiche le premier point : 0.000
    • 0b01000000 : affiche le deuxième point : 00.00
    • 0b00100000 : affiche le troisième point : 000.0
    • 0b01000000 : Pour les affichages avec juste un deux-points : 00:00
  • leading_zero : C'est un paramètre optionnel dont la valeur par défaut est false. S'il est réglé sur true, les zéros non significatifs seront affichés.
  • length : C'est un paramètre optionnel dont la valeur par défaut est de 4. Il définit le nombre de chiffres à afficher sur l'afficheur à 7 segments.
  • pos : C'est un paramètre optionnel dont la valeur par défaut est de 0. Il définit la position du chiffre le plus significatif du nombre.

Par exemple, si vous appelez display.showNumberDecEx(1530,0b01000000); cela affichera le nombre 15:30 sur l'afficheur à 7 segments.

Veuillez noter que, si le numéro est hors de portée ou si la valeur de la longueur est supérieure à 4, la fonction n'affichera rien.

setSegments()

Description

La fonction est utilisée pour régler directement les segments de l'affichage 7 segments. Elle peut servir à afficher des lettres, des caractères spéciaux, ou à activer 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'affichage à 7 segments, il s'agit d'un tableau d'octets, où chaque octet représente les segments de chaque chiffre. Chaque segment est représenté par un bit dans l'octet.
  • length : Il s'agit d'un paramètre optionnel avec une valeur par défaut de 4. Il définit le nombre de chiffres à afficher sur l'affichage à 7 segments.
  • pos : Il s'agit d'un paramètre optionnel avec une valeur par défaut de 0. Il définit la position du chiffre le plus significatif du nombre.

Cette fonction est utile lorsque vous souhaitez afficher des caractères ou des symboles qui ne sont pas inclus dans l'affichage à 7 segments de base. En réglant directement les segments, vous pouvez afficher n'importe quel motif que vous désirez.

Veuillez noter que si le nombre est hors de portée ou si la valeur de la longueur est supérieure à 4, la fonction n'affichera rien.

setBrightness()

Description

La fonction est utilisée pour régler la luminosité de l'affichage à 7 segments.

Syntaxe

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

Paramètre

  • luminosité : Ce paramètre définit le niveau de luminosité de l'affichage à 7 segments. La valeur doit être comprise entre 0 et 7. Une valeur plus élevée résulte en un affichage plus lumineux.
  • activé : Il s'agit d'un paramètre optionnel avec une valeur par défaut à vrai. Il est utilisé pour allumer ou éteindre l'affichage. S'il est réglé sur faux, l'affichage sera éteint.

※ 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!