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:
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)
Farbe | A | B | C | D (×) | E (±) |
---|---|---|---|---|---|
Kein Ring | X | X | X | X | 20 % |
Silber | X | X | X | 0,01 | 10 % |
Gold | X | X | X | 0,1 | 5 % |
Schwarz | 0 | 0 | 0 | 1 | X |
Braun | 1 | 1 | 1 | 10 | 1 % |
Rot | 2 | 2 | 2 | 100 | 2 % |
Orange | 3 | 3 | 3 | 1k | X |
Gelb | 4 | 4 | 4 | 10k | X |
Grün | 5 | 5 | 5 | 100k | 0,5 % |
Blau | 6 | 6 | 6 | 1M | 0,25 % |
Violett | 7 | 7 | 7 | 10M | 0,1 % |
Grau | 8 | 8 | 8 | 100M | 0,05 % |
Weiß | 9 | 9 | 9 | 1000M | X |
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 → Vorwiderstand → LED Anode (+); LED Kathode (−) → GND.
Arduino UNO
Signal | Sensor/Modul-Pin | Board-Pin | Hinweis |
---|---|---|---|
LED+ | Anode | D3 | Über 220 Ω an D3 |
LED− | Kathode | GND | Gemeinsame Masse |
Versorgung | — | 5 V | Nur wenn benötigt (hier nicht) |
ESP32
Signal | Sensor/Modul-Pin | Board-Pin | Hinweis |
---|---|---|---|
LED+ | Anode | GPIO5 | Über 150–330 Ω an GPIO5 |
LED− | Kathode | GND | Gemeinsame Masse |
Versorgung | — | 3,3 V | Nur wenn benötigt (hier nicht) |
ESP8266 / D1 Mini
Signal | Sensor/Modul-Pin | Board-Pin | Hinweis |
---|---|---|---|
LED+ | Anode | D5 (GPIO14) | Über 150–330 Ω an D5 |
LED− | Kathode | GND | Gemeinsame Masse |
Versorgung | — | 3,3 V | Nur wenn benötigt (hier nicht) |
Bibliotheken & Installation:
- Keine Bibliothek nötig. Verwende die integrierten Funktionen
pinMode()
unddigitalWrite()
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