Afficheur 8x7-segments TM1638
Montage
La connectique de l’afficheur s’organise de la manière suivante :
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 :
// 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