Bemerkung

Hallo, willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasten-Community auf Facebook! Vertiefe dich in die Welt von Raspberry Pi, Arduino und ESP32 zusammen mit anderen Enthusiasten.

Warum beitreten?

  • Expertenunterstützung: Löse Nachverkaufsprobleme und technische Herausforderungen mit Hilfe unserer Gemeinschaft und unseres Teams.

  • Lernen & Teilen: Austausch von Tipps und Tutorials zur Verbesserung deiner Fähigkeiten.

  • Exklusive Vorschauen: Erhalte frühzeitigen Zugang zu neuen Produktankündigungen und exklusiven Einblicken.

  • Spezielle Rabatte: Genieße exklusive Rabatte auf unsere neuesten Produkte.

  • Festliche Aktionen und Gewinnspiele: Nimm an Gewinnspielen und Feiertagsaktionen teil.

👉 Bereit, mit uns zu erkunden und zu kreieren? Klicke auf [hier] und trete heute bei!

2.3 LED dimmen

In dieser Lektion lernen wir, wie wir die Helligkeit einer LED mit Hilfe der Pulsweitenmodulation (PWM) auf dem Raspberry Pi Pico 2 steuern können. Dies ist eine grundlegende Technik in der Elektronik, die es uns ermöglicht, Geräte wie LEDs und Motoren mit unterschiedlichen Intensitäten zu steuern.

Was ist PWM?

Pulsweitenmodulation (PWM) ist eine Methode zur Steuerung der Leistung, die einem elektronischen Gerät zugeführt wird, indem die Leistung mit hoher Frequenz ein- und ausgeschaltet wird. Die „Breite“ des Impulses (die Dauer, in der er eingeschaltet bleibt) bestimmt, wie viel Leistung das Gerät erhält.

img_pwm_duty_cycle

  • Tastverhältnis: Der Prozentsatz einer Periode, in der ein Signal aktiv ist. Ein 100%iges Tastverhältnis bedeutet, dass das Signal immer an ist, und 0% bedeutet, dass es immer aus ist.

  • Frequenz: Wie oft das Signal pro Sekunde ein- und ausgeschaltet wird.

Durch Anpassen des Tastverhältnisses können wir einen analogen Ausgang mit digitalen Signalen simulieren. Wenn wir beispielsweise eine LED schnell ein- und ausschalten, nehmen unsere Augen je nach Dauer, wie lange die LED in jedem Zyklus eingeschaltet bleibt, unterschiedliche Helligkeitsstufen wahr.

Warum PWM verwenden?

  • LED-Helligkeitssteuerung: Stelle die Helligkeit von LEDs sanft ein.

  • Motor Geschwindigkeitskontrolle: Steuere die Geschwindigkeit von Gleichstrommotoren.

  • Effizienz: PWM ist effizienter als die Verwendung von variablen Widerständen, da sie den Energieverlust in Form von Wärme reduziert.

Verständnis von PWM auf dem Raspberry Pi Pico 2

Der Raspberry Pi Pico 2 bietet PWM-Fähigkeiten auf allen seinen GPIO-Pins, verfügt jedoch tatsächlich über 8 PWM-Slices (von PWM0 bis PWM7), die jeweils über zwei Kanäle (A und B) verfügen und somit insgesamt 16 unabhängige PWM-Ausgänge bieten.

pin_pwm

Bemerkung

Pins, die denselben PWM-Slice teilen (wie GP0 und GP16), können nicht unterschiedliche Frequenzen haben, aber sie können unterschiedliche Tastverhältnisse haben.

Was Sie benötigen

Für dieses Projekt benötigen wir die folgenden Komponenten.

Es ist definitiv praktisch, ein ganzes Kit zu kaufen, hier ist der Link:

Name

ITEMS IN THIS KIT

LINK

Newton Lab Kit

450+

Newton Lab Kit

Du kannst sie auch einzeln über die untenstehenden Links kaufen.

SN

COMPONENT

QUANTITY

LINK

1

Raspberry Pi Pico 2

1

KAUFEN

2

Micro-USB-Kabel

1

3

Steckbrett

1

KAUFEN

4

Jumperkabel

Mehrere

KAUFEN

5

Widerstand

1(220Ω)

KAUFEN

6

LED

1

KAUFEN

Schaltplan

sch_led

Verdrahtungsplan

wiring_led

Schreiben des Codes

Bemerkung

  • Öffne die Datei 2.3_fading_led.py aus dem newton-lab-kit/micropython oder kopiere den Code in Thonny, dann klicke auf „Ausführen“ oder drücke F5.

  • Stelle sicher, dass der richtige Interpreter ausgewählt ist: MicroPython (Raspberry Pi Pico).COMxx.

import machine
import utime

# Einrichten von PWM auf Pin GP15
led = machine.PWM(machine.Pin(15))
led.freq(1000)  # Frequenz auf 1000Hz setzen

# Helligkeit schrittweise erhöhen
for duty in range(0, 65536, 64):
    led.duty_u16(duty)  # Tastverhältnis einstellen (16-Bit-Wert)
    utime.sleep(0.01)   # 10ms warten

# LED ausschalten
led.duty_u16(0)

Wenn der Code läuft, wird die an Pin GP15 angeschlossene LED schrittweise von aus bis zur vollen Helligkeit heller.

Verständnis des Codes

  • Bibliotheken importieren:

    • machine: Ermöglicht Zugriff auf die Hardwarekomponenten.

    • utime: Ermöglicht es uns, Verzögerungen hinzuzufügen.

  • PWM einrichten:

    • machine.PWM(machine.Pin(15)): Initialisiert PWM auf GP15.

    • led.freq(1000): Setzt die PWM-Frequenz auf 1000Hz (1ms pro Zyklus).

  • Tastverhältnis anpassen:

    • for duty in range(0, 65536, 64): Schleife von 0 bis 65535 in Schritten von 64.

    • led.duty_u16(duty): Stellt das Tastverhältnis ein. Die Funktion duty_u16 akzeptiert einen 16-Bit-Wert (0 bis 65535), wobei 0 ein Tastverhältnis von 0% und 65535 ein Tastverhältnis von 100% bedeutet.

    • utime.sleep(0.01): Fügt eine kleine Verzögerung hinzu, damit die Änderung der Helligkeit wahrnehmbar ist.

  • LED ausschalten:

    • led.duty_u16(0): Stellt das Tastverhältnis auf 0% ein, was die LED ausschaltet.

Weitere Experimente

  • Ein- und Ausblenden: Ändere den Code, damit die LED ein- und dann ausblendet.

  • Geschwindigkeit ändern: Passe den Wert von utime.sleep() an, um zu ändern, wie schnell sich die Helligkeit ändert.

  • Verschiedene Frequenzen: Probiere verschiedene PWM-Frequenzen mit led.freq() aus, um zu sehen, wie sie die LED beeinflussen.

Fazit

PWM ist eine leistungsstarke Technik zur Steuerung von Geräten, die analoge Eingaben über digitale Ausgänge benötigen. Das Verständnis von PWM eröffnet Möglichkeiten für komplexere Projekte wie die Steuerung von Motoren, Audiosignalen und mehr.

Durch das Beherrschen der Grundlagen von PWM auf dem Raspberry Pi Pico 2 bist du auf dem besten Weg, anspruchsvollere Elektronikprojekte zu erstellen.

Referenzen