Zum Inhalt springen
LED-Widerstand So dimensionierst du den LED-Widerstand und verdrahtest LEDs korrekt mit Arduino/ESP. Rechnen, Schaltung, kurze Codebeispiele

Widerstand: LED richtig betreiben (Arduino/ESP)

Du lernst, wie du eine LED mit Vorwiderstand sicher betreibst, wie du den Widerstand berechnest und welche Werte in der Praxis funktionieren. Außerdem zeige ich dir die Verdrahtung und je ein kurzes, lauffähiges Codebeispiel für Arduino, ESP32 und ESP8266/D1 Mini.

Beispiele für die Anwendung:

  • Status-LED für Sensorzustände (an/aus, Fehler).
  • Aktivitätsanzeige für Messzyklen oder WLAN-Verbindung.
  • PWM-Dimmung für Helligkeitssteuerung.
  • Mehrfarbige Anzeigen mit mehreren LEDs (Rot/Grün).
  • Optisches Feedback bei Tastereingaben.

Eine LED benötigt einen Vorwiderstand, der den Strom begrenzt. Die Grundformel ist:


Sieh dir jetzt meinen neuen Arduino-Videokurs an: Jetzt ansehen!


R = (V_CC − V_F) / I_LED

Typische Vorwärtsspannungen (also die Spannung, die für die LED optimal ist)

  • V_F: Rot ~2,0 V
  • Grün ~2,1–2,2 V
  • Blau/Weiß ~2,8–3,2 V

Sinnvolle LED-Ströme liegen zwischen 5–20 mA; für Indikatoren reichen oft 5–10 mA (schont den Mikrocontroller-Pin).

Praxiswerte:

  • 5 V (Arduino) mit roter LED bei 15 mA → (5−2,0)/0,015 ≈ 200 Ω → nimm 220 Ω (Standardwert).
  • 3,3 V (ESP32/ESP8266) mit roter LED bei 10 mA → (3,3−2,0)/0,01 ≈ 130 Ω → nimm 150 Ω.
    Stolpersteine: LED polaritätsrichtig einbauen (Anode an Plus), ausreichende Pin-Stromgrenze beachten (meist max. ~12–20 mA pro Pin, Gesamtsumme begrenzt).

Farbringe

So liest du Farbringe. Als erstes die Orientierung: Die Toleranzfarbe (oft Gold oder Silber) kommt rechts. Lies von links nach rechts.

Am häufigsten findet man Widerstände mit vier oder fünf Ringen (Bändern)

  • 4-Band: A (1. Ziffer), B (2. Ziffer), D (Multiplikator), E (Toleranz)
  • 5-Band: A (1. Ziffer), B (2. Ziffer), C (3. Ziffer), D (Multiplikator), E (Toleranz)
FarbeABCD (×)E (±)
Kein RingXXXX20 %
SilberXXX0,0110 %
GoldXXX0,15 %
Schwarz0001X
Braun111101 %
Rot2221002 %
Orange3331kX
Gelb44410kX
Grün555100k0,5 %
Blau6661M0,25 %
Violett77710M0,1 %
Grau888100M0,05 %
Weiß9991000MX

Beispiele

  • 220 Ω ±5 % → Rot (A=2) – Rot (B=2) – Braun (D=×10) – Gold (E=±5 %).
  • 4,7 kΩ ±5 % → Gelb – Violett – Rot – Gold → 47 × 10² = 4700 Ω.
  • 4,99 kΩ ±1 % (5-Band) → Gelb – Weiß – Weiß – Braun – Braun → 499 × 10¹.

Teile (Bill of Materials):

  • 1× LED 3 mm/5 mm (Farbe nach Wahl)
  • 1× Vorwiderstand (typ. 150 Ω, 220 Ω, 330 Ω, 1 kΩ zur Auswahl)
  • 1× Arduino UNO oder ESP32 DevKit oder D1 Mini (ESP8266)
  • Breadboard + Jumper-Kabel
  • USB-Kabel zur Programmierung

Pinout & Verdrahtung:

Spannungshinweise: Arduino UNO Pins sind 5 V-Logik, ESP32/ESP8266 sind 3,3 V-Logik.

Schaltung (gemeinsam): Mikrocontroller-Pin → VorwiderstandLED Anode (+); LED Kathode (−)GND.

Arduino UNO

SignalSensor/Modul-PinBoard-PinHinweis
LED+AnodeD3Über 220 Ω an D3
LED−KathodeGNDGemeinsame Masse
Versorgung5 VNur wenn benötigt (hier nicht)

ESP32

SignalSensor/Modul-PinBoard-PinHinweis
LED+AnodeGPIO5Über 150–330 Ω an GPIO5
LED−KathodeGNDGemeinsame Masse
Versorgung3,3 VNur wenn benötigt (hier nicht)

ESP8266 / D1 Mini

SignalSensor/Modul-PinBoard-PinHinweis
LED+AnodeD5 (GPIO14)Über 150–330 Ω an D5
LED−KathodeGNDGemeinsame Masse
Versorgung3,3 VNur wenn benötigt (hier nicht)

Bibliotheken & Installation:

  • Keine Bibliothek nötig. Verwende die integrierten Funktionen pinMode() und digitalWrite() der Arduino-Core-SDKs.

Verwendung mit Arduino (UNO/Nano):

Wir schalten eine externe LED an D3. Öffne den Seriellen Monitor, um Statusmeldungen zu sehen.

