Comment faire clignoter des LED avec le Raspberry Pi

Image en vedette de Raspberry Pi Led

Le Raspberry Pi est plus qu’un simple petit ordinateur. C’est une carte puissante qui vous permet de faire tant de choses avec ses broches GPIO. Ici, nous vous montrons comment faire clignoter des LED avec le Raspberry Pi.

Table des matières

  • Qu’est-ce qui fait clignoter les LED ?
  • Ce dont vous avez besoin
  • Comment faire clignoter des LED
  • Comment fonctionne le code
  • Faisons clignoter plus de LED !
  • Questions fréquentes

À lire aussi : Comment contrôler votre Raspberry Pi via Windows via SSH

Qu’est-ce qui fait clignoter les LED ?

Lorsque vous regardez la partie supérieure de votre Raspberry Pi, vous trouverez environ 40 broches métalliques dépassant de la carte de circuit. Si vous avez un Raspberry Zero, il y a probablement des trous circulaires pour souder des broches de connecteur. Dans tous les cas, elles sont appelées broches GPIO (General Purpose Input / Output).

Broches GPIO Raspberry Pi

Chaque broche GPIO est conçue pour avoir l’un des deux modes à tout moment : un HAUT et un BAS. Pour les spécifications de brochage du Raspberry Pi, une broche chargée à 3,3 V compte comme un HAUT ou un “1 logique”, tandis que tout ce qui est en dessous d’environ 2,5 V compte comme un BAS ou “0 logique”. Une carte qui est basée sur 3,3 V pour les sorties hautes et basses est dite être sur “logique 3,3 V”.

Lorsque vous connectez une LED entre une broche sur HAUT et une broche GND, vous créez essentiellement un circuit complet. La LED devrait s’allumer à cause de l’électricité qui passe.

Schéma de circuit LED Lt Spice

Parfois, vos LED peuvent fumer lorsqu’il y a trop de courant qui les traverse. Pour éviter cela, vous pouvez ajouter une résistance. Peu importe qu’elle soit du côté de l’anode ou de la cathode - l’un ou l’autre côté devrait réduire le courant qui passe.

À lire aussi : Comment programmer un Arduino avec un Raspberry Pi

GPIO et autres broches

Soyons clairs ici, car toutes ces broches métalliques ne sont pas considérées comme GPIO. Elles ne sont GPIO que si elles peuvent être programmées pour avoir un haut ou un bas - d’où le terme “Entrée / Sortie”. Pour le Raspberry Pi, il y a aussi des broches conçues pour l’alimentation (3,3 V, 5 V et GND) et pour travailler avec l’EEPROM (ID_SD et ID_SC).

Cette fois, vous n’aurez pas besoin de penser à toutes ces autres broches sauf GND et une broche GPIO.

Programmation des broches GPIO

Comment dire à chaque broche GPIO quoi faire ? Au niveau le plus basique, vous devrez créer des commandes en code machine. Cela va être un peu trop difficile pour les débutants.

Au lieu de cela, pour le Raspberry Pi, vous pouvez utiliser Python ou C++, qui est ensuite compilé en code machine.

Pour ce projet particulier, nous utilisons Python, car il est plus facile à utiliser.

À lire aussi : Comment installer Windows 11 sur un Raspberry Pi 4

Ce dont vous avez besoin

  • Tout modèle de Raspberry Pi qui n’est pas le Pico (de préférence le Raspberry Pi 3 Model B+ comme celui dans cet exemple, mais n’importe quel modèle fonctionne), installé avec le système d’exploitation Raspberry Pi.
  • Un moniteur HDMI et un câble
  • Une souris et un clavier
  • Un chargeur de téléphone (pour alimenter le Raspberry Pi)
  • Une petite LED
  • Une résistance de 250Ω (peut être n’importe quelle valeur proche de cela)
  • Une plaque de prototypage sans soudure
  • x2 fils de connexion mâle-femelle (ou mâle-mâle si vous avez un chapeau de connecteur)

Comment faire clignoter des LED

Prenons cela étape par étape et faisons clignoter une LED toute seule.

  1. Ouvrez votre terminal et tapez sudo apt-get install python3-rpi.gpio pour installer le module RPi.GPIO pour Python 3.

Terminal Installer Python Gpio

  1. Ouvrez un éditeur de texte et tapez ce code :
import RPI.GPIO as GPIO  
from time import sleep  
  
GPIO.setwarnings(False)  
GPIO.setmode(GPIO.BOARD)  
GPIO.setup(7, GPIO.OUT, initial=GPIO.LOW)  
  
while True:  
        GPIO.output(7, GPIO.HIGH)  
print("LED allumée")  
        sleep(1)  
        GPIO.output(7, GPIO.LOW)  
print("LED éteinte")  
        sleep(1)
  1. Enregistrez-le dans un dossier quelque part. Le nom de l’extension doit être .py. Sur mon Raspberry Pi, je l’ai nommé “rpi-blink.py” pour le retrouver plus facilement.

