LE MODULE AFFICHEUR 7 SEGMENTS
Le module afficheur 7 segments comporte 4 afficheurs 7 segments rouges pilotés par un circuit spécialisé TM1637 qui contrôle la valeur des 4 digits et leur luminosité. Nous pouvons afficher un nombre de 0 à 9999 ou l'heure sous la forme 12:00.
Ce module doit être relié à un connecteur numérique de la base et les deux broches correspondantes de l'Arduino sont utilisées.
La bibliothèque gérant ce module est téléchargeable ici et ses principales fonctions sont :
-
TM1637 aff_segments(CLK, donnée) où CLK représente la broche du signal d'horloge et donnée la broche de la ligne de données. Cette fonction permet de créer l'objet.
-
aff_segments.init() initialise l'objet.
-
aff_segments.set(luminosité) où luminosité doit être compris entre 0 et 7. Cette fonction permet de fixer la luminosité des afficheurs.

-
aff_segments.display(afficheur, chiffre) où afficheur représente le numéro de l'afficheur (compris entre 0 et 3) et chiffre, le chiffre qui s'affiche sur l'afficheur correspondant. Cette fonction permet d'afficher un nombre sur l'un des 4 afficheurs.
Si nous voulons afficher un nombre à 4 chiffres, nous déclarerons un tableau à 4 variables et nous utiliserons la
fonction display sous cette forme aff_segments.display(tableau).
-
aff_segments.point(visible) où visible peut prendre deux valeurs POINT_ON ou POINT_OFF. Cette fonction permet d'allumer ou d'éteindre les points centraux de l'afficheur.

Ce module utilise deux broches numériques de l'Arduino. Il est donc impératif de laisser un connecteur libre de la base "Grove" entre ce module et le suivant. Exemple : Si nous branchons ce module sur D2, D3 doit absolument rester libre.
Exemple :
Nous souhaitons incrémenter la valeur affichée sur le module afficheur 7 segments tant que l'on appuie sur un bouton poussoir.
Liste du matériel :
-
1 base RIP
-
1 module bouton poussoir "Grove" avec support RIP
-
1 module afficheur 7 segments "Grove" avec support RIP
Câblage :

Module "Grove"
Module bouton poussoir
Module afficheur 7 segments
Connecteur Base
D4
D2
Programme :
/* Afficheur_Grove est un programme qui incrémente la valeur d'un afficheur 7 segments à 4 digits lorsque l'on appuie sur un bouton poussoir */
#include "TM1637.h" // appel de la bibliothèque
#define bouton 4 // affectation des broches
#define CLK 2
#define DIO 3
TM1637 aff_segments(CLK,DIO); // création de l'objet aff_segments
byte unite=0;
byte dizaine=0;
byte centaine=0;
void setup()
{
pinMode(bouton, INPUT); // la broche bouton est en entrée
aff_segments.init();
aff_segments.set(2);
aff_segments.display(3,0); // on affiche 0000
aff_segments.display(2,0);
aff_segments.display(1,0);
aff_segments.display(0,0);
}
void loop()
{
if (digitalRead(bouton)==HIGH) // si bouton est actif
{
unite=unite+1; // on ajoute 1 aux unités
if (unite<10)
{
aff_segments.display(3,unite); // on affiche les unités
}
else
{
unite=0; // on remet les unités à 0 et on ajoute 1 aux dizaines
dizaine=dizaine+1;
if (dizaine<10)
{
aff_segments.display(3,unite);
aff_segments.display(2,dizaine);
}
else
{
dizaine=0; // on remet les dizaines à 0 et on ajoute 1 aux centaines
centaine=centaine+1;
if (centaine<10)
{
aff_segments.display(3,unite);
aff_segments.display(2,dizaine);
aff_segments.display(1,centaine);
}
else
{
unite=0; // on remet tous à 0 après 999
dizaine=0;
centaine=0;
aff_segments.display(3,unite);
aff_segments.display(2,dizaine);
aff_segments.display(1,centaine);
}
}
}
}
delay(100);
}