.. 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.4_py: 2.1.4 Schiebeschalter ======================= Einführung ------------ In diesem Projekt werden wir lernen, wie man einen Schiebeschalter verwendet. Normalerweise wird der Schiebeschalter auf einer PCB als Ein-/Ausschalter gelötet, aber hier müssen wir ihn in das Steckbrett einsetzen, wodurch er möglicherweise nicht fest sitzt. Und wir verwenden ihn auf dem Steckbrett, um seine Funktion zu zeigen. Benötigte Komponenten ------------------------------ Für dieses Projekt benötigen wir die folgenden Komponenten. .. image:: ../img/list_2.1.2_slide_switch.png Es ist definitiv praktisch, ein komplettes 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 separat ü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_slide_switch` - |link_slide_switch_buy| * - :ref:`cpn_capacitor` - |link_capacitor_buy| Schaltplan --------------------- Verbinden Sie den mittleren Pin des Schiebeschalters mit GPIO17 und zwei LEDs mit Pin GPIO22 und GPIO27 jeweils. Wenn Sie dann den Schiebeschalter betätigen, sehen Sie, wie die beiden LEDs abwechselnd leuchten. .. image:: ../img/image305.png .. image:: ../img/image306.png Experimentelle Verfahren ---------------------------- **Schritt 1:** Bauen Sie den Schaltkreis. .. image:: ../img/image161.png **Schritt 2**: Wechseln Sie in den Ordner des Codes. .. raw:: html .. code-block:: cd ~/raphael-kit/python **Schritt 3**: Starten. .. raw:: html .. code-block:: sudo python3 2.1.4_Slider.py Während der Code läuft, verbinden Sie den Schalter mit der linken Seite, dann leuchtet die gelbe LED auf; zur rechten Seite leuchtet das rote Licht. **Code** .. note:: Sie können den untenstehenden Code **Bearbeiten/Zurücksetzen/Kopieren/Starten/Stoppen**. Aber zuerst müssen Sie zum Quellcode-Pfad wie ``raphael-kit/python`` gehen. Nach der Bearbeitung können Sie ihn direkt ausführen, um den Effekt zu sehen. .. raw:: html .. code-block:: python import RPi.GPIO as GPIO import time # Set GPIO17 as slide switch pin, GPIO22 as led1 pin, GPIO27 as led2 pin slidePin = 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 slidePin input # Set ledPin output, # and initial level to High(3.3v) GPIO.setup(slidePin, 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: # slide switch high, led1 on if GPIO.input(slidePin) == 1: print (' LED1 ON ') GPIO.output(led1Pin, GPIO.LOW) GPIO.output(led2Pin, GPIO.HIGH) # slide switch low, led2 on if GPIO.input(slidePin) == 0: print (' LED2 ON ') 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 if GPIO.input(slidePin) == 1: GPIO.output(led1Pin, GPIO.LOW) GPIO.output(led2Pin, GPIO.HIGH) Wenn der Schiebeschalter nach rechts gezogen wird, sind der mittlere Pin und der rechte Pin verbunden; der Raspberry Pi liest am mittleren Pin ein hohes Signal, daher ist die LED1 an und die LED2 aus. .. code-block:: python if GPIO.input(slidePin) == 0: GPIO.output(led2Pin, GPIO.LOW) GPIO.output(led1Pin, GPIO.HIGH) Wenn der Schiebeschalter nach links gezogen wird, sind der mittlere Pin und der linke Pin verbunden; der Raspberry Pi liest ein niedriges Signal, daher ist die LED2 an und die LED1 aus. Phänomen-Bild ------------- .. image:: ../img/image162.jpeg