Bemerkung
Hallo, willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasten-Gemeinschaft auf Facebook! Vertiefen Sie sich mit anderen Enthusiasten in die Welt von Raspberry Pi, Arduino und ESP32.
Warum beitreten?
Expertenunterstützung: Lösen Sie Probleme nach dem Verkauf und technische Herausforderungen mit Hilfe unserer Gemeinschaft und unseres Teams.
Lernen & Teilen: Austausch von Tipps und Anleitungen zur Verbesserung Ihrer Fähigkeiten.
Exklusive Vorschauen: Erhalten Sie frühzeitigen Zugang zu neuen Produktankündigungen und exklusiven Einblicken.
Spezialrabatte: Genießen Sie exklusive Rabatte auf unsere neuesten Produkte.
Festliche Aktionen und Giveaways: Nehmen Sie an Giveaways und Feiertagsaktionen teil.
👉 Sind Sie bereit, mit uns zu erkunden und zu kreieren? Klicken Sie auf [hier] und treten Sie heute bei!
2.3 LED-Helligkeit mit PWM steuern
In dieser Lektion lernen wir, wie man die Helligkeit einer LED mithilfe der Pulsweitenmodulation (PWM) auf dem Raspberry Pi Pico 2 steuert. PWM ist eine grundlegende Technik in der Elektronik, die es ermöglicht, Geräte wie LEDs und Motoren mit variablen Intensitäten zu betreiben.
Was ist PWM?
Pulsweitenmodulation (PWM) ist eine Methode zur Steuerung der Leistung, die an ein elektronisches Gerät geliefert wird. Dabei wird die Spannung in schnellen Intervallen ein- und ausgeschaltet. Die „Breite“ des Impulses (die Dauer, in der er eingeschaltet ist) bestimmt, wie viel Leistung das Gerät erhält.

Duty Cycle (Tastverhältnis): Der prozentuale Anteil eines Zyklus, in dem das Signal aktiv ist. Ein 100 %-Duty Cycle bedeutet, dass das Signal immer an ist, ein 0 %-Duty Cycle, dass es immer aus ist.
Frequenz: Gibt an, wie oft das Signal pro Sekunde zwischen Ein und Aus wechselt.
Durch Anpassen des Duty Cycles können wir analoge Signale mit digitalen Mitteln simulieren. Zum Beispiel: Wenn eine LED sehr schnell ein- und ausgeschaltet wird, nimmt unser Auge je nach Ein-Zeit der LED eine unterschiedliche Helligkeit wahr.
Warum PWM verwenden?
LED-Helligkeitssteuerung: Stufenlose Anpassung der LED-Helligkeit.
Motorsteuerung: Kontrolle der Geschwindigkeit von Gleichstrommotoren.
Effizienz: PWM ist energieeffizienter als variable Widerstände, da weniger Energie in Wärme umgewandelt wird.
PWM auf dem Raspberry Pi Pico 2
Der Raspberry Pi Pico 2 verfügt über PWM-Funktionalität auf allen GPIO-Pins, jedoch gibt es insgesamt 8 PWM-Slices (PWM0 bis PWM7), wobei jeder Slice über zwei Kanäle (A und B) verfügt. Dies ergibt 16 unabhängige PWM-Ausgänge.
Bemerkung
Pins, die denselben PWM-Slice verwenden (z. B. GP0 und GP16), können unterschiedliche Duty Cycles haben, aber nicht unterschiedliche Frequenzen.
Benötigte Komponenten
Für dieses Projekt benötigen wir die folgenden Bauteile.
Ein komplettes Kit ist besonders praktisch, hier ist der Link:
Name |
ENTHALTENE TEILE IM KIT |
LINK |
|---|---|---|
Newton Lab Kit |
450+ |
Alternativ können die Komponenten auch einzeln über die untenstehenden Links erworben werden.
SN |
KOMPONENTE |
MENGE |
LINK |
|---|---|---|---|
1 |
1 |
||
2 |
Micro-USB-Kabel |
1 |
|
3 |
1 |
||
4 |
Mehrere |
||
5 |
1 (220Ω) |
||
6 |
1 |
Schaltplan

Verdrahtungsdiagramm
Code schreiben
Bemerkung
Sie können die Datei
2.3_fading_led.inoaus dem Verzeichnisnewton-lab-kit/arduino/2.3_fading_ledöffnen.Oder diesen Code in die Arduino IDE kopieren.
Wählen Sie das Raspberry Pi Pico 2 Board und den richtigen Port aus und klicken Sie auf „Hochladen“.
const int ledPin = 15; // GPIO-Pin für die LED
void setup() {
pinMode(ledPin, OUTPUT); // GPIO-Pin als Ausgang festlegen
}
void loop() {
// Helligkeit erhöhen
for (int value = 0; value <= 255; value += 5) {
analogWrite(ledPin, value); // Helligkeit setzen
delay(30); // 30 Millisekunden warten
}
// Helligkeit verringern
for (int value = 255; value >= 0; value -= 5) {
analogWrite(ledPin, value);
delay(30);
}
}
Nach dem Hochladen des Codes sollte die LED langsam heller werden und dann wieder dunkler werden, wodurch ein sanfter Pulsierungseffekt entsteht.
Verständnis des Codes
LED-Pin definieren:
Erstellt eine Konstante
ledPinmit dem Wert 15, welcher dem GPIO-Pin 15 entspricht.const int ledPin = 15;
Pin initialisieren:
Die
setup()-Funktion wird einmal beim Start des Programms ausgeführt. DerledPinwird als Ausgang definiert.void setup() { pinMode(ledPin, OUTPUT); }
Loop-Funktion:
Die
loop()-Funktion wird kontinuierlich wiederholt. Sie enthält zweifor-Schleifen:Helligkeit erhöhen: Startet mit
value = 0und erhöht sich in 5er-Schritten bis 255.Helligkeit verringern: Startet mit
value = 255und verringert sich wieder in 5er-Schritten bis 0.
Die Funktion
analogWrite()schreibt ein PWM-Signal an den angegebenen Pin. Der Wert reicht von 0 (aus) bis 255 (maximale Helligkeit).delay(30);sorgt für eine sichtbare Veränderung der Helligkeit.
void loop() { // Increase brightness for (int value = 0; value <= 255; value += 5) { analogWrite(ledPin, value); delay(30); } // Decrease brightness for (int value = 255; value >= 0; value -= 5) { analogWrite(ledPin, value); delay(30); } }
Zusätzliche Tipps
Experimentieren Sie: Ändern Sie die Inkrementwerte oder die Verzögerungszeit, um die Geschwindigkeit der Helligkeitsänderung zu steuern.
PWM-Einschränkungen verstehen: Obwohl alle GPIO-Pins des Pico PWM unterstützen, können Pins desselben PWM-Slices nur unterschiedliche Duty Cycles, aber nicht unterschiedliche Frequenzen haben.
Sicherheit beachten: Verwenden Sie immer einen Vorwiderstand mit der LED, um Schäden durch zu hohen Strom zu vermeiden.
Fazit
Sie haben erfolgreich einen sanften LED-Dimmeffekt mithilfe von PWM auf dem Raspberry Pi Pico 2 erstellt. Dieses Projekt demonstriert, wie PWM zur Simulation analoger Signale mit digitalen Mitteln genutzt wird – eine grundlegende Technik in der Mikrocontroller-Programmierung.

