Bemerkung
Hallo, willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasten-Community auf Facebook! Tauchen Sie mit anderen Enthusiasten tiefer in Raspberry Pi, Arduino und ESP32 ein.
Warum beitreten?
Expertenunterstützung: Lösen Sie Probleme nach dem Kauf und technische Herausforderungen mit Hilfe unserer Community und unseres Teams.
Lernen & Teilen: Tauschen Sie Tipps und Tutorials aus, um Ihre Fähigkeiten zu verbessern.
Exklusive Vorschauen: Erhalten Sie frühzeitigen Zugang zu neuen Produktankündigungen und Sneak Peeks.
Sonderrabatte: Genießen Sie exklusive Rabatte auf unsere neuesten Produkte.
Festliche Aktionen und Gewinnspiele: Nehmen Sie an Gewinnspielen und Feiertagsaktionen teil.
👉 Bereit, mit uns zu entdecken und zu gestalten? Klicken Sie auf [here] und treten Sie noch heute bei!
2.3 Schiebeschalter
Einführung
In diesem Projekt lernen wir, wie ein Schiebeschalter verwendet wird, um zwei LEDs zu steuern. Schiebeschalter werden häufig als Ein-/Ausschalter in elektronischen Schaltungen eingesetzt. Hier demonstrieren wir seine Funktionsweise mit einem Breadboard-Aufbau. Obwohl Schiebeschalter für mehr Stabilität oft auf Leiterplatten (PCBs) gelötet werden, verwenden wir ihn hier auf einem Breadboard, um seine Funktionsweise besser zu verstehen.
Benötigte Komponenten
Für dieses Projekt benötigen Sie die folgenden Komponenten:
KOMPONENTE |
KAUFLINK |
|---|---|
- |
|
Raspberry Pi |
- |
Schaltplan
Der mittlere Pin des Schiebeschalters ist mit GPIO17 verbunden, während zwei LEDs mit GPIO22 und GPIO27 verbunden sind. Der Schalter wechselt zwischen den beiden LEDs und lässt sie abwechselnd aufleuchten.
Verdrahtungsdiagramm
Folgen Sie diesen Schritten, um die Schaltung aufzubauen:
Verbinden Sie den mittleren Pin des Schiebeschalters mit GPIO17.
Verbinden Sie einen seitlichen Pin des Schalters mit GND und den anderen mit VCC.
Verbinden Sie die Anode von LED1 über einen Strombegrenzungswiderstand mit GPIO22.
Verbinden Sie die Anode von LED2 über einen Strombegrenzungswiderstand mit GPIO27.
Verbinden Sie die Kathoden beider LEDs mit GND.
Beispiel ausführen
Der gesamte Beispielcode, der in diesem Tutorial verwendet wird, befindet sich im Verzeichnis ai-lab-kit.
Folgen Sie diesen Schritten, um das Beispiel auszuführen:
cd ~/ai-lab-kit/python/
sudo python3 2.3_SlideSwitch.py
Dieses Python-Skript demonstriert die Verwendung eines Schiebeschalters zur Steuerung von zwei LEDs auf dem Fusion HAT+. Beim Ausführen passiert Folgendes:
Schiebeschalter aktiviert:
Schaltet LED1 (verbunden mit GPIO-Pin 22) aus.
Schaltet LED2 (verbunden mit GPIO-Pin 27) ein.
Schiebeschalter nicht aktiviert:
Schaltet LED1 ein.
Schaltet LED2 aus.
Das Programm überprüft kontinuierlich alle 0,5 Sekunden den Zustand des Schiebeschalters und passt den Zustand der LEDs entsprechend an.
Das Skript läuft unbegrenzt weiter, bis es durch Drücken von
Ctrl+Cbeendet wird.
Code
Hier ist der Python-Code, der die LEDs basierend auf dem Zustand des Schiebeschalters steuert:
#!/usr/bin/env python3
from fusion_hat.pin import Pin, Mode, Pull
from time import sleep # Import sleep for delay
# Initialize slider (Button) on GPIO pin 17
slider = Pin(17, mode=Mode.IN, pull=Pull.DOWN)
# Initialize LED1 connected to GPIO pin 22
led1 = Pin(22,mode=Mode.OUT)
# Initialize LED2 connected to GPIO pin 27
led2 = Pin(27,mode=Mode.OUT)
try:
# Continuously monitor the state of the slider and control LEDs accordingly
while True:
if slider.value() == 1: # Check if the slider is pressed
led1.off() # Turn off LED1
led2.on() # Turn on LED2
else: # If the sensor is not pressed
led1.on() # Turn on LED1
led2.off() # Turn off LED2
sleep(0.5) # Pause for 0.5 seconds before rechecking the sensor state
except KeyboardInterrupt:
# Handle a keyboard interrupt (Ctrl+C) for a clean exit from the loop
pass
Code verstehen
Bibliotheken importieren
Importieren Sie die benötigten Bibliotheken zur Steuerung der GPIO-Pins sowie für Zeitverzögerungen.
from fusion_hat.pin import Pin, Mode, Pull from time import sleep # Importiert sleep für Verzögerungen
Initialisierung der Komponenten
Konfigurieren Sie den Schiebeschalter als Eingabe und initialisieren Sie zwei LEDs, die mit den GPIO-Pins 22 und 27 verbunden sind.
# Initialisiere den Schiebeschalter (Slider) an GPIO-Pin 17 slider = Pin(17, mode=Mode.IN, pull=Pull.DOWN) # Initialisiere LED1 an GPIO-Pin 22 led1 = Pin(22,mode=Mode.OUT) # Initialisiere LED2 an GPIO-Pin 27 led2 = Pin(27,mode=Mode.OUT)
Zustandsüberwachung und LED-Steuerung
In der Hauptschleife überwacht das Programm den Zustand des Schiebeschalters. Wenn der Schalter umgelegt wird, wechselt es zwischen LED1 und LED2.
# Überwache kontinuierlich den Zustand des Schalters und steuere die LEDs entsprechend while True: if slider.value() == 1: # Prüfen, ob der Schalter aktiviert ist led1.off() # LED1 ausschalten led2.on() # LED2 einschalten else: # Wenn der Schalter nicht aktiviert ist led1.on() # LED1 einschalten led2.off() # LED2 ausschalten sleep(0.5) # 0,5 Sekunden warten, bevor der Zustand erneut überprüft wird
Sauberes Beenden
Das Skript beendet sich sauber, wenn es mit Ctrl+C unterbrochen wird.
except KeyboardInterrupt: pass
Fehlerbehebung
Schiebeschalter reagiert nicht
Ursache: Der Schiebeschalter ist nicht korrekt verbunden oder die Pull-Up/Pull-Down-Konfiguration stimmt nicht.
Lösung: Überprüfen Sie, ob der Schiebeschalter korrekt mit GPIO-Pin 17 und GND verbunden ist. Stellen Sie sicher, dass
PULL_DOWNzur Schalterkonfiguration passt.
LEDs flackern oder verhalten sich unregelmäßig
Ursache: Entprellungsprobleme (Debouncing) beim Schiebeschalter.
Lösung: Fügen Sie eine softwarebasierte Entprellung hinzu, um das Eingangssignal zu stabilisieren:
if slider.value() == 1: sleep(0.05) # Entprell-Verzögerung
Erweiterungsideen
Zwei-Wege-Schaltersteuerung
Kombinieren Sie zwei Schiebeschalter, um LEDs in einer komplexeren Schaltung zu steuern, beispielsweise als einfaches Lichtsteuerpanel.
Akustisches Feedback
Fügen Sie einen Buzzer hinzu, der ein Signal ausgibt, wenn der Schiebeschalter aktiviert wird:
from fusion_hat import Buzzer buzzer = Buzzer(Pin(22)) if slider.value() == 1: buzzer.on() else: buzzer.off()
Fazit
Dieses Projekt zeigt, wie ein Schiebeschalter mit dem Fusion HAT+ verwendet werden kann, um LEDs zu steuern. Schiebeschalter sind vielseitige und robuste Komponenten, die häufig in Benutzeroberflächen und Steuerungssystemen eingesetzt werden. Durch Experimente mit ihnen können Sie komplexere und interaktive Projekte entwickeln.