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 [Ici] et rejoignez-nous aujourd’hui !
1.1.1 LED Clignotante
Introduction
Dans ce projet, nous apprendrons comment créer une LED clignotante par programmation. Grâce à vos réglages, votre LED peut produire une série de phénomènes intéressants. Maintenant, allons-y.
Composants Nécessaires
Dans ce projet, nous avons besoin des composants suivants.
Il est certainement pratique d’acheter un kit complet, voici le lien :
Nom |
ARTICLES DANS CE KIT |
LIEN |
|---|---|---|
Kit Raphael |
337 |
Vous pouvez également les acheter séparément aux liens ci-dessous.
INTRODUCTION DES COMPOSANTS |
LIEN D’ACHAT |
|---|---|
Schéma de Circuit
Dans cette expérience, connectez une résistance de 220Ω à l’anode (la patte longue de la LED), puis la résistance à 3,3 V, et connectez la cathode (la patte courte) de la LED à GPIO17 du Raspberry Pi. Par conséquent, pour allumer une LED, nous devons mettre GPIO17 au niveau bas (0V). Nous pouvons obtenir ce phénomène par programmation.
Note
Pin11 fait référence à la 11e broche du Raspberry Pi de gauche à droite, et ses numéros de broche correspondants wiringPi et BCM sont indiqués dans le tableau suivant.
Dans le contenu lié au langage C, nous faisons en sorte que GPIO0 soit équivalent à 0 dans wiringPi. Dans le contenu lié au langage Python, BCM 17 est 17 dans la colonne BCM du tableau suivant. En même temps, ils sont les mêmes que la 11e broche sur le Raspberry Pi, Pin 11.
Nom T-Board |
physique |
wiringPi |
BCM |
GPIO17 |
Pin 11 |
0 |
17 |
Procédures Expérimentales
Étape 1 : Construisez le circuit.
Étape 2 : Allez dans le dossier du code et exécutez-le.
Si vous utilisez un écran, il est recommandé de suivre les étapes suivantes.
Trouvez 1.1.1_BlinkingLed.py et double-cliquez dessus pour l’ouvrir. Vous êtes maintenant dans le fichier.
Cliquez sur Run ->Run Module dans la fenêtre et les contenus suivants apparaîtront.
Pour arrêter l’exécution, cliquez simplement sur le bouton X en haut à droite pour le fermer et vous reviendrez au code. Si vous modifiez le code, avant de cliquer sur Run Module (F5), vous devez d’abord le sauvegarder. Ensuite, vous pouvez voir les résultats.
Si vous vous connectez au Raspberry Pi à distance, tapez la commande suivante :
cd ~/raphael-kit/python
Note
Changez de répertoire vers le chemin du code dans cette expérience via cd.
Étape 3 : Exécutez le code
sudo python3 1.1.1_BlinkingLed.py
Note
Ici sudo - superuser do, et python signifie exécuter le fichier avec Python.
Après l’exécution du code, vous verrez la LED clignoter.
Étape 4 : Si vous souhaitez modifier le fichier de code 1.1.1_BlinkingLed.py,
appuyez sur Ctrl + C pour arrêter l’exécution du code. Puis tapez la commande
suivante pour ouvrir 1.1.1_BlinkingLed.py :
nano 1.1.1_BlinkingLed.py
Note
nano est un outil d’édition de texte. La commande est utilisée pour ouvrir le fichier de code 1.1.1_BlinkingLed.py avec cet outil.
Appuyez sur Ctrl+X pour quitter. Si vous avez modifié le code, une invite vous demandera
si vous souhaitez enregistrer les modifications ou non. Tapez Y (enregistrer) ou N
(ne pas enregistrer).
Puis appuyez sur Enter pour quitter. Tapez à nouveau nano 1.1.1_BlinkingLed.py
pour voir l’effet après la modification.
Code
Le programme suivant est le 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 raphael-kit/python. Après avoir modifié le code, vous pouvez l’exécuter directement pour voir l’effet.
#!/usr/bin/env python3
import RPi.GPIO as GPIO
import time
LedPin = 17
def setup():
# Set the GPIO modes to BCM Numbering
GPIO.setmode(GPIO.BCM)
# Set LedPin's mode to output,and initial level to High(3.3v)
GPIO.setup(LedPin, GPIO.OUT, initial=GPIO.HIGH)
# Define a main function for main process
def main():
while True:
print ('...LED ON')
# Turn on LED
GPIO.output(LedPin, GPIO.LOW)
time.sleep(0.5)
print ('LED OFF...')
# Turn off LED
GPIO.output(LedPin, GPIO.HIGH)
time.sleep(0.5)
# Define a destroy function for clean up everything after the script finished
def destroy():
# Turn off LED
GPIO.output(LedPin, GPIO.HIGH)
# Release resource
GPIO.cleanup()
# If run this script directly, do:
if __name__ == '__main__':
setup()
try:
main()
# When 'Ctrl+C' is pressed, the program destroy() will be executed.
except KeyboardInterrupt:
destroy()
Explication du code
#!/usr/bin/env python3
Lorsque le système détecte cela, il recherchera le chemin d’installation de python dans le
paramètre env, puis appellera l’interpréteur correspondant pour compléter l’opération. Cela
permet d’éviter que l’utilisateur n’installe pas python dans le chemin par défaut /usr/bin.
import RPi.GPIO as GPIO
De cette façon, importez la bibliothèque RPi.GPIO, puis définissez une variable, GPIO, pour remplacer RPI.GPIO dans le code suivant.
import time
Importez le package time, pour la fonction de délai temporel dans le programme suivant.
LedPin = 17
La LED est connectée au GPIO17 de la carte d’extension en forme de T, c’est-à-dire, BCM 17.
def setup():
GPIO.setmode(GPIO.BCM)
GPIO.setup(LedPin, GPIO.OUT, initial=GPIO.HIGH)
Définir le mode de LedPin en sortie, et le niveau initial à High (3,3v).
Il existe deux façons de numéroter les broches IO sur un Raspberry Pi avec RPi.GPIO : les numéros BOARD et les numéros BCM. Dans nos projets, nous utilisons les numéros BCM. Vous devez configurer chaque canal que vous utilisez comme entrée ou sortie.
GPIO.output(LedPin, GPIO.LOW)
Définir GPIO17 (BCM17) à 0V (niveau bas). Puisque la cathode de la LED est connectée à GPIO17, la LED s’allumera.
time.sleep(0.5)
Délai de 0,5 seconde. Ici, l’instruction est une fonction de délai en langage C, l’unité est la seconde.
def destroy():
GPIO.cleanup()
Définir une fonction destroy pour nettoyer tout après la fin du script.
if __name__ == '__main__':
setup()
try:
main()
# When 'Ctrl+C' is pressed, the program destroy() will be executed.
except KeyboardInterrupt:
destroy()
C’est la structure générale de l’exécution du code. Lorsque le programme commence à s’exécuter,
il initialise la broche en exécutant setup(), puis exécute le code dans la fonction main() pour
définir la broche en niveaux haut et bas. Lorsque Ctrl+C est pressé, la fonction destroy()
sera exécutée.
Image du phénomène