Module TM1638 Maroc

Afficheur 8 chiffres, 8 LEDs, 8 boutons TM1638

60.00 Dh

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.

En stock

Description

Ce module 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.

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

Avis

Il n’y pas encore d’avis.

Soyez le premier à laisser votre avis sur “Afficheur 8 chiffres, 8 LEDs, 8 boutons TM1638”