Dark Light
-10%
, , ,

Afficheur 8 chiffres, 8 LEDs, 8 boutons TM1638

(1 avis client)
Availability:

En stock


Module TM1638 afficheur 8 chiffres, comporte 8 chiffres lumineux (à 7 segments et point décimal), un clavier à 8 boutons (S1 à S8) et 8 LEDs à double couleur vert/rouge (LED1 à LED8).
Il est compatible avec Arduino et d’autres micro contrôleurs.

54,0 DH 60,0 DH

En stock

Le module TM1638 est un module d’affichage et d’entrée pratique, conçu pour permettre un contrôle et une interaction simples avec un microcontrôleur comme Arduino ou Raspberry Pi. Ce module combine un écran à 8 chiffres à LED 7 segments, 8 boutons-poussoirs, et 8 LEDs indépendantes, tout en étant piloté par une seule puce TM1638 qui facilite la gestion de ces éléments via un protocole de communication série.

Caractéristiques principales :

  • Affichage LED 7 segments : 8 chiffres affichables individuellement.
  • LEDs indépendantes : 8 LEDs associées aux chiffres, activables ou désactivables individuellement.
  • Boutons-poussoirs : 8 boutons intégrés pour ajouter des entrées utilisateur (par exemple, pour créer des menus interactifs ou des commandes).
  • Puces de contrôle : Basé sur la puce TM1638, qui gère à la fois l’affichage et les entrées de manière efficace via une interface série.
  • Protocole de communication : Utilise seulement 3 broches pour communiquer avec un microcontrôleur (STB, CLK, DIO), économisant les ports I/O.
  • Tension de fonctionnement : 5V DC, compatible avec la plupart des microcontrôleurs.

Applications :

  • Affichage numérique : Idéal pour afficher des données numériques telles que des scores, des temps, ou des mesures (température, voltage, etc.).
  • Commandes interactives : Grâce aux boutons et LEDs, ce module est parfait pour créer des interfaces utilisateur simples et réactives.
  • Projets Arduino et Raspberry Pi : Utilisé dans de nombreux projets DIY nécessitant des éléments d’affichage et de commande.

Avantages :

  • Économie de ports I/O : Utilise seulement 3 broches pour contrôler 8 chiffres, 8 LEDs, et 8 boutons, grâce à la puce TM1638.
  • Affichage et interaction intégrés : Combine les fonctions d’affichage et d’entrée dans un seul module compact.
  • Facilité d’intégration : Bibliothèques disponibles pour Arduino et autres microcontrôleurs, facilitant la programmation.
  • Modularité : Peut être utilisé dans des projets nécessitant un affichage numérique, des LEDs indicatrices et des boutons de commande, comme des tableaux de bord, des horloges, ou des interfaces utilisateur.

Exemple de brochage avec Arduino :

  • STB (Strobe) : Connecté à une broche numérique (par exemple, D8).
  • CLK (Clock) : Connecté à une broche numérique (par exemple, D9).
  • DIO (Data I/O) : Connecté à une broche numérique (par exemple, D10).
  • VCC : Connecté à 5V.
  • GND : Connecté à la masse.

Le module TM1638 est une solution idéale pour les projets nécessitant un affichage numérique simple et une interaction utilisateur via des boutons, tout en économisant les broches du microcontrôleur.

Ce Module TM1638 est constitué de 8 afficheurs 7 segments, 8 LEDs et 8 boutons, dont la pièce maîtresse est un circuit intégré TM1638 (mon modèle porte la mention « LED AND KEY« ).

Même s’il est peu probable que vous ayez besoin de la totalité des composants qu’il contient, un tel module peut grandement faciliter la mise au point d’un prototype, d’autant plus qu’il n’accapare que 3 entrées/sorties de votre microcontrôleur.

Ce court tutoriel vous indiquera comment brancher un tel module à votre carte Arduino, et comment utiliser les différents éléments qui le composent.

Connexions

Le module comporte 5 connecteurs, qui seront branchés à l’Arduino de la façon suivante:

VCC du module TM1638 :  5V de l’Arduino
GND du module TM1638:  GND de l’Arduino
STB* (strobe) du module TM1638:  pin 4 de l’Arduino
CLK* (clock) du module TM1638:  pin 2 de l’Arduino
DIO* (digital input output) du moduleTM1638:  pin 3 de l’Arduino

*: Les connecteurs STB, CLK et DIO peuvent être branchés à d’autres pins de l’Arduino si désiré:  il s’agira de modifier les sketches proposés ci-dessous pour en tenir compte.

Circuit%2BTM1638

Installation de la bibliothèque

Nous allons utiliser la bibliothèque conçue par Ricardo Batista spécialement pour ce type de module. Il y a évidemment une page github d’où on peut télécharger la bibliothèque, afin de l’installer dans l’IDE Arduino.

Initialisation de la bibliothèque

