Bemerkung
Hallo und willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasten-Gemeinschaft auf Facebook! Tauchen Sie tiefer ein in die Welt von Raspberry Pi, Arduino und ESP32 mit anderen Enthusiasten.
Warum beitreten?
Expertenunterstützung: Lösen Sie Nachverkaufsprobleme und technische Herausforderungen mit Hilfe unserer Gemeinschaft und unseres Teams.
Lernen & Teilen: Tauschen Sie Tipps und Anleitungen aus, um Ihre Fähigkeiten zu verbessern.
Exklusive Vorschauen: Erhalten Sie frühzeitigen Zugang zu neuen Produktankündigungen und exklusiven Einblicken.
Spezialrabatte: Genießen Sie exklusive Rabatte auf unsere neuesten Produkte.
Festliche Aktionen und Gewinnspiele: Nehmen Sie an Gewinnspielen und Feiertagsaktionen teil.
👉 Sind Sie bereit, mit uns zu erkunden und zu erschaffen? Klicken Sie auf [hier] und treten Sie heute bei!
2.2.4 Reed-Schalter-Modul
Einführung
In diesem Projekt werden wir den Reed-Schalter kennenlernen, ein elektrischer Schalter, der mithilfe eines angelegten Magnetfelds funktioniert.
Benötigte Komponenten
Für dieses Projekt benötigen wir folgende Komponenten.
Es ist sicherlich bequem, ein ganzes Set zu kaufen, hier ist der Link:
Name |
ARTIKEL IN DIESEM KIT |
LINK |
|---|---|---|
Raphael Kit |
337 |
Sie können sie auch einzeln über die untenstehenden Links kaufen.
KOMPONENTENBESCHREIBUNG |
KAUF-LINK |
|---|---|
Schaltplan
T-Board Name |
physical |
wiringPi |
BCM |
GPIO17 |
Pin 11 |
0 |
17 |
GPIO27 |
Pin 13 |
2 |
27 |
GPIO22 |
Pin 15 |
3 |
22 |
Experimentelle Verfahren
Schritt 1: Schalten Sie den Stromkreis.
Schritt 2: Wechseln Sie das Verzeichnis.
cd ~/raphael-kit/python/
Schritt 3: Starten.
sudo python3 2.2.4_ReedSwitch.py
Die grüne LED leuchtet beim Ausführen des Codes. Wenn ein Magnet in die Nähe des Reed-Schalter-Moduls gebracht wird, leuchtet die rote LED auf; entfernen Sie den Magneten und die grüne LED leuchtet erneut auf.
Code
Bemerkung
Sie können den untenstehenden Code Ändern/Zurücksetzen/Kopieren/Ausführen/Stoppen. Aber davor müssen Sie zum Quellcode-Pfad wie raphael-kit/python navigieren. Nach dem Ändern des Codes können Sie ihn direkt ausführen, um den Effekt zu sehen.
#!/usr/bin/env python3
import RPi.GPIO as GPIO
import time
ReedPin = 17
Gpin = 27
Rpin = 22
def setup():
GPIO.setmode(GPIO.BCM) #
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(ReedPin, GPIO.IN, pull_up_down=GPIO.PUD_UP) # Set ReedPin's mode is input, and pull up to high level(3.3V)
GPIO.add_event_detect(ReedPin, 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 detect(self):
Led(GPIO.input(ReedPin))
def loop():
while True:
pass
def destroy():
GPIO.output(Gpin, GPIO.HIGH) # Green led on
GPIO.output(Rpin, GPIO.LOW) # Red led off
GPIO.cleanup() # Release resource
if __name__ == '__main__': # Program start from here
setup()
detect()
try:
loop()
except KeyboardInterrupt: # When 'Ctrl+C' is pressed, the child program destroy() will be executed.
destroy()
Code-Erklärung
ReedPin = 17
Gpin = 27
Rpin = 22
def setup():
GPIO.setmode(GPIO.BCM) #
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(ReedPin, GPIO.IN, pull_up_down=GPIO.PUD_UP) # Set ReedPin's mode is input, and pull up to high level(3.3V)
GPIO.add_event_detect(ReedPin, GPIO.BOTH, callback=detect, bouncetime=200)
Die GPIO-Modi werden auf BCM-Nummerierung eingestellt. ReedPin, Gpin und Rpin verbinden mit den GPIO17, GPIO27 und GPIO22.
GPIO.add_event_detect() wird verwendet, um ein Ereignis hinzuzufügen, das durch eine Änderung des Wertes (Niveau) von ReedPin ausgelöst wird, woraufhin die Callback-Funktion detect() aufgerufen wird.
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)
Definiere eine Funktion Led(), um die beiden LEDs ein- oder auszuschalten. Wenn x=0, leuchtet die rote LED; ansonsten wird die grüne LED leuchten.
def detect(self):
Led(GPIO.input(ReedPin))
In dieser Callback-Funktion wird der Wert des Reed-Schalters verwendet, um die 2 LEDs zu steuern.