.. 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! .. _1.1.2_js: 1.1.2 RGB LED ================ Einführung -------------- In diesem Projekt werden wir eine RGB-LED steuern, um verschiedene Farben blinken zu lassen. Benötigte Komponenten ------------------------------ Für dieses Projekt benötigen wir die folgenden Komponenten. .. image:: img/list_rgb_led.png :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 - 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_rgb_led` - |link_rgb_led_buy| Schaltplan ----------------------- Nachdem die Pins von R, G und B mit einem strombegrenzenden Widerstand verbunden sind, schließen Sie sie jeweils an die GPIO17, GPIO18 und GPIO27 an. Der längste Pin (GND) der LED wird mit dem GND des Raspberry Pi verbunden. Wenn den drei Pins unterschiedliche PWM-Werte gegeben werden, zeigt die RGB-LED verschiedene Farben an. .. image:: img/rgb_led_schematic.png Experimentelle Verfahren ---------------------------- **Schritt 1:** Bauen Sie den Schaltkreis. .. image:: img/image61.png **Schritt 2:** Gehen Sie zum Ordner des Codes. .. raw:: html .. code-block:: cd ~/raphael-kit/nodejs/ **Schritt 3:** Starten Sie den Code. .. raw:: html .. code-block:: sudo node rgb_led.js Nachdem der Code ausgeführt wurde, werden Sie sehen, dass die RGB-LED rot, grün, blau, gelb, rosa und cyan anzeigt. **Code** .. code-block:: js const Gpio = require('pigpio').Gpio; const ledred = new Gpio(17, { mode: Gpio.OUTPUT }); const ledgreen = new Gpio(18, { mode: Gpio.OUTPUT }); const ledblue = new Gpio(27, { mode: Gpio.OUTPUT }); function colorset(r, g, b) { ledred.pwmWrite(r); ledgreen.pwmWrite(g); ledblue.pwmWrite(b); } var color_index = -1; setInterval(() => { color_index += 1; switch (color_index) { case 0: colorset(0xff, 0x00, 0xFF); break; case 1: colorset(0x00, 0xff, 0x00); break; case 2: colorset(0x00, 0x00, 0xff); break; case 3: colorset(0xff, 0xff, 0x00); break; case 4: colorset(0xff, 0x00, 0xff); break; case 5: colorset(0xc0, 0xff, 0x3e); break; default: color_index=-1; } }, 500); **Code-Erklärung** .. code-block:: js const ledred = new Gpio(17,{mode: Gpio.OUTPUT}); const ledgreen = new Gpio(18,{mode: Gpio.OUTPUT}); const ledblue = new Gpio(27,{mode: Gpio.OUTPUT}); Initialisieren Sie die Pins 17, 18 und 27 im Ausgabemodus und weisen Sie sie den Konstanten ``ledred``, ``ledgreen`` und ``ledblue`` zu. .. code-block:: js function colorset(r,g,b){ ledred.pwmWrite(r); ledgreen.pwmWrite(g); ledblue.pwmWrite(b); } Implementieren Sie eine ``colorset(r,g,b)`` Funktion, die dazu dient, Puls-Werte an die Pins 17, 18 und 27 zu schreiben. Die Gpio-Bibliothek kapselt die Funktion ``pwmWrite()`` ein, um Puls-Werte an Pins zu schreiben. Der Wert reicht von 0x00 bis 0xff. Mit der Funktion ``colorset(r,g,b)`` können Sie dann RGB-Werte an die RGB-LED schreiben, sodass sie verschiedene Farben anzeigen kann. .. note:: Bei Fragen zu RGB verweisen wir auf die Webseite: https://www.rapidtables.com/web/color/RGB_Color.html .. code-block:: js var color_index = -1; setInterval(() => { color_index += 1; switch (color_index) { case 0: colorset(0xff, 0x00, 0xFF); break; case 1: colorset(0x00, 0xff, 0x00); break; case 2: colorset(0x00, 0x00, 0xff); break; case 3: colorset(0xff, 0xff, 0x00); break; case 4: colorset(0xff, 0x00, 0xff); break; case 5: colorset(0xc0, 0xff, 0x3e); break; default: color_index=-1; } }, 500); Die RGB-LED wird durch ``colorset()`` gesteuert, das alle 500ms ausgeführt wird. Hier wird ein Switch-Case verwendet, um die von den RGB-LEDs ausgestrahlte Farbe auszuwählen. Da ``color_index`` in jedem Zyklus um eins geändert wird, ändert sich die Farbe dieser RGB-LED in der Reihenfolge. Phänomen-Bild ------------------------ .. image:: img/image62.jpeg