.. note:: 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 [|link_sf_facebook|] und treten Sie heute bei! .. _2.1.3_py_pi5: 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. .. image:: ../python_pi5/img/2.1.3_touch_switch_list.png :width: 700 :align: center Es ist definitiv praktisch, ein ganzes Kit zu kaufen, hier ist der Link: .. list-table:: :widths: 20 20 20 :header-rows: 1 * - Name - IN DIESEM KIT ENTHALTENE TEILE - LINK * - Raphael Kit - 337 - |link_Raphael_kit| Sie können sie auch separat über die unten stehenden Links kaufen. .. list-table:: :widths: 30 20 :header-rows: 1 * - KOMPONENTENVORSTELLUNG - KAUF-LINK * - :ref:`cpn_gpio_board` - |link_gpio_board_buy| * - :ref:`cpn_breadboard` - |link_breadboard_buy| * - :ref:`cpn_wires` - |link_wires_buy| * - :ref:`cpn_resistor` - |link_resistor_buy| * - :ref:`cpn_led` - |link_led_buy| * - :ref:`cpn_touch_switch` - |link_touch_buy| Schaltplan -------------------- .. image:: ../python_pi5/img/2.1.3_touch_switch_schematic.png :width: 500 :align: center Experimentelle Verfahren ------------------------------------- **Schritt 1:** Bauen Sie den Schaltkreis auf. .. image:: ../python_pi5/img/2.1.3_touch_switch_circuit.png :width: 700 :align: center **Schritt 2:** Wechseln Sie ins Verzeichnis. .. raw:: html .. code-block:: cd ~/raphael-kit/python-pi5 **Schritt 3:** Führen Sie den Code aus. .. raw:: html .. code-block:: 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. .. warning:: Wenn die Fehlermeldung ``RuntimeError: Cannot determine SOC peripheral base address`` angezeigt wird, lesen Sie bitte :ref:`faq_soc` **Code** .. note:: 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. .. raw:: html .. code-block:: python #!/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** #. 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. .. code-block:: python #!/usr/bin/env python3 from gpiozero import LED, Button # Import LED and Button classes from gpiozero from time import sleep # Import sleep for delay #. 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. .. code-block:: python # 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 #. 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. .. code-block:: python 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