.. 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_js:
2.1.4 Schiebeschalter
========================
Einführung
------------
In diesem Projekt lernen wir, wie man einen Schiebeschalter verwendet. Üblicherweise wird
der Schiebeschalter auf einer PCB als Ein/Aus-Schalter gelötet. Hier müssen wir ihn jedoch
in das Steckbrett einsetzen, weshalb er möglicherweise nicht fest sitzt. Wir verwenden ihn
auf dem Steckbrett, um seine Funktion zu demonstrieren.
Benötigte Komponenten
------------------------------
Für dieses Projekt benötigen wir folgende Komponenten:
.. image:: ../img/list_2.1.2_slide_switch.png
Es ist definitiv praktisch, ein gesamtes 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 sie auch einzeln über die untenstehenden 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_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 jeweils
mit den Pins GPIO22 und GPIO27. Wenn Sie den Schalter betätigen, leuchten die beiden LEDs
abwechselnd auf.
.. 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/nodejs/
**Schritt 3**: Führen Sie den Code aus.
.. raw:: html
.. code-block::
sudo node slide_switch.js
Während der Code läuft, verbinden Sie den Schalter mit der linken Seite, dann
leuchtet die gelbe LED; zur rechten Seite leuchtet die rote LED.
**Code**
.. code-block:: js
const Gpio = require('pigpio').Gpio;
const led1 = new Gpio(22, {mode: Gpio.OUTPUT});
const led2 = new Gpio(27, {mode: Gpio.OUTPUT});
const slideSwitch = new Gpio(17, {
mode: Gpio.INPUT,
pullUpDown: Gpio.PUD_DOWN,
edge: Gpio.EITHER_EDGE
});
slideSwitch.on('interrupt', (level) => {
led1.digitalWrite(level);
led2.digitalWrite(!level);
});
**Code Erklärung**
.. code-block:: js
const Gpio = require('pigpio').Gpio;
const led1 = new Gpio(22, {mode: Gpio.OUTPUT});
const led2 = new Gpio(27, {mode: Gpio.OUTPUT});
const slideSwitch = new Gpio(17, {
mode: Gpio.INPUT,
pullUpDown: Gpio.PUD_DOWN,
edge: Gpio.EITHER_EDGE
});
Das Modul "pigpio" wird importiert und drei Objekte led1, led2 und slideSwitch erstellt.
Das Ein- und Ausschalten von led1 und led2 wird durch Ablesen des Pegels des slideSwitch IO-Ports gesteuert.
.. code-block:: js
slideSwitch.on('interrupt', (level) => {
led1.digitalWrite(level);
led2.digitalWrite(!level);
});
Wenn sich der abgelesene Pegel des slideSwitch IO-Ports ändert,
wird der gleiche Pegel an led1 und der entgegengesetzte Pegel an led2 geschrieben.
Phänomen-Bild
------------------
.. image:: ../img/image162.jpeg