Lektion 98-4: Dimmen einer LED-Leuchte mit Arduino: Helligkeitssteuerung
LEDs sind überall — Anzeigen, Displays, dekorative Beleuchtung — aber die meisten Anfänger hören damit auf, eine einfach ein- und auszuschalten. Dieses Projekt geht den nächsten Schritt: ein LED mithilfe der integrierten PWM-Fähigkeit (Pulsweitenmodulation) des Arduino sanft ein- und ausblenden. Statt eines harten Blinkens erhältst du einen allmählichen Anstieg und Abfall der Helligkeit, der natürliches Dimmen, Atemeffekte und eine analoge Steuerung von einem rein digitalen Pin nachahmt. Es ist eines der befriedigendsten ersten Projekte, weil du das Ergebnis sofort sehen kannst, und dieselbe Technik bildet die Grundlage für Motordrehzahlsteuerung, Audiovolumen und Hintergrundbeleuchtungs-Dimmung in echten Produkten.
Sobald du das Fading verstanden hast, kannst du es auf eine Vielzahl praktischer Projekte anwenden:
- Erstellen einer „atmenden" Statusanzeige an einem Gerät, die sanft pulsiert, statt ablenkend zu blinken
- Automatisches Dimmen eines LED-Nachtlichts basierend auf Umgebungslicht oder Tageszeit
- Steuern der Helligkeit einer Hintergrundbeleuchtung auf einem LCD- oder OLED-Display
- Bauen von Stimmungslicht oder dekorativen Lampen mit sanften Übergängen zwischen Helligkeitsstufen
- Simulieren eines langsamen Sonnenaufgangs-Weckers, der allmählich heller wird, um dich natürlich zu wecken
- Hinzufügen von Drehzahlsteuerung zu kleinen Gleichstrommotoren oder Lüftern (dasselbe PWM-Prinzip gilt)
Dieses Tutorial ist Teil des Robojax Arduino Step-by-Step-Kurses und behandelt speziell Projekt 4 von 10: Fading eines LED-Lichts mit Arduino. Das vollständige Programm steht unten im Artikel zum Download bereit.
Hardware und Komponenten
Die Teileliste für dieses Projekt ist minimal — wenn du schon einmal mit Arduino gearbeitet hast, hast du wahrscheinlich bereits alles, was du brauchst:
- 1× Arduino-Board (Uno, Nano, Mega oder ein beliebiges kompatibles Board)
- 1× LED (5mm oder 3mm, beliebige Farbe)
- 1× Widerstand (200Ω bis 1000Ω — ein Bereich von 300Ω bis 1kΩ funktioniert gut)
- Steckbrett und DuPont-Jumperkabel
- USB-Kabel zum Programmieren und für die Stromversorgung
Ein wichtiger Hinweis zum LED: Das längere Bein ist die Anode (positiv), und das kürzere Bein — oder die Seite mit der flachen Kante am Kunststoffgehäuse — ist die Kathode (negativ). Wenn du das vertauschst, leuchtet das LED einfach nicht, also überprüfe es vor dem Einschalten.
Für den Widerstandswert geht das Transkript die Mathematik bei (im Video bei 03:49) durch: Ein typisches LED hat einen Spannungsabfall von etwa 2V und benötigt ungefähr 10mA Strom. Bei einer 5V-Versorgung müssen die verbleibenden 3V über den Widerstand abfallen, was R = V/I = 3V / 0,01A = 300Ω ergibt. In der Praxis funktioniert alles von 300Ω bis 1000Ω — höhere Werte erzeugen lediglich ein dunkleres LED. Für das Fading ist das tatsächlich in Ordnung, da du die Helligkeit ohnehin variierst.
Verkabelungsanleitung
Die Verkabelung ist so einfach wie nur möglich. Die Anode des LED wird über einen Widerstand mit einem PWM-fähigen Pin am Arduino verbunden — in diesem Projekt Pin 3. Die Kathode wird mit Masse verbunden.
Warum speziell Pin 3? Weil nicht alle Arduino-Pins PWM unterstützen. Auf den meisten Arduino-Boards sind die PWM-fähigen Pins mit einem Tilde-Symbol (~) gekennzeichnet — typischerweise die Pins 3, 5, 6, 9, 10 und 11 auf einem Uno. Wenn du einen Nicht-PWM-Pin verwendest, erzeugt analogWrite() keine variable Ausgabe; das LED ist dann einfach an oder aus.
Verbinde die Schaltung wie folgt:
- Stecke das LED in das Steckbrett und beachte, welches Bein die Anode (länger) und welches die Kathode (kürzer/flache Seite) ist.
- Verbinde die Anode des LED über den Widerstand mit Arduino-Pin 3.
- Verbinde die Kathode des LED mit dem GND-Pin des Arduino.
- Schließe den Arduino über USB an deinen Computer an.
Code-Erklärung
Der Sketch für dieses Projekt basiert auf dem klassischen Arduino-„Fade"-Beispiel mit ein paar Anpassungen. Anstatt jede Zeile zu erklären, konzentrieren wir uns auf die Teile, die du für deine eigenen Experimente anpassen möchtest.
Benutzerkonfigurierbare Variablen
Am Anfang des Codes steuern drei Variablen das gesamte Verhalten:
int led = 3; // the PWM pin the LED is attached to
int brightness = 0; // how bright the LED is
int fadeAmount = 3; // how many points to fade the LED byled— Dies legt fest, mit welchem Pin die LED verbunden ist. Der Standard ist Pin 3, aber du kannst ihn auf jeden PWM-fähigen Pin ändern (auf deinem Board mit ~ markiert). Wenn du die LED an einen anderen Pin verschiebst, aktualisiere diesen Wert entsprechend.brightness— Dies ist die aktuelle Helligkeitsstufe, die von 0 (aus) bis 255 (volle Helligkeit) reicht. Der Code startet bei 0, aber du könntest an jedem Punkt in diesem Bereich beginnen.fadeAmount— Dies ist der interessanteste Wert zum Experimentieren. Er steuert, wie viele Helligkeits-„Schritte“ pro Zyklus gemacht werden. Ein kleiner Wert wie 3 erzeugt ein langsames, allmähliches Fading. Ein größerer Wert wie 20 lässt die LED sehr schnell ein- und ausblenden. Das Transkript demonstriert dies bei (im Video bei 22:37) — die Änderung von 5 auf 20 beschleunigt den Effekt dramatisch.
Wie das Fading funktioniert
Der Kern des Fadings findet in zwei Zeilen innerhalb von loop() statt:
analogWrite(led, brightness);
brightness = brightness + fadeAmount;
Bei jedem Durchlauf der Schleife wird der aktuelle Helligkeitswert mit analogWrite() an die LED geschrieben, dann wird die Helligkeit um fadeAmount erhöht. Die Funktion analogWrite() verwendet PWM, um eine analoge Spannung zu simulieren — sie schaltet den Pin schnell ein und aus, und das Verhältnis von Einschaltzeit zu Ausschaltzeit bestimmt die wahrgenommene Helligkeit.
Wenn die Helligkeit entweder 0 oder 255 erreicht, kehrt der Code die Richtung um, indem er das Vorzeichen von fadeAmount umdreht:
if (brightness <= 0 || brightness >= 255) {
fadeAmount = -fadeAmount;
}
Das ist es, was die LED einblenden, dann ausblenden und dann wieder einblenden lässt — ein kontinuierlicher Atemzyklus. Das delay(30) am Ende der Schleife steuert die Gesamtgeschwindigkeit der Animation. Eine kürzere Verzögerung macht das Fading schneller; eine längere Verzögerung verlangsamt es.
Experimentieren mit den Werten
Zwei Variablen geben dir die meiste Kontrolle über den visuellen Effekt:
- Erhöhe
fadeAmountfür ein schnelleres, dramatischeres Fading. Versuche 10 oder 20. - Verringere
fadeAmountfür einen langsamen, sanften Atemeffekt. Versuche 1 oder 2. - Passe den
delay()-Wert an, um das Tempo zu ändern. Kleinere Verzögerungen machen den gesamten Zyklus schneller; größere Verzögerungen dehnen ihn aus.
Die Kombination eines kleinen fadeAmount mit einer kurzen Verzögerung erzeugt ein extrem weiches, fast organisches Fading — ideal für Ambientebeleuchtung. Ein großer fadeAmount mit einer kurzen Verzögerung erzeugt einen schnellen Pulsierungseffekt.
Live-Projektdemonstration
Sobald der Code hochgeladen ist, siehst du, wie die LED langsam von aus bis zur vollen Helligkeit aufleuchtet und dann wieder dunkler wird, und das endlos wiederholt. Das Transkript zeigt das Standardverhalten bei (im Video bei 22:25) — ein weiches, mäßig schnelles Fading.
Wenn fadeAmount auf 20 geändert wird, blendet die LED sehr schnell ein und aus — fast wie ein Flackern. Bei 3 dauert das Fading merklich länger und erzeugt einen entspannten, allmählichen Übergang. Dies wird im Video bei (im Video bei 23:02) deutlich demonstriert.
Das Schöne an diesem Projekt ist, dass du die Auswirkung deiner Codeänderungen sofort sehen kannst — keine Verdrahtungsänderungen nötig, nur die Variablen bearbeiten und erneut hochladen. Diese enge Rückkopplungsschleife macht es zu einer hervorragenden Möglichkeit, ein Gefühl dafür zu entwickeln, wie PWM und Timing zusammenspielen.
Wenn du dies weiterführen möchtest, indem du das Fading mit einem Drucktaster auslöst, anstatt es kontinuierlich laufen zu lassen, wird das in einem separaten Tutorial behandelt — siehe den Abschnitt mit verwandten Projekten unten.
Verwandte Projekte aus diesem Video
- Lektion 98-1: Wie man eine LED mit Arduino ein- und ausschaltet
- Lektion 98-2: Wie man eine LED mit einem Drucktaster und Arduino ein- und ausschaltet
- Lektion 98-3: Wie man eine Toggle-LED mit einem Drucktaster und Arduino ein-/ausschaltet
- Lektion 98-5: Licht dimmen, wenn ein Taster gedrückt wird, mit Arduino
- Lektion 98-6: Wipp-LED-Spiel mit Arduino
- Lektion 98-7: Lauflicht mit Arduino und 5 LEDs
- Lektion 98-8: Lauflicht mit Drucktaster und LEDs mit Arduino
- Lektion 98-9: LED-Spannungspegelmesser mit Arduino oder Lauflicht mit Potentiometer
- Lektion 98-10: Arduino-Ampel
Kapitel
- [00:00] Überblick über die 10 Arduino-LED-Projekte
- [01:22] Einführung in den Kurs und benötigte Komponenten
- [02:29] LEDs verstehen: Symbole, Polarität und Typen
- [03:49] Berechnung des LED-Widerstandswerts mit dem Ohmschen Gesetz
- [05:53] Projekt 1: Eine LED ein- und ausschalten
- [12:43] Projekt 2: LED-Steuerung mit einem Drucktaster
- [17:13] Projekt 3: Toggle-LED mit Drucktaster
- [20:12] Projekt 4: Eine LED dimmen — Code-Durchlauf
- [22:25] Fading-Demonstration und Anpassung der Fading-Geschwindigkeit
- [23:20] Projekt 5: LED-Dimming mit Drucktaster-Auslösung
- [27:32] Projekt 6: Wipp-LED-Effekt
- [30:47] Projekt 7: Lauflicht mit 5 LEDs
- [36:41] Projekt 8: Lauflicht gesteuert durch Drucktaster
- [42:25] Projekt 9: LED-Spannungspegelmesser mit Potentiometer
- [49:25] Projekt 10: Arduino-Ampel
This code has not been parsed yet. Please return to the admin panel to parse it.
Dinge, die Sie vielleicht brauchen
-
AmazonSunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
Amazon
-
Amazon
-
Amazon
Ressourcen & Referenzen
-
DokumentationDokumentation für das SunFounder 3 in 1 IoT/Smarte Auto/Lernkitdocs.sunfounder.com
-
Extern
-
Extern
-
Extern
Dateien📁
Arduino-Bibliotheken (zip)
-
SunFounder 3-in-1 Smart Car Lernkit Quellcode
3in1-kit-main-v2.zip12.80 MB
|||Benutzerhandbuch
-
SunFounder 3-in-1 Arduino Smart Car MontageanleitungDieses Dokument zeigt die Schritt-für-Schritt-Montage des SunFounder 3-in-1 Arduino Smart Car
SunFounder_car_assembly_manual.pdf1.20 MB