ESP8266 - LED - Fade-Effekt

Dieses Tutorial zeigt Ihnen, wie man den ESP8266 programmiert, um eine LED zu dimmen. Wir werden drei Beispiele durchgehen und die Unterschiede zwischen ihnen vergleichen:

Erforderliche Hardware

1×ESP8266 NodeMCU
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×(Empfohlen) Schraubklemmen-Erweiterungsboard für ESP8266
1×(Empfohlen) Stromverteiler für ESP8266 Typ-C

Oder Sie können die folgenden Kits kaufen:

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

Die LED-Pinbelegung

LED hat zwei Pins:

  • Kathode(-) Pin: muss mit GND (0 V) verbunden werden.
  • Anode(+) Pin: wird verwendet, um den Zustand der LEDs zu steuern.
LED-Pinbelegung

Wie es funktioniert

Sobald die Kathode (-) mit GND verbunden ist:

  • Wenn GND mit der Anode (+) verbunden wird, ist die LED AUS.
  • Wenn VCC mit der Anode (+) verbunden wird, wird die LED eingeschaltet.
  • Durch das Generieren eines PWM-Signals an der Anode (+) wird die Helligkeit der LED entsprechend dem PWM-Wert angepasst. Dieser Wert kann von 0 bis 255 reichen, wobei ein höherer Wert zu einer helleren LED führt und ein niedrigerer Wert die LED dunkler macht.
  • Wenn der PWM-Wert 0 ist, entspricht dies dem Anschluss an GND, daher ist die LED AUS.
  • Wenn der PWM-Wert 255 ist, entspricht dies dem Anschluss an VCC, daher ist die LED vollständig eingeschaltet.
Wie LEDs funktionieren

※ Notiz:

Bei den meisten LEDs muss zwischen der Anode (+) und VCC ein Widerstand platziert werden. Der Wert dieses Widerstands wird durch die Spezifikationen der LED bestimmt.

ESP8266 - LED dimmen

Einige der ESP8266-Pins können so programmiert werden, dass sie ein PWM-Signal erzeugen. Den Anodenpin (+) der LED an einen ESP8266-Pin anschließen, die Kathode (-) an GND verbinden und den ESP8266-Pin so zu programmieren, dass PWM erzeugt wird, ermöglicht das Dimmen der LED.

Verdrahtungsdiagramm

ESP8266 NodeMCU LED-Schaltplan

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

Weitere Informationen finden Sie unter ESP8266-Pinbelegung und wie man ESP8266 und andere Komponenten mit Strom versorgt.

Wie man programmiert

  • Stellen Sie den Pin eines ESP8266 mit der Funktion pinMode() in den digitalen Ausgangsmodus. Als Beispiel kann dies für den Pin D5 erfolgen:
pinMode(D5, OUTPUT);
  • Passen Sie die Helligkeit der LED an, indem Sie ein PWM-Signal mit der analogWrite()-Funktion erzeugen.
analogWrite(D5, brightness);

Die Helligkeit kann von 0 bis 255 reichen.

ESP8266-Code - Fade-Beispiel aus der Arduino IDE

Schnelle Schritte

Um mit dem ESP8266 in der Arduino-IDE zu beginnen, befolgen Sie diese Schritte:

  • Schauen Sie sich das Wie man die Umgebung für ESP8266 in der Arduino-IDE einrichtet Tutorial an, falls Sie ESP8266 zum ersten Mal verwenden.
  • Verbinden Sie die Komponenten wie im Diagramm gezeigt.
  • Schließen Sie das ESP8266-Board mit einem USB-Kabel an Ihren Computer an.
  • Öffnen Sie die Arduino-IDE auf Ihrem Computer.
  • Wählen Sie das richtige ESP8266-Board, z. B. NodeMCU 1.0 (ESP-12E Modul), sowie den entsprechenden COM-Port.
  • Verbinden Sie das ESP8266-Board mit Ihrem Computer über ein USB-Kabel.
  • Öffnen Sie die Arduino-IDE und wählen Sie das richtige Board und den richtigen Port aus.
  • Kopieren Sie den folgenden Code und fügen Sie ihn in die Arduino-IDE ein.
