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.1.1 Taster

Einleitung

In diesem Projekt lernen wir, wie man eine LED mit einem Taster ein- oder ausschaltet.

Benötigte Komponenten

Für dieses Projekt benötigen wir die folgenden Komponenten.

../_images/2.1.1_Button_list.png

Es ist definitiv praktisch, ein ganzes Kit zu kaufen, hier ist der Link:

Name

IN DIESEM KIT ENTHALTENE TEILE

LINK

Raphael Kit

337

Raphael Kit

Sie können sie auch separat über die unten stehenden Links kaufen.

KOMPONENTENVORSTELLUNG

KAUF-LINK

GPIO Extension Board

KAUFEN

Steckbrett

KAUFEN

Jumper-Kabel

KAUFEN

Widerstand

KAUFEN

LED

KAUFEN

Taste

KAUFEN

Schaltplan

Wir verwenden einen normalerweise offenen Taster als Eingang des Raspberry Pi. Die Verbindung ist im folgenden Schaltplan dargestellt. Wenn der Taster gedrückt wird, wechselt GPIO18 auf High-Level (3,3V). Wir können den Zustand von GPIO18 durch Programmierung erkennen. Das heißt, wenn GPIO18 auf High-Level wechselt, bedeutet dies, dass der Taster gedrückt wurde. Sie können den entsprechenden Code ausführen, wenn der Taster gedrückt wird, und dann leuchtet die LED auf.

Bemerkung

Der längere Pin der LED ist die Anode und der kürzere ist die Kathode.

../_images/2.1.1_Button_schematic_1.png ../_images/2.1.1_Button_schematic_2.png

Experimentelle Verfahren

Schritt 1: Bauen Sie den Schaltkreis auf.

../_images/2.1.1_Button_circuit.png

Schritt 2: Öffnen Sie die Code-Datei.

cd ~/raphael-kit/python-pi5

Schritt 3: Führen Sie den Code aus.

sudo python3 2.1.1_Button_zero.py

Jetzt, wenn Sie den Taster drücken, leuchtet die LED auf; wenn Sie den Taster loslassen, geht die LED aus.

Warnung

Wenn die Fehlermeldung RuntimeError: Cannot determine SOC peripheral base address angezeigt wird, lesen Sie bitte If gpiozero doesn’t work.

Code

Bemerkung

Sie können den unten stehenden Code modifizieren/zurücksetzen/kopieren/ausführen/stoppen. Aber zuvor müssen Sie zum Quellcodepfad wie raphael-kit/python-pi5 gehen. Nachdem Sie den Code modifiziert haben, können Sie ihn direkt ausführen, um den Effekt zu sehen.

#!/usr/bin/env python3
from gpiozero import LED, Button  # Import LED and Button classes from gpiozero
from signal import pause  # Import pause function from signal module

# Initialize an LED object on GPIO pin 17
led = LED(17)
# Initialize a Button object on GPIO pin 18
button = Button(18)

# Link the button's "when_pressed" event to the LED's on() method
button.when_pressed = led.on
# Link the button's "when_released" event to the LED's off() method
button.when_released = led.off

# Run an event loop that waits for button events and keeps the script running
pause()

Code-Erklärung

  1. Das Skript ist in Python3 geschrieben und importiert die Klassen LED und Button aus der Bibliothek gpiozero sowie pause aus dem signal-Modul.

    #!/usr/bin/env python3
    from gpiozero import LED, Button  # Import LED and Button classes from gpiozero
    from signal import pause  # Import pause function from signal module
    
  2. Initialisiert ein LED-Objekt am GPIO-Pin 17 und ein Button-Objekt am GPIO-Pin 18.

    # Initialize an LED object on GPIO pin 17
    led = LED(17)
    # Initialize a Button object on GPIO pin 18
    button = Button(18)
    
  3. Richtet Ereignisbehandler ein, sodass die LED einschaltet, wenn der Taster gedrückt wird, und ausschaltet, wenn der Taster losgelassen wird.

    # Link the button's "when_pressed" event to the LED's on() method
    button.when_pressed = led.on
    # Link the button's "when_released" event to the LED's off() method
    button.when_released = led.off
    
  4. Dies hält das Skript in einer Ereignisschleife am Laufen, die auf die Tastendruck- und Loslassereignisse wartet.

    # Run an event loop that waits for button events and keeps the script running
    pause()