Explorateur de fichiers Dossier Rpi Blink

  1. Éteignez votre Raspberry Pi et retirez-le de toutes les sources d’alimentation.
  2. Pour commencer à construire le circuit, connectez votre LED de sorte qu’il y ait une résistance soit sur la cathode soit sur l’anode, puis pointez le côté cathode vers la broche 7 et le côté anode vers la broche 9 (GND).

Schéma de circuit LED Lt Spice X1

Astuce : pour déterminer le numéro de broche, tenez votre Raspberry Pi de manière à ce que les broches GPIO soient à droite. La broche en haut à gauche est la broche 1, en haut à droite est la broche 2. Celle en dessous de la broche 1 est la broche 3, puis à droite de celle-ci est la broche 4, et ainsi de suite.

  1. Rallumez-le pour que nous puissions exécuter le script Python. Ouvrez votre terminal et utilisez cd pour vous déplacer dans le dossier du fichier Python. Tapez :
python3 rpi-blink.py

pour faire clignoter la LED.

Terminal Exécuter Rpi Blink X1

Alternative : si vous avez l’IDE Thonny Python, cliquez sur le bouton “Exécuter le script actuel” pour l’exécuter directement depuis l’IDE.

Bouton Exécuter Thonny Python Ide

  1. Pour l’arrêter, appuyez sur Ctrl + C dans le terminal. Mais si vous utilisez l’IDE Thonny Python, fermez simplement l’éditeur.

LED clignotante Raspberry Pi X1

À lire aussi : 10 lignes de code Python utiles que vous devez connaître

Comment fonctionne le code

Il y a deux choses qui le font fonctionner : le code et le circuit. Nous commençons par le code et le découpons en trois parties :

  1. Commandes d’importation
  2. Commandes de configuration
  3. Commandes en boucle

En pratique, il est bon de penser au code comme à de petites fonctions regroupées pour créer de plus grandes fonctions.

Commandes d’importation

Python ne rend normalement pas aussi facile la programmation des broches GPIO. Il se passe beaucoup de choses en coulisses. La bonne nouvelle est que vous pouvez importer le code qui gère toutes ces choses ennuyeuses.

Regardez les lignes 1 et 2 :

import RPI.GPIO as GPIO  
from time import sleep

Ce sont une paire de lignes qui importent du code d’un module Python appelé “module”.

import RPI.GPIO as GPIO vous permet d’importer le contenu du module RPI.GPIO et vous permet d’utiliser le mot-clé GPIO pour appeler une fonction liée à RPI.GPIO.

D’autre part, from time import sleep vous permet d’importer la fonction sleep() du module temps intégré de Python. Cela vous permet de retarder la ligne de code suivante pendant un certain nombre de secondes.

Commandes de configuration

Certaines commandes doivent être “configurées” ou définies de manière à ce qu’elles soient utilisées par d’autres commandes pour effectuer une logique complexe. Nous appellerons ces commandes de configuration.

Contrairement aux commandes d’importation, les commandes de configuration n’importent pas de code de modules externes. Elles les importent des modules que vous avez déjà importés.

Par exemple, GPIO.setwarnings(False) importe la fonction .setwarnings() du module RPI.GPIO, qui a été précédemment défini comme GPIO. Cette fonction arrête un avertissement de déclenchement lorsque vous exécutez le code. Il est défini sur True par défaut.

Pour expliquer les deux autres, nous continuons avec GPIO.setmode(GPIO.BOARD). Cela indique à RPI.GPIO quel type de brochage vous allez utiliser. Il existe deux types : BOARD et BCM. Le brochage BOARD vous permet de choisir des broches en fonction de leurs numéros. Pendant ce temps, le brochage BCM se base sur leur désignation de canal SOC Broadcom. Pour faire court, BOARD est plus facile à utiliser car il est toujours le même peu importe le modèle de Raspberry Pi que vous utilisez. BCM, en revanche, a tendance à être différent d’un modèle à l’autre.

Enfin, nous avons GPIO.setup(7, GPIO.OUT, initial=GPIO.LOW) qui utilise la fonction .setup(), qui vous demande trois choses : le numéro de broche, sa désignation et sa valeur initiale. Le numéro de broche que nous utilisons ici est le numéro de broche 7. Nous sommes censés le définir comme une broche de sortie et nous assurer qu’elle commence comme LOW. Sans cela, le Raspberry Pi ne saura jamais quoi faire avec la broche 7.

Commandes en boucle

C’est la partie cool. Les commandes en boucle vous permettent de dire au Raspberry Pi de faire des choses. Nous avons commencé cette boucle avec while True:, qui boucle les lignes de code suivantes indéfiniment.

Il y avait trois fonctions dans la boucle : GPIO.output(), print() et sleep().

  • GPIO.output() prend une broche de sortie et la définit soit sur HIGH soit sur LOW. Si vous pensiez à changer la broche à utiliser sur votre Raspberry Pi, vous devriez remplacer 7 par un numéro de broche de votre choix.
  • print() fait imprimer quelque chose sur la console. Il prend une chaîne, un nombre ou une variable qui contient les deux précédents.
  • sleep() met en pause tout le programme pendant un certain nombre de secondes. Utilisez un nombre inférieur à 1 pour le faire pauser pendant moins d’une seconde.

