Raspberry Pi Pico: LED dimmen mit Potentiometer

Steuere die Helligkeit einer LED mit einem Potentiometer und PWM auf dem Raspberry Pi Pico. Folge unserer Schritt-für-Schritt-Anleitung!

Was brauchst du?

  • Raspberry Pi Pico
  • Micro-USB-Kabel
  • LED (z. B. rot)
  • Potentiometer (z. B. 10 kOhm)
  • Widerstand (z. B. 330 Ω)
  • Breadboard und Jumper-Kabel

Schritt 1: Schaltung aufbauen

  1. Verbinde die LED mit dem Pico:
    • Schließe den positiven Pin (Anode) der LED über einen 330-Ω-Widerstand an einen GPIO (z. B. GPIO 13) an.
    • Verbinde den negativen Pin (Kathode) der LED mit GND.
  2. Schließe das Potentiometer an:
    • Verbinde den mittleren Anschluss (Wiper) des Potentiometers mit einem Analog-Pin (z. B. GPIO 26 / ADC0).
    • Schließe einen der äußeren Pins des Potentiometers an 3.3V an.
    • Verbinde den anderen äußeren Pin mit GND.

So kann die Schaltung aussehen:

Schritt 2: PWM (Pulsweitenmodulation)

PWM steht für Pulsweitenmodulation und ist eine Technik, die es ermöglicht, die durchschnittliche Spannung an einer Last zu steuern, indem die Pulsbreite eines Signals variiert wird. Anstatt die Spannung kontinuierlich zu ändern, wird ein Signal erzeugt, das zwischen „ein“ und „aus“ schaltet, wobei der Anteil der „Ein“-Phase bestimmt, wie viel Leistung an die Last abgegeben wird.

Das bedeutet, dass du mit PWM die Helligkeit einer LED steuern kannst, indem du die Zeit, in der die LED „ein“ ist, anpasst. Eine längere „Ein“-Phase führt zu einer höheren Helligkeit, während eine kürzere „Ein“-Phase die Helligkeit verringert. Auf diese Weise kannst du die Helligkeit der LED feinjustieren, ohne die Spannung direkt ändern zu müssen.

  • Duty-Cycle 0%: Signal ist immer aus (LED aus).
  • Duty-Cycle 50%: Signal ist halb an und halb aus (LED halb hell).
  • Duty-Cycle 100%: Signal ist immer an (LED voll hell).

Der Raspberry Pi Pico verwendet duty_u16 mit einem 16-Bit-Wertebereich (0-65535), um eine feine Helligkeitsregelung zu ermöglichen.

Schritt 3: Code zum LED-Dimmen

Hier ist der MicroPython-Code, den du verwenden kannst, um die Helligkeit der LED mit dem Potentiometer zu steuern:

from machine import ADC, Pin, PWM
from time import sleep

# Setup für Potentiometer (ADC)
pot = ADC(26)  # GP26 ist ADC0

# Setup für LED (PWM)
led = PWM(Pin(13))  # GP13 als PWM-Ausgang
led.freq(1000)  # PWM-Frequenz auf 1 kHz

# Hauptschleife
while True:
    # Analogen Wert vom Potentiometer lesen (0-65535)
    pot_value = pot.read_u16()    

    # PWM-Wert an die LED senden
    led.duty_u16(pot_value)    

    # Kurze Verzögerung, um CPU-Auslastung zu reduzieren
    sleep(0.01)

Erklärung des Codes

  1. Bibliotheken importieren:
    • ADC: Diese Bibliothek wird verwendet, um den analogen Wert vom Potentiometer zu lesen.
    • Pin: Diese Bibliothek steuert die GPIO-Pins des Raspberry Pi Pico.
    • PWM: Diese Bibliothek steuert die PWM-Funktion für die LED.
    • sleep: Diese Funktion sorgt für eine kurze Verzögerung, um die CPU-Auslastung zu verringern.
  2. Potentiometer einrichten: Der ADC-Pin 26 (GP26) des Raspberry Pi Pico wird verwendet, um den Wert des Potentiometers zu lesen. Der Wert, den du vom Potentiometer erhältst, reicht von 0 bis 65535, wobei 0 für die minimale Spannung und 65535 für die maximale Spannung steht.
  3. LED einrichten: Der Pin 13 (GP13) wird für die PWM-Ausgabe an die LED verwendet. Wir setzen die PWM-Frequenz auf 1 kHz, was eine angenehme Geschwindigkeit für die PWM-Modulation ist.
  4. Hauptschleife: In der Schleife wird kontinuierlich der Wert des Potentiometers gelesen und in einen PWM-Wert umgewandelt. Dieser Wert wird dann an die LED gesendet, um die Helligkeit anzupassen. Die kurze Verzögerung am Ende jeder Schleifeniteration hilft, die CPU-Auslastung zu reduzieren.

Fazit

Mit diesem einfachen Projekt kannst du lernen, wie man die Helligkeit einer LED mithilfe eines Potentiometers und PWM auf dem Raspberry Pi Pico steuert. Es ist eine großartige Möglichkeit, mehr über analoge Eingänge, PWM und die Steuerung von Hardware auf dem Pico zu erfahren.