.. 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 Neigungsschalter ================================== Einführung ------------ Dies ist ein Kugel-Neigungsschalter mit einer Metallkugel im Inneren. Er wird verwendet, um Neigungen eines kleinen Winkels zu erkennen. Benötigte Komponenten ------------------------------ Für dieses Projekt benötigen wir die folgenden Komponenten. .. image:: ../python_pi5/img/2.1.3_tilt_switch_list.png .. raw:: html
Schaltplan ----------------- .. image:: ../python_pi5/img/2.1.3_tilt_switch_schematic_1.png .. image:: ../python_pi5/img/2.1.3_tilt_switch_schematic_2.png Experimentelle Verfahren ------------------------------------- **Schritt 1:** Bauen Sie den Schaltkreis auf. .. image:: ../python_pi5/img/2.1.3_tilt_switch_circuit.png **Schritt 2:** Wechseln Sie in den Ordner des Codes. .. raw:: html .. code-block:: cd ~/davinci-kit-for-raspberry-pi/python-pi5 **Schritt 3:** Ausführen. .. raw:: html .. code-block:: sudo python3 2.1.3_Tilt_zero.py Stellen Sie den Neigungsschalter senkrecht auf, und die grüne LED leuchtet auf. Wenn Sie ihn neigen, wird "Tilt!" auf dem Bildschirm angezeigt, und die rote LED leuchtet auf. Stellen Sie ihn wieder senkrecht auf, und die grüne LED leuchtet. .. 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 bevor Sie das tun, müssen Sie zum Quellcode-Pfad wie ``davinci-kit-for-raspberry-pi/python-pi5`` gehen. Nachdem Sie den Code geändert haben, können Sie ihn direkt ausführen, um die Auswirkungen zu sehen. .. raw:: html .. code-block:: python #!/usr/bin/env python3 from gpiozero import LED, Button # Initialisieren Sie den Button für den Neigungssensor und die LEDs mit GPIO Zero TiltPin = Button(17, pull_up=False) # Neigungssensor an GPIO-Pin 17 angeschlossen, Pull-up-Widerstand deaktiviert green_led = LED(27) # Grüne LED an GPIO-Pin 27 angeschlossen red_led = LED(22) # Rote LED an GPIO-Pin 22 angeschlossen def detect(): """ Erkennen Sie den Zustand des Neigungssensors und steuern Sie die LEDs. Schaltet die rote LED ein und die grüne LED aus, wenn geneigt. Schaltet die rote LED aus und die grüne LED ein, wenn nicht geneigt. """ if TiltPin.is_pressed: # Überprüfen, ob der Sensor geneigt ist print(' *************') print(' * Tilt! *') print(' *************') red_led.on() # Rote LED einschalten green_led.off() # Grüne LED ausschalten else: # Wenn der Sensor nicht geneigt ist red_led.off() # Rote LED ausschalten green_led.on() # Grüne LED einschalten try: while True: # Kontinuierlich den Zustand des Neigungssensors überprüfen und LEDs aktualisieren TiltPin.when_pressed = detect TiltPin.when_released = detect except KeyboardInterrupt: # Tastaturunterbrechung (z. B. Ctrl+C) sauber behandeln pass **Code-Erklärung** #. Diese Zeile setzt das Skript so, dass es mit Python 3 läuft, und importiert ``LED`` und ``Button`` aus ``gpiozero`` zur Steuerung von GPIO-Geräten. .. code-block:: python #!/usr/bin/env python3 from gpiozero import LED, Button #. Initialisiert den Neigungssensor, der an GPIO-Pin 17 angeschlossen ist (mit deaktiviertem Pull-up-Widerstand), und zwei LEDs, die an GPIO-Pins 27 und 22 angeschlossen sind. .. code-block:: python # Initialisieren Sie den Button für den Neigungssensor und die LEDs mit GPIO Zero TiltPin = Button(17, pull_up=False) # Neigungssensor an GPIO-Pin 17 angeschlossen, Pull-up-Widerstand deaktiviert green_led = LED(27) # Grüne LED an GPIO-Pin 27 angeschlossen red_led = LED(22) # Rote LED an GPIO-Pin 22 angeschlossen #. Definiert die Funktion ``detect``, die den Zustand des Neigungssensors überprüft. Wenn geneigt, schaltet sie die rote LED ein und die grüne LED aus. Wenn nicht geneigt, macht sie das Gegenteil. .. code-block:: python def detect(): """ Erkennen Sie den Zustand des Neigungssensors und steuern Sie die LEDs. Schaltet die rote LED ein und die grüne LED aus, wenn geneigt. Schaltet die rote LED aus und die grüne LED ein, wenn nicht geneigt. """ if TiltPin.is_pressed: # Überprüfen, ob der Sensor geneigt ist print(' *************') print(' * Tilt! *') print(' *************') red_led.on() # Rote LED einschalten green_led.off() # Grüne LED ausschalten else: # Wenn der Sensor nicht geneigt ist red_led.off() # Rote LED ausschalten green_led.on() # Grüne LED einschalten #. Die Hauptschleife weist die Funktion ``detect`` sowohl den ``when_pressed``- als auch den ``when_released``-Ereignissen des Neigungssensors zu. Der ``try-except``-Block behandelt eine KeyboardInterrupt für einen sauberen Abbruch. .. code-block:: python try: while True: # Kontinuierlich den Zustand des Neigungssensors überprüfen und LEDs aktualisieren TiltPin.when_pressed = detect TiltPin.when_released = detect except KeyboardInterrupt: # Tastaturunterbrechung (z. B. Ctrl+C) sauber behandeln pass