Raspberry Pi - Bargraphe LED à 10 Segments

Ce tutoriel vous explique comment utiliser le Raspberry Pi pour contrôler l'afficheur bargraphe LED à 10 segments. En détail, nous allons apprendre :

Raspberry Pi et bargraphe LED à 10 segments

...SUGGEST

LINK_SUGGEST_RASPBERRY_PI_LED

LINK_SUGGEST_RASPBERRY_PI_BUTTON_LED

...SUGGEST

À Propos du Bargraphe LED à 10 Segments

Bargraphe LED à 10 segments
Nombre de segments 10
Couleur des LED Rouge vif
Tension directe ~2V par segment
Courant direct 20mA max par segment
Résistance requise 220Ω par segment

Brochage du Bargraphe LED

Brochage du bargraphe LED à 10 segments

Le bargraphe LED à 10 segments possède 20 broches :

  • Broches d'anode (A1–A10) : ces broches doivent être connectées aux broches GPIO du Raspberry Pi via des résistances de 220Ω
  • Broches de cathode (K1–K10) : ces broches doivent être connectées à la masse (0V)

※ Note:

La disposition des broches de votre bargraphe LED peut varier selon les fabricants. Vérifiez toujours l'orientation des anodes et des cathodes à l'aide de la fiche technique du composant avant le câblage. Regardez bien attentivement !

Schéma de Câblage

Schéma de câblage Raspberry Pi bargraphe LED

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Pour simplifier et organiser votre montage de câblage, nous recommandons l'utilisation d'un shield à bornier à vis pour Raspberry Pi. Ce shield assure des connexions plus sûres et mieux gérées, comme illustré ci-dessous :

Shield à bornier à vis pour Raspberry Pi
  • A1 du bargraphe LED vers GPIO 18 (broche 12) du Raspberry Pi via une résistance de 220Ω
  • A2 du bargraphe LED vers GPIO 23 (broche 16) du Raspberry Pi via une résistance de 220Ω
  • A3 du bargraphe LED vers GPIO 24 (broche 18) du Raspberry Pi via une résistance de 220Ω
  • A4 du bargraphe LED vers GPIO 25 (broche 22) du Raspberry Pi via une résistance de 220Ω
  • A5 du bargraphe LED vers GPIO 8 (broche 24) du Raspberry Pi via une résistance de 220Ω
  • A6 du bargraphe LED vers GPIO 7 (broche 26) du Raspberry Pi via une résistance de 220Ω
  • A7 du bargraphe LED vers GPIO 12 (broche 32) du Raspberry Pi via une résistance de 220Ω
  • A8 du bargraphe LED vers GPIO 16 (broche 36) du Raspberry Pi via une résistance de 220Ω
  • A9 du bargraphe LED vers GPIO 20 (broche 38) du Raspberry Pi via une résistance de 220Ω
  • A10 du bargraphe LED vers GPIO 21 (broche 40) du Raspberry Pi via une résistance de 220Ω
  • Toutes les K1–K10 (cathodes) vers le GND du Raspberry Pi (n'importe quelle broche GND)

※ Note:

Les 10 broches d'anode sont câblées le long d'une seule rangée du connecteur 40 broches (les broches paires : 12, 16, 18, 22, 24, 26, 32, 36, 38, 40), ce qui simplifie le câblage. Cela utilise GPIO8 et GPIO7, qui servent aussi de lignes de sélection de puce SPI CE0/CE1 — sans risque ici puisque ce projet n'utilise pas le SPI. GPIO1 (l'autre broche de l'EEPROM d'identification HAT) et les broches UART (GPIO14/GPIO15) sont entièrement évitées.

1×Raspberry Pi 5
1×10 Segment LED Bar Graph
10×220 Ω Resistor
1×Plaque d'essai
1×Fils de connexion
1×Recommandé: Shield à bornier à vis pour Raspberry Pi
1×Recommandé: Kit plaque de base prototypage et plaque d'essai pour Raspberry Pi

Ou vous pouvez acheter les kits suivants:

1×Kit de Capteurs DIYables (18 capteurs/écrans)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

Comment Programmer le Raspberry Pi pour Contrôler le Bargraphe LED

Le script ci-dessous pilote les 10 segments en séquence — il les allume un par un de A1 à A10, puis les éteint dans l'ordre inverse, tout en affichant l'état de la barre en direct dans le terminal.

