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 à Inclinaison
Introduction
Il s’agit d’un interrupteur à inclinaison avec une bille en métal à l’intérieur. Il est utilisé pour détecter des inclinaisons de petits angles.
Composants Requis
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 à partir des liens ci-dessous.
INTRODUCTION DES COMPOSANTS |
LIEN D’ACHAT |
|---|---|
- |
Schéma de Connexion
Procédures Expérimentales
Étape 1 : Construisez le circuit.
Étape 2 : Changez de répertoire.
cd ~/raphael-kit/python/
Étape 3 : Exécutez.
sudo python3 2.1.5_Tilt.py
Placez l’interrupteur à inclinaison verticalement, et la LED verte s’allumera. Si vous l’inclinez, « Tilt! » sera affiché à l’écran et la LED rouge s’allumera. Replacez-le verticalement, et la LED verte se rallumera.
Code
Note
Vous pouvez Modifier/Réinitialiser/Copier/Exécuter/Arrêter le code ci-dessous. Mais avant
cela, vous devez aller au chemin du code source comme raphael-kit/python. Après avoir
modifié le code, vous pouvez l’exécuter directement pour voir l’effet.
import RPi.GPIO as GPIO
TiltPin = 17
Gpin = 27
Rpin = 22
def setup():
GPIO.setmode(GPIO.BCM) # Numbers GPIOs by physical location
GPIO.setup(Gpin, GPIO.OUT) # Set Green Led Pin mode to output
GPIO.setup(Rpin, GPIO.OUT) # Set Red Led Pin mode to output
GPIO.setup(TiltPin, GPIO.IN, pull_up_down=GPIO.PUD_UP) # Set BtnPin's mode is input, and pull up to high level(3.3V)
GPIO.add_event_detect(TiltPin, GPIO.BOTH, callback=detect, bouncetime=200)
def Led(x):
if x == 0:
GPIO.output(Rpin, 1)
GPIO.output(Gpin, 0)
if x == 1:
GPIO.output(Rpin, 0)
GPIO.output(Gpin, 1)
def Print(x):
if x == 0:
print (' *************')
print (' * Tilt! *')
print (' *************')
def detect(chn):
Led(GPIO.input(TiltPin))
Print(GPIO.input(TiltPin))
def loop():
while True:
pass
def destroy():
GPIO.output(Gpin, GPIO.HIGH) # Green led off
GPIO.output(Rpin, GPIO.HIGH) # Red led off
GPIO.cleanup() # Release resource
if __name__ == '__main__': # Program start from here
setup()
try:
loop()
except KeyboardInterrupt: # When 'Ctrl+C' is pressed, the program destroy() will be executed.
destroy()
Explication du Code
GPIO.add_event_detect(TiltPin, GPIO.BOTH, callback=detect, bouncetime=200)
Configurer une détection sur TiltPin, et une fonction de rappel pour détecter les changements.
def Led(x):
if x == 0:
GPIO.output(Rpin, 1)
GPIO.output(Gpin, 0)
if x == 1:
GPIO.output(Rpin, 0)
GPIO.output(Gpin, 1)
Définir une fonction Led() pour allumer ou éteindre les deux LEDs. Si x=0, la LED rouge s’allume ; sinon, la LED verte sera allumée.
def Print(x):
if x == 0:
print (' *************')
print (' * Tilt! *')
print (' *************')
Créer une fonction Print() pour afficher les caractères ci-dessus à l’écran.
def detect(chn):
Led(GPIO.input(TiltPin))
Print(GPIO.input(TiltPin))
Définir une fonction de rappel pour le basculement. Obtenir la valeur lue de l’interrupteur à inclinaison puis la fonction Led() contrôle l’allumage ou l’extinction des deux LEDs en fonction de la valeur lue de l’interrupteur à inclinaison.
Image du Phénomène