Module d’affichage à LED Raspberry Pi à 7 segments utilisant Python

Module d'affichage à LED Raspberry Pi à 7 segments utilisant Python

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).

Façade du module LED à 4 chiffres et 7 segments

Dos du module LED à 4 chiffres et 7 segments

Configuration matérielle du module LED

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

Affichage LED à sept segments à 4 chiffres

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 :

Adresse I2C HT16K33

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 :

YouTube video

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

Module LED à 4 chiffres et 7 segments

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