2. Arduino - Fade

Das Arduino Fade Programm ist ein großartiges Beispiel für die einfache, aber wirkungsvolle PWM Nutzung in der Mikrocontroller-Programmierung.
Es zeigt, wie man die Helligkeit einer LED stufenlos verändert, und bietet damit eine Einführung in die Funktionalität von PWM (Pulse Width Modulation). Lass uns das einmal mit Hilfe eines Arduino und einer LED durchgehen.
1. Einführung
2. Komponenten und Aufbau
3. Der Arduino „Fade“-Sketch
4. Funktionsweise des Sketches
5. PWM und seine Bedeutung
6. Anpassungen und Erweiterungen
7. Praxisbeispiele
8. Fazit
1. Einführung
Der Arduino Fade Sketch demonstriert die Nutzung von PWM, um die Helligkeit einer LED kontinuierlich zu verändern. Diese Art von Steuerung ist in vielen Anwendungen nützlich, von der Beleuchtung bis zur Motorsteuerung. PWM ermöglicht es, analoge Ergebnisse mit digitalen Mitteln zu erzeugen, indem ein digitaler Ausgang schnell ein- und ausgeschaltet wird. Neben dem Arduino Blink Programm stellt es eine weitere Art der LED Ansteuerung dar.
2. Komponenten und Aufbau
Um dieses Projekt umzusetzen, benötigt man einige grundlegende Komponenten:
- Arduino Uno (oder ein anderes kompatibles Board, z.B. Arduino Mega)
- LED
- 220 Ohm Widerstand
- Steckbrett und Verbindungskabel
Der Aufbau der Komponenten ist gleich zum Arduino Blink Projekt. Hier aber nochmal dargestellt.

3. Der Arduino „Fade“-Sketch
Der eigentliche Sketch ist recht einfach und kann wie folgt dargestellt werden:
int led = 9; // Die LED ist mit dem digitalen Pin 9 verbunden
int brightness = 0; // Helligkeitswert (0-255)
int fadeAmount = 5; // Helligkeitsänderung pro Intervall
void setup() {
pinMode(led, OUTPUT); // Pin als Ausgang deklarieren
}
void loop() {
analogWrite(led, brightness); // Helligkeit der LED einstellen
brightness = brightness + fadeAmount; // Helligkeit ändern
if (brightness = 255) { // Richtung der Änderung umkehren, wenn die Grenzen erreicht werden
fadeAmount = -fadeAmount;
}
delay(30); // Kurz warten, bevor die Helligkeit erneut geändert wird
}
Ihr findet diesen Sketch auch ganz einfach in der Arduino IDE. Gehe dazu auf „Datei“ > „Beispiele“ > „01.Basics“ und wähle als erstes einfaches Beispiel „Fade“ aus.

.
4. Funktionsweise des Sketches
In diesem Sketch passiert Folgendes:
int led = 9; // Die LED ist mit dem digitalen Pin 9 verbunden
int brightness = 0; // Helligkeitswert (0-255)
int fadeAmount = 5; // Helligkeitsänderung pro Intervall
Im Kopfbereich werden 3 Integer Variablen definiert: led für Pinbelegung der LED, brightness für Helligkeitswert und fadeAmount für die Helligkeitsänderung pro Durchlauf des Loops.
void setup() {
pinMode(led, OUTPUT); // Pin als Ausgang deklarieren
}
Setup-Funktion: Der Pin 9, an dem die LED angeschlossen ist, wird als Ausgang konfiguriert.
void loop() {
analogWrite(led, brightness); // Helligkeit der LED einstellen
brightness = brightness + fadeAmount; // Helligkeit ändern
if (brightness = 255) { // Richtung der Änderung umkehren, wenn die Grenzen erreicht werden
fadeAmount = -fadeAmount;
}
delay(30); // Kurz warten, bevor die Helligkeit erneut geändert wird
}
Loop-Funktion: Die analogWrite-Funktion wird verwendet, um die LED-Helligkeit zu setzen. Die Helligkeit wird dann um den Wert von fadeAmount erhöht oder verringert. Wenn die Helligkeit den Maximal- oder Minimalwert erreicht, kehrt sich die Richtung der Änderung um. Eine kurze Verzögerung (delay(30)) sorgt dafür, dass die LED allmählich heller und dunkler wird.
Zerlegen wir nun mal den Loop-Abschnitt in seine Bestandteile, finden wir ein paar Basic's, die auch für zukünftige Projekte nützlich sein können.
brightness = brightness + fadeAmount; // Helligkeit ändern
Diese Zeile stellt eine einfache Zählfunktion um den Betrag der Variable fadeAmount dar. Hier als PWM-Rampenfunktion genutzt kann diese Funktionalität auch in anderen Zusammenhängen sinvoll sein. Zum Beispiel zum zählen von einem bestimmten Ereignis.
if (brightness = 255) {
}
Eine klassische if-Funktion (das heißt: "Wenn etwas eintritt, mache das und das"), die in diesem Fall auf die Variable "brightness" bezogen wird. Wenn die Variable "brightness" kleiner/gleich null wird oder ("||") größer/gleich 255 dann führe aus, was innerhalb der Klammern ("{}") steht.
5. PWM und seine Bedeutung
PWM ist eine Technik, bei der ein digitaler Schaltkreis verwendet wird, um eine analoge Ausgangsgröße zu erzeugen. In diesem Fall wird der LED-Ausgang schnell zwischen an und aus umgeschaltet. Durch das Verändern des Verhältnisses zwischen ein- und ausgeschaltetem Zustand (Duty Cycle genannt) kann die durchschnittliche Leistung an die LED geändert werden.
6. Anpassungen und Erweiterungen
Der „Fade“-Sketch kann leicht angepasst und erweitert werden, um komplexere Aufgaben zu erfüllen:
- Änderung der Fade-Geschwindigkeit: Durch Ändern der delay()-Zeit oder des fadeAmount-Wertes kann die Geschwindigkeit, mit der die LED ihre Helligkeit ändert, angepasst werden.
- Mehrere LEDs: Weitere LEDs können hinzugefügt werden, um komplexe Lichtmuster zu erzeugen.
- Sensorintegration: Sensoren können hinzugefügt werden, um die LED-Helligkeit basierend auf Umgebungsbedingungen zu steuern.
7. Praxisbeispiele
PWM findet sich in vielen alltäglichen Anwendungen wieder:
- Beleuchtung: LEDs in Dimmern nutzen PWM, um die Helligkeit zu steuern.
- Motorkontrolle: Elektromotoren werden oft über PWM gesteuert, um die Drehzahl zu regulieren.
- Audiogeräte: PWM kann auch in der Audiotechnik verwendet werden, um digitale Audiosignale zu erzeugen.
8. Fazit
Das „Fade“-Beispiel illustriert die grundlegenden Konzepte der PWM und zeigt, wie einfach es sein kann, mit Arduino beeindruckende Effekte zu erzielen. Es bietet eine hervorragende Grundlage für weiterführende Projekte und verdeutlicht, wie digitale Steuerungen analoge Ergebnisse liefern können.
Arduino bleibt ein mächtiges Werkzeug sowohl für Anfänger als auch für erfahrene Entwickler, und Projekte wie dieses helfen, die Grundlagen der Elektronik und Programmierung greifbar und verständlich zu machen.
Unter diesem Link findet ihr auch noch die offizielle Erklärung zum "Arduino Fade" Programm von Arduino.cc.
https://smarthome-assistant.info/2-arduino-fade/
Kommentare
Kommentar veröffentlichen