.. 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 [|link_sf_facebook|] et rejoignez-nous aujourd'hui ! .. _1.1.2_py_pi5: 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. .. image:: ../python_pi5/img/1.1.2_rgb_led_list.png :align: center Il est très pratique d'acheter un kit complet, voici le lien : .. list-table:: :widths: 20 20 20 :header-rows: 1 * - Nom - ÉLÉMENTS DANS CE KIT - LIEN * - Kit Raphael - 337 - |link_Raphael_kit| Vous pouvez également les acheter séparément aux liens ci-dessous. .. list-table:: :widths: 30 20 :header-rows: 1 * - INTRODUCTION DES COMPOSANTS - LIEN D'ACHAT * - :ref:`cpn_gpio_extension_board` - |link_gpio_board_buy| * - :ref:`cpn_breadboard` - |link_breadboard_buy| * - :ref:`cpn_wires` - |link_wires_buy| * - :ref:`cpn_resistor` - |link_resistor_buy| * - :ref:`cpn_rgb_led` - |link_rgb_led_buy| 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 ============ ======== === .. image:: ../python_pi5/img/1.1.2_rgb_led_schematic.png Procédures expérimentales ---------------------------- **Étape 1 :** Construisez le circuit. .. image:: ../python_pi5/img/1.1.2_rgbLed_circuit.png **Étape 2 :** Ouvrez le fichier de code. .. raw:: html .. code-block:: cd ~/raphael-kit/python-pi5 **Étape 3 :** Exécutez. .. raw:: html .. code-block:: 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. .. warning:: Si vous recevez le message d'erreur ``RuntimeError: Cannot determine SOC peripheral base address``, veuillez consulter :ref:`faq_soc` **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. .. raw:: html .. code-block:: python #!/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 ``RGBLED`` de la bibliothèque ``gpiozero`` pour contrôler une LED RVB, et la bibliothèque ``time`` pour implémenter des délais dans le code. .. code-block:: python #!/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 ``COLORS`` contient 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'attribut ``rgb_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. .. code-block:: python 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. .. code-block:: python # 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 dans ``COLORS``. Pour chaque couleur, ``rgb_led.color = color`` règle la LED sur cette couleur, et ``sleep(1)`` fait une pause de 1 seconde. .. code-block:: python 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'instruction ``pass`` est 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. .. code-block:: python 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