.. 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.