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 !
2.1.5 Interrupteur à Bascule
Introduction
Il s’agit d’un interrupteur à bascule à bille avec une bille métallique à l’intérieur. Il est utilisé pour détecter les inclinaisons de petits angles.
Composants Nécessaires
Dans ce projet, nous avons besoin des composants suivants.
Il est définitivement 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 via les liens ci-dessous.
INTRODUCTION DES COMPOSANTS |
LIEN D’ACHAT |
|---|---|
- |
Schéma de Câblage
Procédures Expérimentales
Étape 1 : Construire le circuit.
Étape 2 : Changer de répertoire.
cd ~/raphael-kit/python-pi5
Étape 3 : Exécuter.
sudo python3 2.1.5_Tilt_zero.py
Placez l’interrupteur à la verticale, et la LED verte s’allumera. Si vous l’inclinez, « Tilt! » sera affiché à l’écran et la LED rouge s’allumera. Replacez-le à la verticale, et la LED verte se rallumera.
Avertissement
Si vous recevez le message 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, vous devez aller dans le répertoire source comme raphael-kit/python-pi5. Après avoir modifié le code, vous pouvez l’exécuter directement pour voir l’effet.
#!/usr/bin/env python3
from gpiozero import LED, Button
# Initialize the Button for the tilt sensor and LEDs using GPIO Zero
TiltPin = Button(17, pull_up=False) # Tilt sensor connected to GPIO pin 17, pull-up resistor disabled
green_led = LED(27) # Green LED connected to GPIO pin 27
red_led = LED(22) # Red LED connected to GPIO pin 22
def detect():
"""
Detect the tilt sensor state and control the LEDs.
Turns on the red LED and turns off the green LED when tilted.
Turns off the red LED and turns on the green LED when not tilted.
"""
if TiltPin.is_pressed: # Check if the sensor is tilted
print(' *************')
print(' * Tilt! *')
print(' *************')
red_led.on() # Turn on red LED
green_led.off() # Turn off green LED
else: # If the sensor is not tilted
red_led.off() # Turn off red LED
green_led.on() # Turn on green LED
try:
while True:
# Continuously check the tilt sensor state and update LEDs
TiltPin.when_pressed = detect
TiltPin.when_released = detect
except KeyboardInterrupt:
# Handle KeyboardInterrupt (Ctrl+C) to exit the loop gracefully
pass
Explication du Code
Cette ligne configure le script pour s’exécuter avec Python 3 et importe les classes
LEDetButtondegpiozeropour contrôler les périphériques GPIO.#!/usr/bin/env python3 from gpiozero import LED, Button
Initialise le capteur d’inclinaison connecté à la broche GPIO 17 (avec résistance pull-up désactivée) et deux LED connectées aux broches GPIO 27 et 22.
# Initialize the Button for the tilt sensor and LEDs using GPIO Zero TiltPin = Button(17, pull_up=False) # Tilt sensor connected to GPIO pin 17, pull-up resistor disabled green_led = LED(27) # Green LED connected to GPIO pin 27 red_led = LED(22) # Red LED connected to GPIO pin 22
Définit la fonction
detect, qui vérifie l’état du capteur d’inclinaison. Si incliné, elle allume la LED rouge et éteint la LED verte. Si non incliné, elle fait l’inverse.def detect(): """ Detect the tilt sensor state and control the LEDs. Turns on the red LED and turns off the green LED when tilted. Turns off the red LED and turns on the green LED when not tilted. """ if TiltPin.is_pressed: # Check if the sensor is tilted print(' *************') print(' * Tilt! *') print(' *************') red_led.on() # Turn on red LED green_led.off() # Turn off green LED else: # If the sensor is not tilted red_led.off() # Turn off red LED green_led.on() # Turn on green LED
La boucle principale assigne la fonction
detectaux événementswhen_pressedetwhen_releaseddu capteur d’inclinaison. Le bloctry-exceptgère l’interruption du clavier pour une terminaison propre.try: while True: # Continuously check the tilt sensor state and update LEDs TiltPin.when_pressed = detect TiltPin.when_released = detect except KeyboardInterrupt: # Handle KeyboardInterrupt (Ctrl+C) to exit the loop gracefully pass