.. note:: Bonjour et bienvenue dans la communauté SunFounder dédiée aux passionnés de Raspberry Pi, Arduino et ESP32 sur Facebook ! Plongez plus profondément dans l'univers de Raspberry Pi, Arduino et ESP32 avec d'autres amateurs. **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 conseils 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 nouveaux produits. - **Promotions festives et cadeaux** : Participez à des tirages au sort et à des promotions spéciales pour les fêtes. 👉 Prêt à explorer et à créer avec nous ? Cliquez sur [|link_sf_facebook|] et rejoignez-nous dès aujourd'hui ! 1.1.3 Barre de LED ====================== Introduction ----------------- Dans ce projet, nous allons allumer séquentiellement les LED de la barre de LED. Composants ------------ .. image:: img/list_led_bar.png Principe -------- **Barre de LED** La barre de LED est un tableau de LED utilisé pour se connecter à un circuit électronique ou à un microcontrôleur. Elle permet une connexion facile, similaire à celle de 10 LED individuelles connectées à 10 broches de sortie. Généralement, la barre de LED est utilisée comme indicateur de niveau de batterie, dans les équipements audio ou sur les panneaux de contrôle industriels. Il existe de nombreuses autres applications pour les barres de LED. .. image:: img/led_bar_sche.png Schéma de câblage --------------------- ============ ======== ======== === T-Board Name physical wiringPi BCM GPIO17 Pin 11 0 17 GPIO18 Pin 12 1 18 GPIO27 Pin 13 2 27 GPIO22 Pin 15 3 22 GPIO23 Pin 16 4 23 GPIO24 Pin 18 5 24 GPIO25 Pin 22 6 25 SDA1 Pin 3 8 2 SCL1 Pin 5 9 3 SPICE0 Pin 24 10 8 ============ ======== ======== === .. image:: img/schematic_led_bar.png Procédures expérimentales ----------------------------- **Étape 1** : Construisez le circuit. .. image:: img/image66.png :width: 800 **Étape 2** : Accédez au dossier du code. .. raw:: html .. code-block:: cd ~/davinci-kit-for-raspberry-pi/c/1.1.3/ **Étape 3** : Compilez le code. .. raw:: html .. code-block:: gcc 1.1.3_LedBarGraph.c -lwiringPi **Étape 4** : Exécutez le fichier exécutable. .. raw:: html .. code-block:: sudo ./a.out Après l'exécution du code, vous verrez les LED de la barre s'allumer et s'éteindre régulièrement. .. note:: Si le programme ne fonctionne pas après l'exécution, ou si un message d'erreur apparaît : « wiringPi.h: Aucun fichier ou répertoire de ce type », veuillez consulter : :ref:`faq_c_nowork`. **Code** .. code-block:: c #include #include int pins[10] = {0,1,2,3,4,5,6,8,9,10}; void oddLedBarGraph(void){ for(int i=0;i<5;i++){ int j=i*2; digitalWrite(pins[j],HIGH); delay(300); digitalWrite(pins[j],LOW); } } void evenLedBarGraph(void){ for(int i=0;i<5;i++){ int j=i*2+1; digitalWrite(pins[j],HIGH); delay(300); digitalWrite(pins[j],LOW); } } void allLedBarGraph(void){ for(int i=0;i<10;i++){ digitalWrite(pins[i],HIGH); delay(300); digitalWrite(pins[i],LOW); } } int main(void) { if(wiringPiSetup() == -1){ // lorsque l'initialisation de wiring échoue, affiche un message à l'écran printf("setup wiringPi failed !"); return 1; } for(int i=0;i<10;i++){ // configure les broches des LED en mode sortie pinMode(pins[i], OUTPUT); digitalWrite(pins[i],LOW); } while(1){ oddLedBarGraph(); delay(300); evenLedBarGraph(); delay(300); allLedBarGraph(); delay(300); } return 0; } **Explication du code** .. code-block:: c int pins[10] = {0,1,2,3,4,5,6,8,9,10}; Crée un tableau et l'associe aux numéros de broche correspondant à la barre de LED (0,1,2,3,4,5,6,8,9,10). Ce tableau sera utilisé pour contrôler les LED. .. code-block:: c void oddLedBarGraph(void){ for(int i=0;i<5;i++){ int j=i*2; digitalWrite(pins[j],HIGH); delay(300); digitalWrite(pins[j],LOW); } } Allume successivement les LED situées sur les positions impaires de la barre de LED. .. code-block:: c void evenLedBarGraph(void){ for(int i=0;i<5;i++){ int j=i*2+1; digitalWrite(pins[j],HIGH); delay(300); digitalWrite(pins[j],LOW); } } Allume successivement les LED situées sur les positions paires de la barre de LED. .. code-block:: c void allLedBarGraph(void){ for(int i=0;i<10;i++){ digitalWrite(pins[i],HIGH); delay(300); digitalWrite(pins[i],LOW); } } Allume les LED de la barre une par une.