Afficheur 8x7-segments TM1638

Montage

La connectique de l’afficheur s’organise de la manière suivante :
tm1638-schema.png Vous pouvez retrouver les informations de connectique à l’arrière de la carte.

Afficheur ST Nucleo
5V 5V
DIO D4
CLK D3
STB0 D2
GND GND

Utilisation

En premier, il est nécessaire d’importer les bibliothèques :
Elle se télécharge depuis le gestionnaire arduino sous Croquis > Inclure une bibliothèque > Gérer les bibliothèques et en cherchant tm1638. Choisissez TM1638plus.

// Importation des bibliothèques
#include <TM1638plus.h>

Ensuite on initialise les pin de communication avec la carte et on démarre la communication :

// Déclaration de la carte
//           STB  CLK  DIO
TM1638plus tm(D2, D3 , D4);

// Communication et début affichage
Serial.begin(115200);
tm.displayBegin();

Maintenant la carte est prête à être utilisée et voici les instructions pour utiliser les différentes parties :

  • Les LEDs :
    La carte montrée (JY-LKM1638) dispose de leds bicolore vertes et rouges, ce qui n’est pas le cas de toutes les cartes TM1638.
    tm.setLEDs(valeur); : allume/éteint les leds selon la valeur indiquée : 0xRRVV où RR et VV sont les codes hexadécimaux pour allumer/éteindre la composante rouge/verte. tm.setLED(position, valeur); : allume/éteint la led à la position indiquée.
// Gestion des leds
tm.setLEDs(0xE006); // allume les leds 6-8 en rouge et 2-3 en vert
tm.setLEDs(0x0180); // allume la led 1 en rouge et 8 en vert
tm.setLED(0, 0);	// éteint la led 1
tm.setLED(1,1); 	// allume la led 2 en rouge
tm.setLED(2,2); 	// allume la led 3 en vert
tm.setLED(3,3); 	// allume la led 4 en rouge et vert (léger orange)
  • Les boutons :
    tm.readButtons(); renvoie un mot binaire avec 1 pour indiquer que le bouton est pressé. Par exemple si tm.readButtons() renvoie 0b00100001, cela signifie que les 1er et 6e boutons sont pressés.
// on récupère l'information sur les boutons
boutons = tm.readButtons();
  • Les segments :
    tm.displayText("mot"); : permet d’écrire les caractères 0-9, A-Z, espace, -, _ et les points. L’affichage est aligné à gauche et n’efface pas ce qui à été précédemment affiché si le texte est plus petit que les 8 caractères.
    tm.displayIntNum(nombre, bool); : permet d’afficher un entier. L’affichage est aligné à gauche et efface les cases non-remplies si bool = false et aligné à droite compléter avec des 0 si bool = true.
    tm.display7Seg(pos, 0bpgfedcba); : permet de modifier un caractère avec la configuration souhaité en suivant l’image suivante :

7_segment_display.jpg

// Segments
tm.displayText("  _--_  ");
tm.displayText("a.b.c.d.e.f.g.h.");

tm.displayIntNum(72, false); 	// "72      "
tm.displayIntNum(-92345, true);	// "-0092345"
  
tm.display7Seg(2, 0b11011011);	// affiche '2.' sur le 3e caractère
tm.display7Seg(7, 0b01110110);	// affiche 'H' sur le dernier caractère
  • Ajustement de la luminosité : Il est possible de modifier la luminosité des leds et segments avec tm.brightness(value).
// Change la luminosité des leds et segments
tm.brightness(0); // luminosité minimale
tm.brightness(7); // luminosité maximale