# Ce code Raspberry Pi a été développé par newbiely.fr # Ce code Raspberry Pi est mis à disposition du public sans aucune restriction. # Pour des instructions complètes et des schémas de câblage, veuillez visiter: # https://newbiely.fr/tutorials/raspberry-pi/raspberry-pi-10-segment-led-bar-graph import RPi.GPIO as GPIO import time NUM_SEGMENTS = 10 LED_PINS = [18, 23, 24, 25, 8, 7, 12, 16, 20, 21] def print_bar(lit_count): bar = '*' * lit_count + ' ' * (NUM_SEGMENTS - lit_count) print("Bar: [" + bar + "]") GPIO.setmode(GPIO.BCM) for pin in LED_PINS: GPIO.setup(pin, GPIO.OUT) GPIO.output(pin, GPIO.LOW) try: while True: for i in range(NUM_SEGMENTS): GPIO.output(LED_PINS[i], GPIO.HIGH) print_bar(i + 1) time.sleep(0.1) time.sleep(0.5) for i in range(NUM_SEGMENTS - 1, -1, -1): GPIO.output(LED_PINS[i], GPIO.LOW) print_bar(i) time.sleep(0.1) time.sleep(0.5) except KeyboardInterrupt: GPIO.cleanup()

Étapes Rapides

  1. Assurez-vous que Raspbian ou tout autre système d'exploitation compatible avec le Raspberry Pi est installé sur votre Pi.
  2. Assurez-vous que votre Raspberry Pi est connecté au même réseau local que votre PC.
  3. Assurez-vous que votre Raspberry Pi est connecté à Internet si vous devez installer des bibliothèques.
  4. Consultez LINK_TUTORIAL_RASPBERRY_PI_GETTING_STARTED si vous n'avez pas encore configuré votre Raspberry Pi.
  5. Connectez votre PC au Raspberry Pi via SSH à l'aide d'un client SSH tel que PuTTY.
  6. Assurez-vous que la bibliothèque RPi.GPIO est installée. Si elle n'est pas déjà présente sur votre système, installez-la en exécutant :
sudo apt-get update sudo apt-get install python3-rpi.gpio
  1. Câblez les composants selon le schéma de câblage ci-dessus.
  2. Créez un fichier de script Python LedBarGraph.py et ajoutez le code suivant :
# Ce code Raspberry Pi a été développé par newbiely.fr # Ce code Raspberry Pi est mis à disposition du public sans aucune restriction. # Pour des instructions complètes et des schémas de câblage, veuillez visiter: # https://newbiely.fr/tutorials/raspberry-pi/raspberry-pi-10-segment-led-bar-graph import RPi.GPIO as GPIO import time NUM_SEGMENTS = 10 LED_PINS = [18, 23, 24, 25, 8, 7, 12, 16, 20, 21] def print_bar(lit_count): bar = '*' * lit_count + ' ' * (NUM_SEGMENTS - lit_count) print("Bar: [" + bar + "]") GPIO.setmode(GPIO.BCM) for pin in LED_PINS: GPIO.setup(pin, GPIO.OUT) GPIO.output(pin, GPIO.LOW) try: while True: for i in range(NUM_SEGMENTS): GPIO.output(LED_PINS[i], GPIO.HIGH) print_bar(i + 1) time.sleep(0.1) time.sleep(0.5) for i in range(NUM_SEGMENTS - 1, -1, -1): GPIO.output(LED_PINS[i], GPIO.LOW) print_bar(i) time.sleep(0.1) time.sleep(0.5) except KeyboardInterrupt: GPIO.cleanup()
  1. Exécutez le script avec la commande suivante :
python3 LedBarGraph.py
  1. Consultez les résultats dans le terminal — vous verrez l'animation de la barre affichée sous forme de texte.

Sortie de la Console Raspberry Pi

PuTTY - Raspberry Pi
Bar: [* ] Bar: [** ] Bar: [*** ] Bar: [**** ] Bar: [***** ] Bar: [****** ] Bar: [******* ] Bar: [******** ] Bar: [********* ] Bar: [**********] Bar: [********* ] Bar: [******** ] Bar: [******* ] Bar: [****** ] Bar: [***** ] Bar: [**** ] Bar: [*** ] Bar: [** ] Bar: [* ] Bar: [ ]

Le script anime la barre LED en continu, en affichant l'état toutes les 100 ms. Arrêtez le script à tout moment en appuyant sur Ctrl + C dans le terminal — le gestionnaire KeyboardInterrupt nettoiera automatiquement l'état des GPIO.

Connaissances Supplémentaires

Chaque broche GPIO du Raspberry Pi peut fournir ou absorber en toute sécurité un maximum de 16 mA, avec une limite combinée d'environ 50 mA pour l'ensemble des broches GPIO simultanément. Utilisez toujours une résistance de 220Ω en série avec chaque segment LED pour maintenir le courant dans des limites sûres et protéger à la fois le Pi et le bargraphe LED contre les dommages.

Le bargraphe LED à 10 segments convient bien à diverses applications pratiques sur le Raspberry Pi : afficher des niveaux de batterie ou de puissance, visualiser l'intensité d'un signal audio, montrer la progression d'un script d'automatisation de longue durée, ou servir de simple indicateur d'état dans des projets domotiques et IoT fonctionnant directement sur le Pi.

Vidéo

※ NOS MESSAGES

  • N'hésitez pas à partager le lien de ce tutoriel. Cependant, veuillez ne pas utiliser notre contenu sur d'autres sites web. Nous avons investi beaucoup d'efforts et de temps pour créer ce contenu, veuillez respecter notre travail !