Note
Bonjour et bienvenue dans la Communauté Facebook des passionnés de Raspberry Pi, Arduino et ESP32 de SunFounder ! Plongez plus profondément dans l’univers des Raspberry Pi, Arduino et ESP32 avec d’autres passionnés.
Pourquoi rejoindre ?
Support d’experts : Résolvez les problèmes après-vente et les défis techniques avec l’aide de notre communauté et de notre équipe.
Apprendre et partager : Échangez des astuces et des tutoriels pour améliorer vos compétences.
Aperçus exclusifs : Accédez en avant-première aux annonces de nouveaux produits et aux aperçus.
Réductions spéciales : Profitez de réductions exclusives sur nos produits les plus récents.
Promotions festives et cadeaux : Participez à des cadeaux et des promotions de vacances.
👉 Prêt à explorer et à créer avec nous ? Cliquez [Ici] et rejoignez-nous aujourd’hui !
1.1.3 Graphique à barres LED
Introduction
Dans ce projet, nous allons allumer séquentiellement les lumières sur le graphique à barres LED.
Composants nécessaires
Dans ce projet, nous avons besoin des composants suivants.
Il est très pratique d’acheter un kit complet, voici le lien :
Nom |
ARTICLES DANS CE KIT |
LIEN |
|---|---|---|
Kit Raphael |
337 |
Vous pouvez également les acheter séparément aux liens ci-dessous.
INTRODUCTION DES COMPOSANTS |
LIEN D’ACHAT |
|---|---|
- |
Schéma de connexion
Nom T-Board |
physique |
wiringPi |
BCM |
GPIO18 |
Pin 12 |
1 |
18 |
GPIO23 |
Pin 16 |
4 |
23 |
GPIO24 |
Pin 18 |
5 |
24 |
GPIO25 |
Pin 22 |
6 |
25 |
SPICE0 |
Pin 24 |
10 |
8 |
SPICE1 |
Pin 26 |
11 |
7 |
GPIO12 |
Pin 32 |
26 |
12 |
GPIO16 |
Pin 36 |
27 |
16 |
GPIO20 |
Pin 38 |
28 |
22 |
GPIO21 |
Pin 40 |
29 |
21 |
Procédures expérimentales
Étape 1 : Construisez le circuit.
Note
Faites attention à la direction lors de la connexion. Si vous le connectez à l’envers, il ne s’allumera pas.
Étape 2 : Allez dans le dossier du code.
cd ~/raphael-kit/python-pi5
Étape 3 : Exécutez le fichier exécutable.
sudo python3 1.1.3_LedBarGraph_zero.py
Après l’exécution du code, vous verrez les LED de la barre LED s’allumer et s’éteindre régulièrement.
Avertissement
Si vous recevez le message d’erreur RuntimeError: Cannot determine SOC peripheral base address, veuillez consulter Si « gpiozero » ne fonctionne pas.
Code
Note
Vous pouvez Modifier/Réinitialiser/Copier/Exécuter/Arrêter le code ci-dessous. Mais avant cela, vous devez accéder au chemin du code source comme raphael-kit/python-pi5. Après avoir modifié le code, vous pouvez l’exécuter directement pour voir l’effet.
#!/usr/bin/env python3
from gpiozero import LED
from time import sleep
# Define GPIO pins where LEDs are connected
led_pins = [18, 23, 24, 25, 8, 7, 12, 16, 20, 21]
# Create LED objects for each pin
leds = [LED(pin) for pin in led_pins]
def odd_led_bar_graph():
# Sequentially light up odd-numbered LEDs (index 0, 2, 4, etc.)
for i in range(5):
j = i * 2 # Calculate odd index
leds[j].on() # Turn on odd-numbered LED
sleep(0.3) # Delay for visual effect
leds[j].off() # Turn off LED
def even_led_bar_graph():
# Sequentially light up even-numbered LEDs (index 1, 3, 5, etc.)
for i in range(5):
j = i * 2 + 1 # Calculate even index
leds[j].on() # Turn on even-numbered LED
sleep(0.3) # Delay for visual effect
leds[j].off() # Turn off LED
def all_led_bar_graph():
# Sequentially light up all LEDs one by one
for led in leds:
led.on() # Turn on LED
sleep(0.3) # Delay for visual effect
led.off() # Turn off LED
def turn_off_all_leds():
# Turn off all LEDs at once
for led in leds:
led.off()
try:
# Main loop to cycle through LED patterns
while True:
odd_led_bar_graph() # Activate odd-numbered LEDs
sleep(0.3) # Pause between patterns
even_led_bar_graph() # Activate even-numbered LEDs
sleep(0.3) # Pause between patterns
all_led_bar_graph() # Activate all LEDs
sleep(0.3) # Pause before restarting
except KeyboardInterrupt:
# Handle interruption (Ctrl+C) gracefully
turn_off_all_leds() # Ensure all LEDs are turned off on exit
pass
Explication du code
Ces lignes importent les classes et fonctions nécessaires.
LEDdegpiozeropour le contrôle des LEDs etsleepdetimepour les délais.#!/usr/bin/env python3 from gpiozero import LED from time import sleep
La liste
led_pinscontient les numéros des broches GPIO.ledsest une liste d’objetsLED, chacun correspondant à une broche dansled_pins.# Define GPIO pins where LEDs are connected led_pins = [18, 23, 24, 25, 8, 7, 12, 16, 20, 21] # Create LED objects for each pin leds = [LED(pin) for pin in led_pins]
Faire s’allumer les LEDs sur les chiffres impairs du graphique à barres LED.
def odd_led_bar_graph(): # Sequentially light up odd-numbered LEDs (index 0, 2, 4, etc.) for i in range(5): j = i * 2 # Calculate odd index leds[j].on() # Turn on odd-numbered LED sleep(0.3) # Delay for visual effect leds[j].off() # Turn off LED
Faire s’allumer les LEDs sur les chiffres pairs du graphique à barres LED.
def even_led_bar_graph(): # Sequentially light up even-numbered LEDs (index 1, 3, 5, etc.) for i in range(5): j = i * 2 + 1 # Calculate even index leds[j].on() # Turn on even-numbered LED sleep(0.3) # Delay for visual effect leds[j].off() # Turn off LED
Faire s’allumer les LEDs sur le graphique à barres LED une par une.
def all_led_bar_graph(): # Sequentially light up all LEDs one by one for led in leds: led.on() # Turn on LED sleep(0.3) # Delay for visual effect led.off() # Turn off LED
La boucle
while Truealterne en continu les motifs LED. Le blocexceptgère une interruption clavier (Ctrl+C), assurant que toutes les LEDs sont éteintes à la sortie.try: # Main loop to cycle through LED patterns while True: odd_led_bar_graph() # Activate odd-numbered LEDs sleep(0.3) # Pause between patterns even_led_bar_graph() # Activate even-numbered LEDs sleep(0.3) # Pause between patterns all_led_bar_graph() # Activate all LEDs sleep(0.3) # Pause before restarting except KeyboardInterrupt: # Handle interruption (Ctrl+C) gracefully turn_off_all_leds() # Ensure all LEDs are turned off on exit pass