// LED an D3 mit Vorwiderstand ~330 Ω // 
const int LED_PIN = 3; // Digitalpin D3 für die LED // 
void setup() { // Setup wird einmal ausgeführt // 
  Serial.begin(115200); // Seriellen Monitor starten // 
  pinMode(LED_PIN, OUTPUT); // LED-Pin als Ausgang setzen // 
  Serial.println("Arduino: LED Test startet"); // Statusmeldung // 
} // Ende setup // 
void loop() { // Hauptschleife // 
  digitalWrite(LED_PIN, HIGH); // LED ein // 
  Serial.println("LED an"); // Ausgabe zur Kontrolle // 
  delay(500); // 500 ms warten // 
  digitalWrite(LED_PIN, LOW); // LED aus // 
  Serial.println("LED aus"); // Ausgabe zur Kontrolle // 
  delay(500); // 500 ms warten // 
} // Ende loop // 

Verwendung mit ESP32:

Wir nutzen GPIO5 (unproblematischer Standard-GPIO).

// LED an GPIO5 mit Vorwiderstand 150–330 Ω // 
const int LED_PIN = 5; // ESP32 GPIO5 // 
void setup() { // Setup-Block // 
  Serial.begin(115200); // Serieller Monitor // 
  pinMode(LED_PIN, OUTPUT); // LED-Pin als Ausgang // 
  Serial.println("ESP32: LED Test startet"); // Statusausgabe // 
} // Ende setup // 
void loop() { // Hauptschleife // 
  digitalWrite(LED_PIN, HIGH); // LED ein // 
  Serial.println("LED an"); // Kontrolle // 
  delay(500); // 500 ms Pause // 
  digitalWrite(LED_PIN, LOW); // LED aus // 
  Serial.println("LED aus"); // Kontrolle // 
  delay(500); // 500 ms Pause // 
} // Ende loop // 

Verwendung mit ESP8266/NodeMCU/D1 Mini:

Wir nehmen D5 (GPIO14) für eine externe LED (vermeidet das invertierte Verhalten der Onboard-LED an D4).

// LED an D5 (GPIO14) mit Vorwiderstand 150–330 Ω // 
const int LED_PIN = D5; // D1 Mini Bezeichnung D5 (GPIO14) // 
void setup() { // Setup einmalig // 
  Serial.begin(115200); // Serieller Monitor // 
  pinMode(LED_PIN, OUTPUT); // LED-Pin als Ausgang // 
  Serial.println("ESP8266: LED Test startet"); // Statusausgabe // 
} // Ende setup // 
void loop() { // Hauptschleife // 
  digitalWrite(LED_PIN, HIGH); // LED ein // 
  Serial.println("LED an"); // Kontrolle // 
  delay(500); // 500 ms warten // 
  digitalWrite(LED_PIN, LOW); // LED aus // 
  Serial.println("LED aus"); // Kontrolle // 
  delay(500); // 500 ms warten // 
} // Ende loop // 

Troubleshooting

  • LED bleibt dunkel → Polung falsch → Anode/Kathode vertauscht, LED drehen.
  • Sehr schwaches Licht → Widerstand zu groß → Auf 220–330 Ω (5 V) bzw. 150–330 Ω (3,3 V) wechseln.
  • Keine Reaktion → Falscher Pin → Code-Pin mit tatsächlicher Verdrahtung abgleichen.
  • Board resetet beim Einschalten → Pinstrom zu hoch → LED-Strom reduzieren (größerer Widerstand), Boot-Pins meiden.
  • ESP8266 LED „verkehrt herum“ → Onboard-LED ist invertiert → Externe LED an D5 nutzen oder Logik invertieren.
  • Flackern bei langen Kabeln → Störungen → Kürzere Leitungen, saubere Masse, ggf. Pull-Down am Pin verwenden.
  • Mehrere LEDs an einem Pin → Überlast → Pins nicht parallel belasten; Treiber (Transistor/MOSFET) verwenden.

Projektideen

  • Türstatus-Anzeige: Magnetkontakt erkennt offen/zu, LED zeigt Zustand.
  • WLAN-Statusblinker (ESP): LED pulsiert beim Verbinden, dauerhaft an bei Erfolg.
  • Messzyklus-Indikator: LED blinkt, wenn neue Sensordaten vorliegen.
  • Zweifarbige Rückmeldung: Rot/Grün für Fehler/OK.
  • Taster-Feedback: Kurzer Blink bei Tastendruck.
  • PWM-Dimmung: Potentiometer steuert LED-Helligkeit.
  • Timer-Erinnerung: LED blinkt im Intervall als Erinnerung.

Weiterführend/Alternativen

  • Transistor/MOSFET (z. B. 2N2222, IRLZ44N): Für höhere Ströme oder mehrere LEDs.
  • Konstantstromtreiber: Gleichmäßige Helligkeit unabhängig von Versorgung.
  • RGB-LEDs / WS2812B: Mehrfarbige Anzeigen mit einer Datenleitung (eigene Bibliotheken nötig).

Hinweis zur Praxis: Für Indikator-LEDs genügen oft 1 mA–5 mA (nachts sehr angenehm). Wähle den größten noch ausreichend hellen Widerstand – spart Energie und schont das Board.


Wenn dir das Projekt gefallen hat und du von weiteren interessanten Projekten inspiriert werden willst, sieh dir doch mal mein neues E-Book »Arduino Projekte Volume 1« an!

  • Die beliebtesten Arduino-Projekte von StartHardware
  • Inklusive Schaltplan, Beschreibung und Code
  • Arduino-Schnellstart-Kapitel
  • Kompakter Programmierkurs


0 0 votes
Article Rating
Abonnieren
Benachrichtige mich bei

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre, wie deine Kommentardaten verarbeitet werden.

0 Comments
Newest
Oldest Most Voted
Inline Feedbacks
Alle Kommentare anzeigen
0
Ich würde mich über deine Meinung freuen.x