Les écrans LED à sept segments sont un composant populaire dans les projets électroniques depuis des décennies. Bien que vous puissiez les câbler directement, l’utilisation d’une puce de contrôleur intégrée facilite grandement les choses.
Les modules à 4 chiffres avec une puce de contrôleur intégrée sont bon marché et faciles à acheter. Pour ce guide, j’ai utilisé un module avec une interface I2C qui ne nécessite que quatre fils pour être connecté à l’en-tête GPIO du Raspberry Pi. Une puce populaire est la HT16K33.
Ce didacticiel expliquera comment connecter le module, configurer le logiciel et exécuter quelques exemples de scripts Python.
Module d’affichage à LED 0,56″ à 4 chiffres et 7 segments
La taille fait référence à la hauteur des chiffres et est souvent indiquée en pouces. Ce module de 0,56 pouces a des chiffres de 14 mm de haut. Le module lui-même mesure 50 mm x 27 mm x 12 mm (2 x 1,1 x 0,5 pouce).


Configuration matérielle du module LED
Le module a quatre broches qui peuvent être connectées directement à l’en-tête GPIO du Pi.

Sur mon circuit imprimé d’affichage à LED, les broches étaient étiquetées +, -, D et C. Les + et – se réfèrent à 3,3 V et à la masse. Les D et C font référence aux broches SDA et SCL requises pour l’interface I2C.
| Broche d’en-tête Pi | Une fonction | Module DEL |
|---|---|---|
| Broche 1 | 3.3V | + |
| Broche 14 | Terre | – |
| Broche 3 (GPIO2) | ADD | D (DAT) |
| Broche 5 (GPIO3) | SCL | C (CLK) |
Il existe d’autres broches de 3,3 V et de masse disponibles sur l’en-tête GPIO du Pi’, vous pouvez donc les utiliser si vous le souhaitez. Jetez un œil au diagramme d’en-tête GPIO Raspberry Pi.
Sélection d’adresse I2C
L’adresse I2C par défaut du périphérique HT16K33 est 0x70. Trois points de soudure sur le PCB permettent de définir 7 autres adresses afin que plusieurs modules puissent être utilisés en même temps. La plage d’adresses est de 0x70 à 0x77.
Activer l’interface Pi I2C
Comme pour les autres appareils I2C, l’interface doit être activée et quelques bibliothèques Python installées.
Suivez le tutoriel Enable I2C Interface sur le Raspberry Pi pour obtenir cette configuration.
Lorsque vous exécutez la commande suivante :
i2cdetect -y 1
avec le module attaché, vous devriez voir l’adresse 0x70 affichée dans la grille :

Configuration du logiciel Python
La première étape consiste à installer des bibliothèques Python. Ceux-ci sont peut-être déjà installés mais il n’y a aucun mal à essayer de s’assurer :
sudo apt-get install -y build-essential build-essential sudo apt-get install -y python-dev sudo apt-get install -y python-smbus
Clonez ensuite la librairie Adafruit depuis leur dépôt Github :
git clone https://github.com/adafruit/Adafruit_Python_LED_Backpack.git
Naviguez jusqu’au répertoire créé :
cd Adafruit_Python_LED_Backpack
et installez pour Python 2 à l’aide de la commande suivante :
sudo python setup.py install
Si vous souhaitez utiliser Python 3, vous pouvez l’installer en utilisant :
sudo python3 setup.py install
Je fais habituellement les deux pour avoir plus de flexibilité plus tard.
Exemples de scripts Python
Exemples d’Adafruit
Une fois la bibliothèque installée, vous pouvez exécuter les deux exemples de scripts d’Adafruit.
Naviguez jusqu’au répertoire des exemples en utilisant :
cd ~ cd Adafruit_Python_LED_Backpack cd examples
puis lancez les scripts en utilisant :
python sevensegment_test.py
ou alors :
python ex_7segment_clock.py
Le premier script affichera une séquence de chiffres sur le module LED. La seconde affichera l’heure et agira comme une horloge numérique.
Mon exemple de script
J’ai créé mon propre script de test que vous pouvez télécharger depuis mon référentiel BitBucket en utilisant :
wget https://bitbucket.org/MattHawkinsUK/rpispy-misc/raw/master/python/7segment_counter.py
puis lancez en utilisant :
python 7segment_counter.py
Le compteur devrait ressembler à ceci :

Fonctions de la bibliothèque
La bibliothèque fournit un certain nombre de fonctions que vous pouvez appeler dans vos propres scripts.
print_number_str(valeur, justifier_right=True)
Imprime une chaîne de 4 caractères de valeurs numériques à l’écran. Les caractères de la chaîne doivent être un caractère pris en charge ou un point décimal.
print_float (valeur, décimales_chiffres = 2, justifier_droit = vrai)
Imprime une valeur numérique à l’écran. Si la valeur est négative, elle sera imprimée avec un signe moins en tête. Les chiffres décimaux sont le nombre souhaité de chiffres après la virgule décimale.
print_hex(valeur, justifier_right=True)
Imprime une valeur numérique en hexadécimal. La valeur doit être comprise entre 0 et FFFF.
set_colon(show_colon)
Activez les deux points avec show colon True ou désactivez avec show colon False.
set_decimal(pos, décimal)
Activez ou désactivez le point décimal à la position fournie. La position doit être une valeur de 0 à 3, 0 étant le chiffre le plus à gauche sur l’affichage. Decimal doit être True pour activer le point décimal et False pour le désactiver.
set_luminosité(valeur)
Définit la luminosité de l’affichage par incréments de 1/16. La valeur peut être un entier compris entre 0 (faible luminosité) et 15 (pleine luminosité).
La définition de ces fonctions et ce qu’elles font sous le capot peuvent être vues dans ce fichier :
https://github.com/adafruit/Adafruit_Python_LED_Backpack/blob/master/Adafruit_LED_Backpack/SevenSegment.py

Python 2 et Python 3
Les exemples de scripts utilisés dans ce didacticiel peuvent être exécutés à l’aide de Python 2 ou Python 3. Dans la mesure du possible, vous devez utiliser Python 3.
Acheter un module d’affichage LED
Ces modules sont disponibles à partir de nombreuses sources.
-
AZDelivery 3 x LED Display Compatible avec TM1637 écran 7-Segment à 4 Chiffres Module d'affichage Digital Tube d'horloge Compatible avec Arduino et Raspberry Pi y Compris Un eBook
-
Lot de 10 modules LED RVB WS2812 - 8 embouts - Pilotes intégrés pour Arduino Raspberry Pi ESP32
