Note
Bonjour et bienvenue dans la communauté SunFounder Raspberry Pi, Arduino & ESP32 Enthusiasts sur Facebook ! Plongez plus profondément dans le monde du Raspberry Pi, de l’Arduino et de l’ESP32 avec d’autres passionnés.
Pourquoi nous rejoindre ?
Assistance 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 perfectionner vos compétences.
Aperçus exclusifs : Accédez en avant-première aux nouvelles annonces de produits et aux avant-goûts des nouveautés.
Réductions spéciales : Profitez de réductions exclusives sur nos derniers produits.
Promotions festives et concours : Participez à des concours et à des promotions spéciales pour les fêtes.
👉 Prêt à explorer et créer avec nous ? Cliquez sur [Ici] et rejoignez-nous dès aujourd’hui !
1.3.4 Relais
Introduction
Dans ce projet, nous allons apprendre à utiliser un relais. C’est l’un des composants les plus couramment utilisés dans les systèmes de contrôle automatique. Lorsque la tension, le courant, la température, la pression, etc., atteignent, dépassent ou sont inférieurs à une valeur prédéterminée, le relais va connecter ou interrompre le circuit pour contrôler et protéger l’équipement.
Composants nécessaires
Pour ce projet, nous aurons besoin des composants suivants.
Schéma de circuit
Procédure expérimentale
Étape 1 : Construire le circuit.
Étape 2 : Ouvrir le fichier de code.
cd ~/davinci-kit-for-raspberry-pi/python-pi5
Étape 3 : Exécuter.
sudo python3 1.3.4_Relay.py
Pendant l’exécution du code, la LED s’allume. De plus, vous entendrez un bruit de « tic-tac » provoqué par l’ouverture et la fermeture des contacts du relais.
Avertissement
En cas d’erreur « RuntimeError: Cannot determine SOC peripheral base address », veuillez consulter Si gpiozero ne fonctionne pas.
Code
Note
Vous pouvez modifier/réinitialiser/copier/exécuter/arrêter le code ci-dessous. Mais avant cela, assurez-vous de vous rendre dans le répertoire source, par exemple davinci-kit-for-raspberry-pi/python-pi5. Après avoir modifié le code, vous pouvez l’exécuter directement pour observer le résultat.
#!/usr/bin/env python3
from gpiozero import OutputDevice # Importer la classe pour contrôler les broches GPIO
from time import sleep # Importer la fonction sleep pour les temporisations
# Initialiser le relais connecté à la broche GPIO 17
relais = OutputDevice(17)
try:
# Boucle pour basculer continuellement l'état du relais toutes les secondes
while True:
print('Relay open...') # Indiquer que le relais est activé
relais.on() # Allumer le relais (configuration active low présumée)
sleep(1) # Maintenir le relais en position allumée pendant 1 seconde
print('...Relay close') # Indiquer que le relais est désactivé
relais.off() # Éteindre le relais
sleep(1) # Maintenir le relais en position éteinte pendant 1 seconde
except KeyboardInterrupt:
# Gérer une interruption clavier (Ctrl+C) pour quitter la boucle
relais.off() # S'assurer que le relais est éteint avant de quitter
pass
Explication du code
Cela importe
OutputDevicede la bibliothèquegpiozeropour contrôler les broches GPIO etsleepde la bibliothèquetimepour ajouter des temporisations.#!/usr/bin/env python3 from gpiozero import OutputDevice # Importer la classe pour contrôler les broches GPIO from time import sleep # Importer la fonction sleep pour les temporisations
Initialise un objet
OutputDevicepour le relais connecté à la broche GPIO 17.# Initialiser le relais connecté à la broche GPIO 17 relais = OutputDevice(17)
À l’intérieur du bloc
try, une bouclewhile Truebascule continuellement l’état du relais. Le relais est allumé et éteint avec un délai de 1 seconde entre chaque état, accompagné de messages imprimés dans la console.try: # Boucle pour basculer continuellement l'état du relais toutes les secondes while True: print('Relay open...') # Indiquer que le relais est activé relais.on() # Allumer le relais (configuration active low présumée) sleep(1) # Maintenir le relais en position allumée pendant 1 seconde print('...Relay close') # Indiquer que le relais est désactivé relais.off() # Éteindre le relais sleep(1) # Maintenir le relais en position éteinte pendant 1 seconde
Capture une interruption clavier (comme Ctrl+C) pour permettre une terminaison propre du script. Le relais est éteint avant de quitter le script.
except KeyboardInterrupt: # Gérer une interruption clavier (Ctrl+C) pour quitter la boucle relais.off() # S'assurer que le relais est éteint avant de quitter pass