ESP32 - NeoPixel-LED-Streifen

Der NeoPixel-Streifen ist wie ein Streifen bunter RGB-LEDs, und Sie können die Farbe und Helligkeit jeder einzelnen LED separat steuern. In diesem Leitfaden erfahren wir, wie man einen ESP32 verwendet, um den NeoPixel-RGB-LED-Streifen zu steuern. Um alle LEDs des NeoPixel-Streifens zu steuern, benötigen Sie nur einen einzigen Pin am ESP32.

Erforderliche Hardware

1×ESP32 ESP-WROOM-32 Entwicklungsmodul
1×USB-Kabel Typ-A zu Typ-C (für USB-A PC)
1×USB-Kabel Typ-C zu Typ-C (für USB-C PC)
1×NeoPixel RGB LED-Streifen
1×1000uF Capacitor
1×470Ω Resistor
1×5V Netzteil
1×(Optional) DC-Stromanschluss
1×Verbindungskabel
1×Breadboard
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für ESP32
1×(Empfohlen) Breakout Expansion Board for ESP32
1×(Empfohlen) Stromverteiler für ESP32

Oder Sie können die folgenden Kits kaufen:

1×DIYables ESP32 Starter-Kit (ESP32 enthalten)
1×DIYables Sensor-Kit (30 Sensoren/Displays)
1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Über NeoPixel RGB-LED-Streifen

Pinbelegung

Der NeoPixel RGB-LED-Streifen hat drei Pins:

  • GND-Pin: muss mit GND (0V) verbunden werden
  • VCC-Pin: muss mit 5 V der externen Stromversorgung verbunden werden
  • Din-Pin: ist der Pin, der das Steuersignal empfängt. Er sollte mit einem ESP32-GPIO-Pin verbunden werden.
NeoPixel Pinbelegung

Verdrahtungsdiagramm

ESP32 NeoPixel RGB-LED-Streifen Verdrahtungsdiagramm

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Wenn Sie nicht wissen, wie Sie ESP32 und andere Komponenten mit Strom versorgen, finden Sie Anleitungen im folgenden Tutorial: Wie man ESP32 mit Strom versorgt.

Wie man NeoPixel RGB-LED-Streifen programmiert

  • Deklariere ein NeoPixel-Objekt
#define PIN_NEO_PIXEL 16 // Der ESP32-Pin GPIO16, der mit dem NeoPixel verbunden ist #define NUM_PIXELS 30 // Die Anzahl der LEDs (Pixel) am NeoPixel Adafruit_NeoPixel NeoPixel(NUM_PIXELS, PIN_NEO_PIXEL, NEO_GRB + NEO_KHZ800);
  • Initialisiert den NeoPixel
NeoPixel.begin(); // NeoPixel-Streifenobjekt initialisieren (ERFORDERLICH)
  • Setze die Farbe jeder einzelnen LED (als Pixel bezeichnet).
NeoPixel.setPixelColor(pixel, NeoPixel.Color(255, 0, 0));
  • Stellen Sie die Helligkeit aller Streifen ein.
NeoPixel.setBrightness(200); // ein Wert von 0 bis 255

※ Notiz:

  • NeoPixel.setBrightness() wird für alle Pixel des LED-Streifens verwendet. Um die Helligkeit für jedes einzelne Pixel einzustellen, können wir den Farbwert skalieren.
  • Die durch NeoPixel.setBrightness() und NeoPixel.setPixelColor() gesetzten Werte treten erst in Kraft, wenn NeoPixel.show() aufgerufen wird.

ESP32-Code

Der folgende Code erfüllt die folgenden Aufgaben:

  • Es ändert nacheinander die Pixel auf Grün, mit einer Pause zwischen den einzelnen Pixeln.
  • Es schaltet alle Pixel für zwei Sekunden aus.
  • Es setzt gleichzeitig alle Pixel auf Rot und hält diesen Zustand eine Sekunde lang.
  • Dieser gesamte Prozess wird daraufhin unendlich oft wiederholt.
/* * Dieser ESP32 Code wurde von newbiely.de entwickelt * Dieser ESP32 Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/esp32/esp32-neopixel-led-strip */ #include <Adafruit_NeoPixel.h> #define PIN_NEO_PIXEL 16 // The ESP32 pin GPIO16 connected to NeoPixel #define NUM_PIXELS 30 // The number of LEDs (pixels) on NeoPixel LED strip Adafruit_NeoPixel NeoPixel(NUM_PIXELS, PIN_NEO_PIXEL, NEO_GRB + NEO_KHZ800); void setup() { NeoPixel.begin(); // initialize NeoPixel strip object (REQUIRED) } void loop() { NeoPixel.clear(); // set all pixel colors to 'off'. It only takes effect if pixels.show() is called // turn pixels to green one-by-one with delay between each pixel for (int pixel = 0; pixel < NUM_PIXELS; pixel++) { // for each pixel NeoPixel.setPixelColor(pixel, NeoPixel.Color(0, 255, 0)); // it only takes effect if pixels.show() is called NeoPixel.show(); // update to the NeoPixel Led Strip delay(500); // 500ms pause between each pixel } // turn off all pixels for two seconds NeoPixel.clear(); NeoPixel.show(); // update to the NeoPixel Led Strip delay(2000); // 2 seconds off time // turn on all pixels to red at the same time for two seconds for (int pixel = 0; pixel < NUM_PIXELS; pixel++) { // for each pixel NeoPixel.setPixelColor(pixel, NeoPixel.Color(255, 0, 0)); // it only takes effect if pixels.show() is called } NeoPixel.show(); // update to the NeoPixel Led Strip delay(1000); // 1 second on time // turn off all pixels for one seconds NeoPixel.clear(); NeoPixel.show(); // update to the NeoPixel Led Strip delay(1000); // 1 second off time }

Schnelle Schritte

  • Wenn Sie ESP32 zum ersten Mal verwenden, sehen Sie wie Sie die Umgebung für ESP32 in der Arduino IDE einrichten.
  • Schließen Sie die Verkabelung gemäß dem obigen Bild an.
  • Verbinden Sie das ESP32-Board per Micro-USB-Kabel mit Ihrem PC.
  • Öffnen Sie die Arduino IDE auf Ihrem PC.
  • Wählen Sie das richtige ESP32-Board (z. B. ESP32 Dev Module) und den COM-Port.
  • Klicken Sie auf das Symbol Bibliotheken in der linken Leiste der Arduino IDE.
  • Suchen Sie nach „Adafruit NeoPixel“, und finden Sie dann die NeoPixel-Bibliothek von Adafruit.
  • Klicken Sie auf die Schaltfläche Installieren, um die NeoPixel-Bibliothek zu installieren.
ESP32 NeoPixel-Bibliothek
  • Kopiere den obigen Code und öffne ihn mit der Arduino IDE.
  • Klicke den Hochladen-Button in der Arduino IDE, um den Code auf den ESP32 hochzuladen.
  • Schau dir die Wirkung des LED-Streifens an.

Video Tutorial

Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!