Dans chaque sketch qui utilise cette bibliothèque, on créé un objet de type « TM1638 » en précisant, dans l’ordre, le numéro de la pin reliée à DIO, CLK et STB.

Puisque nous avons branché DIO à 3, CLK à 2 et STB à 4, je peux donc utiliser la syntaxe suivante:

TM1638 afficheur(3, 2, 4);

…où « afficheur » est le nom que j’ai choisi pour désigner cet objet.

Afficher des nombres

La bibliothèque TM1638 met à notre disposition plusieurs fonctions permettant d’afficher des nombres grâces aux 8 afficheurs à 7 segments:

setDisplayToDecNumber:  pour afficher un nombre décimal positif
setDisplayToSignedDecNumber: pour afficher un nombre décimal positif ou négatif
setDisplayToBinNumber:  pour afficher un nombre binaire
setDisplayToHexNumber:  pour afficher un nombre hexadécimal
setDisplayToString:  pour afficher des lettres plutôt que des nombres
clearDisplay:  pour effacer ce qui était précédemment affiché

Il est également possible de réglez un des 8 chiffres en particulier (plutôt que l’ensemble du nombre à 8 chiffres) en utilisant setDisplayDigit et clearDisplayDigit.

Penchons-nous sur la fonction « setDisplayToDecNumber« , puisque c’est celle qui me semble la plus utile.  Elle comporte 3 arguments:

  1.  un ombre de type « long » qui est le nombre à afficher
  2.  un byte indiquant le ou les points décimaux qui doivent être  allumés
  3.  un booléen indiquant si les zéros qui précèdent le nombre doivent être affichée (True) ou non (False).
Par exemple:
« afficheur.setDisplayToDecNumber(12345, 0, true); »     affichera « 00012345 »
« afficheur.setDisplayToDecNumber(12345, 0, false); »     affichera « 12345 »
« afficheur.setDisplayToDecNumber(12345, 0b0001000 , false); »     affichera « 12.345 »
« afficheur.setDisplayToDecNumber(12345, 0b11111111 , true); »     affichera « 0.0.0.1.2.3.4.5. »

L’exemple ci-dessous est un simple compteur dont la valeur augmente d’une unité à chaque seconde.

/*
   Affichage d'un nombre croissant sur un module TM1638.
*/

#include <TM1638.h>    // bibliothèque de rjbatista

// DIO 3, CLK 2 , STB 4:
TM1638 afficheur(3, 2, 4);

long compteur = 0;


void setup() {

}

void loop() {

  afficheur.setDisplayToDecNumber(compteur, 0 , false);
  compteur++;
  delay(1000);

}

Allumer des LEDs

La fonction « setLED » comporte deux arguments:

  1. La couleur de la LED:  TM1638_COLOR_RED, ou TM1638_COLOR_NONE (LED éteinte).
  2. Le numéro de la LED qu’on désire allumer ou éteindre, de 0 à 7 (La LED 0 est celle qui est située à gauche du module).

L’exemple ci-dessous allume successivement chaque LED, de gauche à droite.

/*
   Contrôle des LED du module TM1638.
*/

#include <TM1638.h>    // bibliothèque de rjbatista

// DIO 3, CLK 2 , STB 4:
TM1638 afficheur(3, 2, 4);


void setup() {

}

void loop() {

  for (int i = 0; i <= 7; i++) {
    afficheur.setLED(TM1638_COLOR_RED, i);
    delay(500);
    afficheur.setLED(TM1638_COLOR_NONE, i);
    delay(500);
  }
}

Lire l’état des boutons

La fonction « getButtons » retourne un octet qui décrit l’état de chaque bouton.  Le bit est à 1 si le bouton correspondant est enfoncé, et à 0 s’il ne l’est pas.

Par exemple, si vous appuyez sur le deuxième bouton à partir de la gauche (S2), getButtons retourne la valeur binaire « 01000000 ».  Grâce à la fonction bitRead (qui est une fonction régulière Arduino et non une fonction spécifique à la bibliothèque), il est facile de vérifier l’état de chaque bouton.

L’exemple ci-dessous indique dans le moniteur série le numéro du bouton enfoncé.

/*
   Lecture des boutons du module TM1638.
*/

#include <TM1638.h>    // bibliothèque de rjbatista

// DIO 3, CLK 2 , STB 4:
TM1638 afficheur(3, 2, 4);


void setup() {
  Serial.begin(9600);
}

void loop() {

  byte etatBoutons;

  etatBoutons = afficheur.getButtons();

  for (int i = 0; i <= 7; i++) {
    if (bitRead(etatBoutons, i)) {
      Serial.print("Le bouton S");
      Serial.print(i + 1);
      Serial.println(" est enfonce.");
      delay(500);
    }
  }

}

 

Video

Based on 1 review

5.0 overall
1
0
0
0
0

Add a review

  1. Rayan

    Très utile pour maitriser les afficheurs 7 segments

    Rayan

× Comment puis-je vous aider ?