Tutoriel Raspberry
Branchement et codage d'un afficheur 7 segments à 4 chiffres (TM1637)


Mis à jour le : 09/05/2019


Map 7 Segment - Espace Raspberry Francais

L'afficheur 7 segments est un composant incontournable, utile dans bons nombres de projets. Il permet notamment d'afficher l'heure, la température, un code que l'on tape sur un clavier ou tout simplement un chiffre. Il permet même d'afficher des mots tel que "Help", "Cool", "Erro" et bien d'autres !
Dans ce tutoriel, nous allons voir en détail toutes les fonctions qu'offre la librairie MicroPython-TM1637 pour faire fonctionner facilement ce composant.

I. Prérequis

Pour suivre ce tutoriel, il te faudra :

Maintenant que tout est réuni, on peut passer au branchement du module au Raspberry.

II. Branchement de l'afficheur

Le module 7 segments TM1637 s'alimente en 3.3V ou 5V au choix (le 5V donnera un affichage plus fort). Pour le controler, il dispose de deux entrées : une horloge CLK (clock) et un port DIO.
Le CLK sera relié au GPIO 5 et le DIO au GPIO 4. Voici le schema de branchement :

Schéma de branchement de l'afficheur 7 segments TM1637 sur Raspberry Pi 3

III. Installation de la librairie

Pour afficher ce que l'on veut sur l'afficheur 7 segments facilement, on va utiliser la librairie MicroPython-TM1637. Cette librairie propose toutes les fonctionnalités possibles : affichage de chiffres, de l'heure, de la température, ou même de caractères personalisés.
Pour installer la librairie, il sufit d'entrer dans la console :

cd ~
sudo git clone https://github.com/EspaceRaspberryFrancais/RaspberryTM1637.git
sudo pip install wiringpi

La librairie est maintenant installée !

IV. Première application : Un minuteur

Maintenant que tout est branché et que la librairie est installée, on va pouvoir commencer à coder l'afficheur 7 segments.
Pour que l'importation de la librairie du TM1637 se passe bien, écrire les codes dans le dossier où se trouve la librairie, c'est à dire ici :~/RaspberryTM1637.

cd ~/RaspberryTM1637
sudo nano minuteur.py

Ce code permet de se familiariser avec la librairie à travers un exemple simple : faire un minuteur.
En voici le code commenté :

En executant le programme, voilà une vidéo du resultat attendu :

V. Une horloge

Sur le même principe que le minuteur, on peut facilement afficher l'heure sur le module, avec le code suivant :

On obtient alors un affichage de l'heure de ce type :

Affichage heure 7 segments - Espace Raspberry francais

VI. Afficher la température

Pour ce dernier exemple, on va récupérer la température avec une sonde DS18B20 et l'afficher sur le module 7 segments.
Pour commencer, je vous invite à suivre le tutoriel sur la sonde DS18B20 jusqu'au III. : le branchement reste le même. Concernant le code, rien de très complexe : une fonction s'occupe de récupérer la température fournie par la sonde, et une autre l'affiche en l'arrondissant à l'entier le plus proche. tm.temperature() prend en paramètre un entier n et affiche sur le module sous la forme n°C. Si n<-9, l'afficheur affiche LO°C, et si n>99, HI°C.

On obtient alors un affichage de la température de ce type :

Affichage température 7 segments - Espace Raspberry francais

Bonus. Afficher des caractères personnalisés

Maintenant que les principales fonctions d'affichage on été abordées, voyons les petits plus que propose la librairie. Une des fonction qui peut s'avérer intéressante est celle d'afficher un caractère personnalisé. Il faut pour cela utiliser la fontion write([aff1, aff2, aff3, aff4]), avec comme paramètre une liste de nombres codés en binaire, décimal, ou hexadecimal. Chaque nombre correspond à un affichage différent.
Pour savoir quel nombre est associé à l'affichage souhaité, suivre cet exemple :

Map 7 Segment - Espace Raspberry Francais A=0 | B=0 | C=0 | D=0
E=0 | F=0 | G=0

N = 0bXGFEDCBA = 0
Map 7 Segment - Espace Raspberry Francais A=1 | B=0 | C=0 | D=1
E=1 | F=1 | G=1

N = 0bX1111001 = 121 = 0x79
Map 7 Segment - Espace Raspberry Francais A=1 | B=1 | C=1 | D=1
E=0 | F=0 | G=0

N = 0bX0001111 = 15 = 0x0F

Qu'est ce que le X ?

La valeur X doit être à 0 pour l'afficheur n°1, 3 et 4. Cette valeur peut être 1 pour le deuxième afficheur, et cela aura pour effet d'allumer le caractère ":".
Exemple :
Ce code n'est pas correct : afficheur.write([0b10111001, 0b00001001, 0b00001001, 0b00001111])
En revanche, celui-ci est correct : afficheur.write([0b00111001, 0b100001001, 0b00001001, 0b00001111])

Une fois les caractères personalisés transcrits en nombres, appeler simplement la fonction write dans le script Python :

afficheur.write([0b00111001, 0b00001001, 0b00001001, 0b00001111])

Avec le code ci-dessus, on obtient ceci :

Exemple d'affichage personnalisé sur 7 Segments TM1637 - Espace Raspberry Francais

Voilà, nous avons fait le tour des principales fonctionnalités de la librairie, il en reste quelques unes que vous pouvez découvrir en lisant directement le README.


Commentaires



Commenter
Votre adresse mail ne sera pas visible sur le site.

Seuls les commentaires jugés corrects seront mis en ligne.



Composants Bien débuter sur le Raspberry PI Configurer le Raspberry Pi
Ecran LCD 16x02 Accessoires indispensables sur Raspberry Pi Connexion sans login ni mot de passe au Raspberry
Capteur de température DS18B20 Première installation et démarage Changer le Hostname du Raspberry Pi
Afficheurs 7 segments Création et execution d'un programme Python Connexion Ethernet Raspberry/ordinateur
Capteur distance HC-SR04 Connexion au bureau depuis Windows Connexion au Raspberry Pi en SSH
Interaction par bouton poussoir Test & tuto : Ecran LCD 7" tactile Communication série entre Arduino et Raspberry Pi
Servo Moteur
Capteur de présence HC-SR501
Module RFID-RC522
Caméra sur Raspberry Pi
Module L298N : Contrôle de moteurs à courant continu

EspaceRaspberryFrançais |
Contact | Facebook



En tant que Partenaire Amazon, je réalise un bénéfice sur les achats remplissant les conditions requises.

Espace-raspberry-francais.fr est hebergé par SARL LWS.

Espace Raspberry Français - 2014 Textes soumis au droit d'auteur