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.3 Berührungsschaltermodul

Einleitung

In diesem Projekt werden wir das Berührungsschaltermodul kennenlernen. Es kann traditionelle Schaltertypen ersetzen und bietet folgende Vorteile: bequeme Bedienung, feines Tastgefühl, präzise Steuerung und minimaler mechanischer Verschleiß.

Benötigte Komponenten

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

../_images/2.1.3_touch_switch_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

Berührungsschalter Modul

KAUFEN

Schaltplan

../_images/2.1.3_touch_switch_schematic.png

Experimentelle Verfahren

Schritt 1: Bauen Sie den Schaltkreis auf.

../_images/2.1.3_touch_switch_circuit.png

Schritt 2: Wechseln Sie ins Verzeichnis.

cd ~/raphael-kit/python-pi5

Schritt 3: Führen Sie den Code aus.

sudo python3 2.1.3_TouchSwitch_zero.py

Während der Code läuft, leuchtet die rote LED; wenn Sie das Berührungsschaltermodul antippen, schaltet sich die gelbe LED ein.

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 time import sleep  # Import sleep for delay

# Initialize touch sensor (Button) on GPIO pin 17, pull-up resistor disabled
touch_sensor = Button(17, pull_up=False)  # Suitable for sensors that pull the pin low when pressed

# Initialize LED1 and LED2 connected to GPIO pins 22 and 27 respectively
led1 = LED(22)  # LED1 connected to GPIO pin 22
led2 = LED(27)  # LED2 connected to GPIO pin 27

try:
    # Continuously monitor the state of the touch sensor and control LEDs accordingly
    while True:
        if touch_sensor.is_pressed:  # Check if the touch sensor is pressed
            print('You touch it!')  # Output message indicating sensor activation
            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-Erklärung

  1. Diese Zeile legt fest, dass das Skript mit Python 3 ausgeführt wird. Es importiert die Klassen LED und Button aus gpiozero zur Steuerung von GPIO-Geräten und sleep aus time für Verzögerungen.

    #!/usr/bin/env python3
    from gpiozero import LED, Button  # Import LED and Button classes from gpiozero
    from time import sleep  # Import sleep for delay
    
  2. Initialisiert einen Berührungssensor (als Button) am GPIO-Pin 17 mit deaktiviertem Pull-Up-Widerstand und zwei LEDs an den GPIO-Pins 22 und 27.

    # Initialize touch sensor (Button) on GPIO pin 17, pull-up resistor disabled
    touch_sensor = Button(17, pull_up=False)  # Suitable for sensors that pull the pin low when pressed
    
    # Initialize LED1 and LED2 connected to GPIO pins 22 and 27 respectively
    led1 = LED(22)  # LED1 connected to GPIO pin 22
    led2 = LED(27)  # LED2 connected to GPIO pin 27
    
  3. In der Hauptschleife wird der Zustand des Berührungssensors überprüft. Bei Berührung schaltet sich LED2 ein und LED1 aus; wenn nicht berührt, ist LED1 eingeschaltet und LED2 ausgeschaltet. Die Schleife wiederholt sich alle 0,5 Sekunden. Fängt eine Tastaturunterbrechung (wie Strg+C) ab, um das Skript anmutig zu beenden.

    try:
        # Continuously monitor the state of the touch sensor and control LEDs accordingly
        while True:
            if touch_sensor.is_pressed:  # Check if the touch sensor is pressed
                print('You touch it!')  # Output message indicating sensor activation
                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