ESP32 - LED - Dimmen

Dieses Tutorial erklärt Ihnen, wie man es verwendet:

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×LED Kit
1×LED (red)
1×LED Module
1×220Ω Resistor
1×Breadboard
1×Verbindungskabel
1×(Optional) DC-Stromanschluss
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.

Kaufhinweis: Um den Verdrahtungsprozess zu vereinfachen, empfehlen wir die Verwendung des LED Module, das mit einem eingebauten Widerstand geliefert wird.

Über LED

LED-Pinbelegung

Die LED hat zwei Pins:

  • Kathode(-) Pin: Verbinde diesen Pin mit GND (0 V)
  • Anode(+) Pin: wird verwendet, um den LED-Zustand zu steuern
LED-Pinbelegung

Wie LED funktioniert

Nachdem die Kathode (-) an GND angeschlossen wurde:

  • Wenn wir GND an die Anode (+) anschließen, ist die LED aus.
  • Wenn wir VCC an die Anode (+) anschließen, ist die LED an.
  • Wenn wir ein PWM-Signal an den Anode (+) Pin erzeugen, ist die Helligkeit der LED proportional zum PWM-Tastverhältnis. Das PWM-Tastverhältnis variiert von 0 bis 255. Je größer das PWM-Tastverhältnis ist, desto heller ist die LED.
    • Wenn der PWM-Wert 0 ist, entspricht er GND ⇒ LED ist aus.
    • Wenn der PWM-Wert 255 beträgt, entspricht er VCC ⇒ LED ist bei der höchsten Helligkeit an.
    Wie LEDs funktionieren

    ※ Notiz:

    Normalerweise wird ein Widerstand benötigt, um die LED vor dem Durchbrennen zu schützen. Der Widerstandswert hängt von den Spezifikationen der LED ab.

    ESP32 - LED dimmen

    Die digitalen Ausgänge des ESP32 können so programmiert werden, dass sie ein PWM-Signal erzeugen. Indem man den Anode(+)-Pin einer LED an einen Pin des ESP32 anschließt, die Kathode(-) der LED mit GND verbindet und anschließend den ESP32 so programmiert, dass sich das Tastverhältnis des PWM-Signals ändert, können wir die LED dimmen.

Verdrahtungsdiagramm zwischen LED und ESP32

ESP32-LED-Schaltplan

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 programmiert

  • Konfigurieren Sie einen Pin des ESP32 als digitalen Ausgangspin, indem Sie die pinMode()-Funktion verwenden. Zum Beispiel der Pin GPIO18:
pinMode(18, OUTPUT);
  • Stelle die Helligkeit der LED ein, indem du ein PWM-Signal mit dem entsprechenden Tastverhältnis erzeugst und dabei die [analogWrite()]-Funktion verwendest:
analogWrite(18, brightness);

Wobei die Helligkeit ein Wert von 0 bis 255 ist.

ESP32-Code - Einfaches Fade-Beispiel

Schnelle Schritte

  • Wenn Sie ESP32 zum ersten Mal verwenden, sehen Sie sich wie man die Umgebung für ESP32 in der Arduino IDE einrichtet an.
  • Schließen Sie die Verkabelung wie im obigen Bild an.
  • Verbinden Sie das ESP32-Board mit Ihrem PC über ein Micro-USB-Kabel.
  • Öffnen Sie die Arduino IDE auf Ihrem PC.
  • Wählen Sie das richtige ESP32-Board (z. B. ESP32 Dev Module) und den COM-Port aus.
  • Kopieren Sie den untenstehenden Code und fügen Sie ihn in die Arduino IDE ein.
/* * 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-led-fade */ #define LED_PIN 18 // ESP32 pin GPIO18 connected to LED int brightness = 0; // how bright the LED is int fadeAmount = 5; // how many points to fade the LED by // the setup routine runs once when you press reset: void setup() { // declare pin GPIO18 to be an output: pinMode(LED_PIN, OUTPUT); } // the loop routine runs over and over again forever: void loop() { // set the brightness of pin GPIO18: analogWrite(LED_PIN, brightness); // change the brightness for next time through the loop: brightness = brightness + fadeAmount; // reverse the direction of the fading at the ends of the fade: if (brightness <= 0 || brightness >= 255) { fadeAmount = -fadeAmount; } // wait for 30 milliseconds to see the dimming effect delay(30); }
  • Kompilieren und Code auf dem ESP32-Board hochladen, indem Sie Upload-Schaltfläche in der Arduino IDE anklicken
Code in der Arduino-IDE hochladen
  • LED-Helligkeit anzeigen

Zeilenweise Code-Erklärung

Der obige ESP32-Code enthält eine Zeilen-für-Zeile-Erklärung. Bitte lesen Sie die Kommentare im Code!

※ Notiz:

Das obige Beispiel verwendet die delay() Funktion, um ein- und auszublenden. Die delay()-Funktion lässt die LED unsanft ein- und ausblenden und blockiert anderen Code. In den nächsten Teilen werden wir lernen, wie man sanft ein- und ausblendet, ohne anderen Code zu blockieren, indem man die millis() Funktion verwendet.

Wie man eine LED über einen Zeitraum hinweg sanft einblendet, ohne delay() zu verwenden

/* * 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-led-fade */ #define LED_PIN 18 // ESP32 pin GPIO18 connected to LED #define FADE_PEDIOD 3000 // fade time is 3 seconds unsigned long fadeStartTime; // the setup routine runs once when you press reset void setup() { pinMode(LED_PIN, OUTPUT); // declare pin GPIO18 to be an output fadeStartTime = millis(); } // fade-in in loop, and restart after finishing void loop() { unsigned long progress = millis() - fadeStartTime; if (progress <= FADE_PEDIOD) { long brightness = map(progress, 0, FADE_PEDIOD, 0, 255); analogWrite(LED_PIN, brightness); } else { fadeStartTime = millis(); // restart fade again } }

Wie man eine LED in einem bestimmten Zeitraum ausblendet, ohne delay() zu verwenden

/* * 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-led-fade */ #define LED_PIN 18 // ESP32 pin GPIO18 connected to LED #define FADE_PEDIOD 3000 // fade time is 3 seconds unsigned long fadeStartTime; // the setup routine runs once when you press reset void setup() { pinMode(LED_PIN, OUTPUT); // declare pin GPIO18 to be an output fadeStartTime = millis(); } // fade-out in loop, and restart after finishing void loop() { unsigned long progress = millis() - fadeStartTime; if (progress <= FADE_PEDIOD) { long brightness = 255 - map(progress, 0, FADE_PEDIOD, 0, 255); analogWrite(LED_PIN, brightness); } else { fadeStartTime = millis(); // restart fade again } }

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!