Le circuit

Maintenant que vous savez comment le code fonctionne, examinons le circuit. Le code crée un circuit en connectant la broche 7 à GND. Lorsque la broche 7 est sur HIGH, elle émet 3,3 V qui passe à travers la résistance et la LED, puis entre dans GND. Cela devient un circuit complet et c’est pourquoi la LED s’allume.

Schéma de circuit Raspberry Pi Broche 7 On et Off

Mais que se passe-t-il lorsque la broche 7 est sur bas ? Les 3,3 V descendent à environ 0 V. De cette façon, aucune électricité ne passe à travers la LED, donc elle ne s’allume pas. Vous pouvez penser à la broche 7 comme une sorte d’interrupteur, car elle allume ou éteint le circuit.

Faisons clignoter plus de LED !

Maintenant que vous savez ce qui fait fonctionner les choses, modifions un peu notre code pour faire fonctionner deux LED.

Pour cela, vous aurez juste besoin d’ajouter deux autres LED de n’importe quelle couleur et deux autres résistances de 250Ω.

  1. Ouvrez à nouveau votre éditeur de code et collez ce code :
import RPI.GPIO as GPIO  
from time import sleep  
  
GPIO.setwarnings(False)  
GPIO.setmode(GPIO.BOARD)  
GPIO.setup(7, GPIO.OUT, initial=GPIO.LOW)  
GPIO.setup(12, GPIO.OUT, initial=GPIO.HIGH)  
GPIO.setup(37, GPIO.OUT, initial=GPIO.LOW)  
  
while True:  
        GPIO.output(7, GPIO.HIGH)  
        GPIO.output(12, GPIO.LOW)  
print("LED allumée @ broche 7")  
print("LED éteinte @ broche 12")  
sleep(1)  
        GPIO.output(7, GPIO.LOW)  
        GPIO.output(12, GPIO.HIGH)  
print("LED éteinte @ broche 7")  
print("LED allumée @ broche 12")  
sleep(1)  
if x == 1:  
                GPIO.output(37, GPIO.HIGH)  
print("LED allumée @ broche 37")  
                x = 0  
elif x == 0:  
                GPIO.output(37, GPIO.LOW)  
print("LED éteinte @ broche 37")  
                x = 1  
else:  
print("Erreur logique")  
sleep(1)
  1. Enregistrez puis éteignez votre Raspberry Pi.
  2. Pour câbler le circuit, pour chaque LED que vous avez, connectez-la à une résistance en série, puis connectez le côté cathode au Raspberry Pi. Il devrait y en avoir une pour la broche 7, une autre pour la broche 12, et la dernière pour la broche 37. Le côté anode doit être connecté à GND. Chacune de ces broches a une broche GND à côté d’elles. Ce devraient être les broches 9, 20 et 39.

Schéma de circuit LED X3 Lt Spice

Astuce : si vous manquez de fils de connexion mâle-femelle, vous pouvez utiliser un fil mâle-mâle avec un fil femelle-femelle pour former un fil mâle-femelle plus long.

Broches de connexion

  1. Une fois que vous avez terminé, allumez le Raspberry Pi et répétez l’étape 6 pour lancer le script Python.

LED clignotante Raspberry Pi X3

À lire aussi : Comment utiliser Python pour des tâches de base d’administration système Linux et de mise en réseau

Questions fréquentes

Pourquoi ma LED reste-t-elle allumée lorsque j’arrête le script ?

Lorsque le Raspberry Pi lit le script Python, il lit la ligne avant d’exécuter la commande. Vous l’avez probablement arrêté juste après qu’il ait lu la ligne GPIO.output(7, GPIO.HIGH), donc il n’a pas pu ramener la broche à LOW en premier. Vous pouvez le laisser tel quel, car il reviendra à LOW la prochaine fois que vous redémarrerez. Alternativement, créez un autre script Python qui met la broche à LOW dès qu’il s’exécute.

J’ai placé ma LED sur la bonne broche, mais elle ne s’allume pas du tout. Pourquoi ?

Il y a deux raisons possibles : soit votre LED est cassée, soit vous avez mis la cathode du mauvais côté. Essayez d’abord de retourner les broches de la LED.

Est-il sûr de placer la LED à l’envers ?

Oui. Vous pouvez la placer à l’envers, et le courant ne passera tout simplement pas. C’est une caractéristique spéciale des diodes - même des diodes électroluminescentes - elles permettent à l’électricité de passer d’un côté et pas de l’autre.

Est-il sûr de repositionner la LED pendant que le Raspberry Pi est sous tension ?

Si vous ne faites que tourner la LED à l’envers, alors ça va, et il n’y a pas de mal. Mais si vous allez placer la LED partout, il y a un risque que vous court-circuitiez la broche 5V à une broche GPIO. Cela va casser votre carte.