Note

Bonjour et bienvenue dans la communauté SunFounder pour les passionnés de Raspberry Pi, Arduino et ESP32 sur Facebook ! Plongez au cœur de l’univers 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 grâce à 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 nouvelles annonces de produits et aux aperçus.

  • Réductions exclusives : Bénéficiez de réductions exclusives sur nos nouveaux produits.

  • Promotions festives et cadeaux : Participez à des promotions de vacances et des tirages au sort.

👉 Prêt à explorer et créer avec nous ? Cliquez sur [Ici] et rejoignez-nous dès aujourd’hui !

1.1.3 Graphique à barres LED

Introduction

Dans ce projet, nous allumerons séquentiellement les lumières du graphique à barres LED.

Composants

_images/list_led_bar.png

Principe

Graphique à barres LED

Le graphique à barres LED est un tableau de LED utilisé pour se connecter à un circuit électronique ou un microcontrôleur. Il est facile de connecter un graphique à barres LED à un circuit, tout comme la connexion de 10 LED individuelles à 10 broches de sortie. Généralement, nous utilisons le graphique à barres LED comme indicateur de niveau de batterie, dans les équipements audio ou les panneaux de contrôle industriels. Il existe de nombreuses autres applications pour les graphiques à barres LED.

_images/led_bar_sche.png

Schéma du circuit

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

_images/schematic_led_bar.png

Procédures expérimentales

Étape 1 : Construire le circuit.

_images/image66.png

Pour les utilisateurs du langage C

Étape 2 : Accédez au dossier du code.

cd ~/davinci-kit-for-raspberry-pi/c/1.1.3/

Étape 3 : Compiler le code.

gcc 1.1.3_LedBarGraph.c -lwiringPi

Étape 4 : Exécuter le fichier exécutable.

sudo ./a.out

Après l’exécution du code, vous verrez les LED du graphique à barres s’allumer et s’éteindre régulièrement.

Note

Si cela ne fonctionne pas après l’exécution ou s’il y a un message d’erreur tel que : « wiringPi.h: No such file or directory », veuillez vous référer à Le code C ne fonctionne pas ?.

Code

#include <wiringPi.h>
#include <stdio.h>

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){ // Si l'initialisation de wiring échoue, afficher un message à l'écran
        printf("setup wiringPi failed !");
        return 1;
    }
    for(int i=0;i<10;i++){       // Configurer les broches 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

int pins[10] = {0,1,2,3,4,5,6,8,9,10};

Créer un tableau et lui attribuer les numéros de broches correspondant au graphique à barres LED (0,1,2,3,4,5,6,8,9,10), ce tableau sera utilisé pour contrôler les LED.

void oddLedBarGraph(void){
    for(int i=0;i<5;i++){
        int j=i*2;
        digitalWrite(pins[j],HIGH);
        delay(300);
        digitalWrite(pins[j],LOW);
    }
}

Faire en sorte que les LED sur les positions impaires du graphique à barres LED s’allument successivement.

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);
    }
}

Faire en sorte que les LED sur les positions paires du graphique à barres LED s’allument successivement.

void allLedBarGraph(void){
    for(int i=0;i<10;i++){
        digitalWrite(pins[i],HIGH);
        delay(300);
        digitalWrite(pins[i],LOW);
    }
}

Faire en sorte que toutes les LED du graphique à barres LED s’allument une à une.

Pour les utilisateurs du langage Python

Étape 2 : Accéder au dossier du code.

cd ~/davinci-kit-for-raspberry-pi/python/

Étape 3 : Exécuter le fichier exécutable.

sudo python3 1.1.3_LedBarGraph.py

Après l’exécution du code, vous verrez les LED du graphique à barres s’allumer et s’éteindre régulièrement.

Code

Note

Vous pouvez Modifier/Réinitialiser/Copier/Exécuter/Arrêter le code ci-dessous. Mais avant cela, vous devez vous rendre dans le chemin du code source comme davinci-kit-for-raspberry-pi/python.

import RPi.GPIO as GPIO
import time

ledPins = [11, 12, 13, 15, 16, 18, 22, 3, 5, 24]

def oddLedBarGraph():
    for i in range(5):
        j = i*2
        GPIO.output(ledPins[j],GPIO.HIGH)
        time.sleep(0.3)
        GPIO.output(ledPins[j],GPIO.LOW)

def evenLedBarGraph():
    for i in range(5):
        j = i*2+1
        GPIO.output(ledPins[j],GPIO.HIGH)
        time.sleep(0.3)
        GPIO.output(ledPins[j],GPIO.LOW)

def allLedBarGraph():
    for i in ledPins:
        GPIO.output(i,GPIO.HIGH)
        time.sleep(0.3)
        GPIO.output(i,GPIO.LOW)

def setup():
    GPIO.setwarnings(False)
    GPIO.setmode(GPIO.BOARD)        # Numérotation des GPIO par emplacement physique
    for i in ledPins:
        GPIO.setup(i, GPIO.OUT)   # Configurer toutes les broches ledPins en sortie
        GPIO.output(i, GPIO.LOW) # Éteindre toutes les LED

def loop():
    while True:
        oddLedBarGraph()
        time.sleep(0.3)
        evenLedBarGraph()
        time.sleep(0.3)
        allLedBarGraph()
        time.sleep(0.3)

def destroy():
    for pin in ledPins:
        GPIO.output(pin, GPIO.LOW)    # Éteindre toutes les LED
    GPIO.cleanup()                     # Libérer les ressources

if __name__ == '__main__':     # Le programme commence ici
    setup()
    try:
        loop()
    except KeyboardInterrupt:  # Lorsque 'Ctrl+C' est pressé, la fonction destroy() sera exécutée.
        destroy()

Explication du code

ledPins = [11, 12, 13, 15, 16, 18, 22, 3, 5, 24] Créer un tableau et lui attribuer les numéros de broches correspondant au graphique à barres LED (11, 12, 13, 15, 16, 18, 22, 3, 5, 24), ce tableau sera utilisé pour contrôler les LED.

def oddLedBarGraph():
    for i in range(5):
        j = i*2
        GPIO.output(ledPins[j],GPIO.HIGH)
        time.sleep(0.3)
        GPIO.output(ledPins[j],GPIO.LOW)

Faire en sorte que les LED sur les positions impaires du graphique à barres LED s’allument successivement.

def evenLedBarGraph():
    for i in range(5):
        j = i*2+1
        GPIO.output(ledPins[j],GPIO.HIGH)
        time.sleep(0.3)
        GPIO.output(ledPins[j],GPIO.LOW)

Faire en sorte que les LED sur les positions paires du graphique à barres LED s’allument successivement.

def allLedBarGraph():
    for i in ledPins:
        GPIO.output(i,GPIO.HIGH)
        time.sleep(0.3)
        GPIO.output(i,GPIO.LOW)

Faire en sorte que toutes les LED du graphique à barres LED s’allument une à une.

Image du phénomène

_images/image67.jpeg