/* * Dieser ESP8266 NodeMCU Code wurde von newbiely.de entwickelt * Dieser ESP8266 NodeMCU 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/esp8266/esp8266-led-fade */ #define LED_PIN D5 // The ESP8266 pin connected to the LED int brightness = 0; // how bright the LED is int fade_step = 5; // how many points to fade the LED by // The setup function runs once on reset or power-up void setup() { // Configure the ESP8266 pin as a digital output pin pinMode(LED_PIN, OUTPUT); } // The loop function repeats indefinitely. void loop() { // set the brightness of pin 9: analogWrite(LED_PIN, brightness); // change the brightness for next time through the loop: brightness = brightness + fade_step; // reverse the direction of the fading at the ends of the fade: if (brightness <= 0 || brightness >= 255) { fade_step = -fade_step; } // wait for 30 milliseconds to see the dimming effect delay(30); }
  • Klicke auf die Upload-Schaltfläche in der Arduino IDE, um den Code für das ESP8266-Board zu kompilieren und hochzuladen.
Code in der Arduino-IDE hochladen
  • Schau dir die Helligkeit der LED an.

Code-Erklärung

Schau dir die zeilenweise Erklärung an, die in den Kommentaren des Quellcodes enthalten ist!

※ Notiz:

Das obige Beispiel verwendet die Funktion delay(), um das Ein- und Ausblenden zu erreichen. Dies führt jedoch dazu, dass die LED nicht glatt ein- und ausblendet und anderen Code daran hindert, ausgeführt zu werden. In den kommenden Abschnitten werden wir lernen, wie man sanft ein- und ausblendet, ohne den übrigen Code zu unterbrechen, indem man die millis() Funktion verwendet.

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

/* * Dieser ESP8266 NodeMCU Code wurde von newbiely.de entwickelt * Dieser ESP8266 NodeMCU 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/esp8266/esp8266-led-fade */ #define LED_PIN D5 // The ESP8266 pin connected to the LED unsigned long FADE_PEDIOD = 3000; // fade time is 3 seconds unsigned long start_time; // The setup function runs once on reset or power-up void setup() { // Configure the ESP8266 pin as a digital output pin pinMode(LED_PIN, OUTPUT); start_time = millis(); } // fade-in in loop, and restart after finishing void loop() { unsigned long progress = millis() - start_time; if (progress <= FADE_PEDIOD) { long brightness = map(progress, 0, FADE_PEDIOD, 0, 255); analogWrite(LED_PIN, brightness); } else { start_time = millis(); // restart fade again } }

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

/* * Dieser ESP8266 NodeMCU Code wurde von newbiely.de entwickelt * Dieser ESP8266 NodeMCU 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/esp8266/esp8266-led-fade */ #define LED_PIN D5 // The ESP8266 pin connected to the LED unsigned long FADE_PEDIOD = 3000; // fade time is 3 seconds unsigned long start_time; // The setup function runs once on reset or power-up void setup() { // Configure the ESP8266 pin as a digital output pin pinMode(LED_PIN, OUTPUT); start_time = millis(); } // fade-out in loop, and restart after finishing void loop() { unsigned long progress = millis() - start_time; if (progress <= FADE_PEDIOD) { long brightness = 255 - map(progress, 0, FADE_PEDIOD, 0, 255); analogWrite(LED_PIN, brightness); } else { start_time = 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.

Zusätzliches Wissen

  • Die Funktion analogWrite() im ESP8266 kann ein PWM-Signal erzeugen, das eine LED sanft dimmt. Allerdings kann eine maßgeschneiderte Funktion mit fortgeschrittenem Wissen ein PWM-Signal mit niedriger Frequenz erzeugen, wodurch die LED blinkt statt zu dimmen.
  • Zusammenfassend können PWM-Signale im ESP8266 für eine Vielzahl von Zwecken verwendet werden, wie z. B. zur Steuerung von Servomotoren, Gleichstrommotoren, zur Tonerzeugung mit einem Piezo-Buzzer, zum Dimmen von LEDs und zum Blinken von LEDs.

Funktionsreferenzen

※ 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!