.. 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: 2.1.3 Touchschalter-Modul ================================= Einführung ------------------- In diesem Projekt lernen Sie das Touchschalter-Modul kennen. Es kann traditionelle Schaltertypen ersetzen und bietet diese 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:: ../img/2.1.3component.png :width: 700 :align: center Es ist definitiv praktisch, ein ganzes Set zu kaufen. Hier ist der Link: .. list-table:: :widths: 20 20 20 :header-rows: 1 * - Name - ARTIKEL IN DIESEM KIT - LINK * - Raphael Kit - 337 - |link_Raphael_kit| Sie können diese auch einzeln über die untenstehenden Links kaufen. .. list-table:: :widths: 30 20 :header-rows: 1 * - KOMPONENTENBESCHREIBUNG - 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:: ../img/2.1.3circuit.png :width: 500 :align: center Experimentelle Verfahren ---------------------------- **Schritt 1:** Schaltung aufbauen. .. image:: ../img/2.1.3fritzing.png :width: 700 :align: center **Schritt 2:** Verzeichnis wechseln. .. raw:: html .. code-block:: cd ~/raphael-kit/python/ **Schritt 3:** Ausführen. .. raw:: html .. code-block:: sudo python3 2.1.3_TouchSwitch.py Während der Code läuft, leuchtet die rote LED. Wenn Sie das Touchschalter-Modul berühren, schaltet sich die gelbe LED ein. **Code** .. note:: Sie können den untenstehenden Code **Ändern/Zurücksetzen/Kopieren/Ausführen/Stoppen**. Doch zuvor müssen Sie zum Quellcode-Pfad wie ``raphael-kit/python`` navigieren. Nach der Modifizierung können Sie den Code direkt ausführen, um das Ergebnis zu sehen. .. raw:: html .. code-block:: python #!/usr/bin/env python3 import RPi.GPIO as GPIO import time # Set #17 as touch switch pin, #22 as led1 pin, #27 as led2 pin touchPin = 17 led1Pin = 22 led2Pin = 27 # Define a setup function for some setup def setup(): # Set the GPIO modes to BCM Numbering GPIO.setmode(GPIO.BCM) # Set touchPin input # Set ledPin output, # and initial level to High(3.3v) GPIO.setup(touchPin, GPIO.IN) GPIO.setup(led1Pin, GPIO.OUT, initial=GPIO.HIGH) GPIO.setup(led2Pin, GPIO.OUT, initial=GPIO.HIGH) # Define a main function for main process def main(): while True: # touch switch high, led1 on if GPIO.input(touchPin) == 1: print ('You touch it!') GPIO.output(led1Pin, GPIO.LOW) GPIO.output(led2Pin, GPIO.HIGH) # touch switch low, led2 on if GPIO.input(touchPin) == 0: GPIO.output(led2Pin, GPIO.LOW) GPIO.output(led1Pin, GPIO.HIGH) time.sleep(0.5) # Define a destroy function for clean up everything after # the script finished def destroy(): # Turn off LED GPIO.output(led1Pin, GPIO.HIGH) GPIO.output(led2Pin, GPIO.HIGH) # Release resource GPIO.cleanup() # If run this script directly, do: if __name__ == '__main__': setup() try: main() # When 'Ctrl+C' is pressed, the program # destroy() will be executed. except KeyboardInterrupt: destroy() **Code-Erklärung** .. code-block:: python touchPin = 17 led1Pin = 22 led2Pin = 27 ``touchPin``, ``led1Pin`` und ``led2Pin`` sind mit GPIO17, GPIO22 und GPIO27 verbunden, das heißt BCM17, BCM22 und BCM27. .. code-block:: python GPIO.setmode(GPIO.BCM) GPIO.setup(touchPin, GPIO.IN) GPIO.setup(led1Pin, GPIO.OUT, initial=GPIO.HIGH) GPIO.setup(led2Pin, GPIO.OUT, initial=GPIO.HIGH) Legt den GPIO-Modus auf BCM-Nummerierung fest. Stellt ``led1Pin``, ``led2Pin`` auf den Ausgangsmodus und initialisiert ihren Pegel auf Hoch (3,3V). .. code-block:: python # touch switch high, led1 on if GPIO.input(touchPin) == 1: print ('You touch it!') GPIO.output(led1Pin, GPIO.LOW) GPIO.output(led2Pin, GPIO.HIGH) # touch switch low, led2 on if GPIO.input(touchPin) == 0: GPIO.output(led2Pin, GPIO.LOW) GPIO.output(led1Pin, GPIO.HIGH) Wenn Sie das Touchschalter-Modul berühren, ist ``touchPin`` hoch, led1 leuchtet auf und es wird \"Du hast es berührt!\" ausgegeben. Wenn touchPin niedrig ist, leuchtet led2 auf. Phänomen-Bild -------------------- .. image:: ../img/2.1.3touch_switch_module.JPG :width: 500 :align: center