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.2 LED RVB
Introduction
Dans ce projet, nous allons contrôler une LED RVB pour afficher diverses couleurs.
Composants nécessaires
Pour ce projet, nous avons besoin des composants suivants.
Il est très pratique d’acheter un kit complet, voici le lien :
Nom |
ÉLÉMENTS 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 câblage
Après avoir connecté les broches R, G et B à une résistance de limitation de courant, connectez-les respectivement aux GPIO17, GPIO18 et GPIO27. La broche la plus longue (GND) de la LED se connecte à la masse (GND) du Raspberry Pi. Lorsque les trois broches reçoivent différentes valeurs PWM, la LED RVB affichera différentes couleurs.
Nom T-Board |
Physique |
BCM |
GPIO17 |
Pin 11 |
17 |
GPIO18 |
Pin 12 |
18 |
GPIO27 |
Pin 13 |
27 |
Procédures expérimentales
Étape 1 : Construisez le circuit.
Étape 2 : Ouvrez le fichier de code.
cd ~/raphael-kit/python-pi5
Étape 3 : Exécutez.
sudo python3 1.1.2_rgbLed_zero.py
Après l’exécution du code, vous verrez que la LED RVB affiche rouge, vert, bleu, jaune, rose et cyan.
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 aller au chemin 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 RGBLED
from time import sleep
# Define a list of colors for the RGB LED in RGB format (Red, Green, Blue).
# Each color component ranges from 0 (off) to 1 (full intensity).
COLORS = [(1, 0, 0), (0, 1, 0), (0, 0, 1), (1, 1, 0), (1, 0, 1), (0, 1, 1)]
# Initialize an RGB LED. Connect the red component to GPIO 17, green to GPIO 18, and blue to GPIO 27.
rgb_led = RGBLED(red=17, green=18, blue=27)
try:
# Continuously cycle through the defined colors.
while True:
for color in COLORS:
# Set the RGB LED to the current color.
rgb_led.color = color
# Output the current color to the console.
print(f"Color set to: {color}")
# Wait for 1 second before switching to the next color.
sleep(1)
except KeyboardInterrupt:
# Handle a KeyboardInterrupt (Ctrl+C) to exit the loop gracefully.
# GPIO cleanup will be managed automatically by GPIO Zero on script termination.
pass
Explication du code
Cette section importe la classe
RGBLEDde la bibliothèquegpiozeropour contrôler une LED RVB, et la bibliothèquetimepour implémenter des délais dans le code.#!/usr/bin/env python3 from gpiozero import RGBLED from time import sleep # Define a list of colors for the RGB LED in RGB format (Red, Green, Blue). # Each color component ranges from 0 (off) to 1 (full intensity).
La liste
COLORScontient des tuples représentant différentes couleurs au format RVB. En attribuant différentes valeurs de modulation de largeur d’impulsion (PWM) à chacune des broches R, G et B via l’attributrgb_led.color, la LED peut produire une variété de couleurs. Les valeurs PWM varient de 0 à 1, où 0 représente aucune intensité (éteint) et 1 représente une intensité maximale pour chaque composant de couleur.Par exemple, régler
rgb_led.color = (1, 0, 0)rend la LED rouge, car cela met l’intensité maximale pour le composant rouge tout en éteignant les composants vert et bleu. De même, des combinaisons variées de ces valeurs produisent différentes couleurs. Cette technique de mélange des couleurs par PWM permet de créer une large gamme de couleurs sur la LED RVB.COLORS = [(1, 0, 0), (0, 1, 0), (0, 0, 1), (1, 1, 0), (1, 0, 1), (0, 1, 1)]
Une LED RVB est initialisée avec ses composants rouge, vert et bleu connectés respectivement aux broches GPIO 17, 18 et 27.
# Initialize an RGB LED. Connect the red component to GPIO 17, green to GPIO 18, and blue to GPIO 27. rgb_led = RGBLED(red=17, green=18, blue=27)
La boucle
while True:parcourt en continu les couleurs définies dansCOLORS. Pour chaque couleur,rgb_led.color = colorrègle la LED sur cette couleur, etsleep(1)fait une pause de 1 seconde.try: # Continuously cycle through the defined colors. while True: for color in COLORS: # Set the RGB LED to the current color. rgb_led.color = color # Output the current color to the console. print(f"Color set to: {color}") # Wait for 1 second before switching to the next color. sleep(1)
Cette section gère proprement une
KeyboardInterrupt(comme appuyer sur Ctrl+C). L’instructionpassest utilisée comme un espace réservé pour indiquer qu’aucune action spécifique n’est entreprise lors de l’interruption, car GPIO Zero gère automatiquement le nettoyage des GPIO.except KeyboardInterrupt: # Handle a KeyboardInterrupt (Ctrl+C) to exit the loop gracefully. # GPIO cleanup will be managed automatically by GPIO Zero on script termination. pass