Raspberry Pi Pico: LED-Helligkeit mit einem Potentiometer einstellen

Im Prinzip kennt ein GPIO nur zwei Zustände: „High“ und „Low“. Also „An“ und „Aus“ oder „1“ und „0“. Es handelt sich dabei um die binäre Logik. Werte dazwischen gibt es nicht. Demnach kann man eine LED an einem GPIO-Ausgang auch nur ein- und ausschalten. Die Helligkeit der LED wird mit dem Vorwiderstand festgelegt.

Trotzdem gibt es einen Trick mit dem Du die Helligkeit einer LED steuern kannst. Das geht, in dem Du zwischen den Zuständen „1“ und „0“, also „An“ und „Aus“, so schnell hin- und herschaltest, dass Du den Schaltvorgang mit den Augen nicht sehen kann. Die Helligkeit der LED wird aber durch das Verhältnis der Dauer zwischen „0“ und „1“ eingestellt und dynamisch verändert.

Schaltung

Der schnelle Wechsel zwischen „An“ und „Aus“ lässt sich mit einem PWM-Signal realisieren. Um das Signal einzustellen verwenden wir ein Potentiometer. Das ist ein veränderbarer Widerstand. Er hat drei Anschlüsse und einen Drehknopf. Damit stellen wir das Puls-Pause-Verhältnis des PWM-Signals ein.

Aufbau und Bauteile

Raspberry Pi Pico: LED-Helligkeit mit einem Potentiometer einstellen

  • Potentiometer, 10K (103)

Programmcode für MicroPython

Im Programmcode wird die Onboard-LED mit dem PWM-Signal und ein ADC-Eingang initialisiert. Der ADC-Eingang misst den Spannungsabfall am Potentiometer und liefert ein Ganzzahl zurück.
In einer Endlosschleife wird abhängig vom ADC-Eingang das PWM-Signal (Duty-Cycle) gesetzt. Der Wert wird zusätzlich auf der Kommandozeile ausgegeben.

# Bibliotheken laden
from machine import Pin, ADC, PWM
from utime import sleep

# Initialisierung des ADC0-Eingang (GPIO26)
adc0 = ADC(0)

# Initialisierung Onboard-LED/PWM-Ausgang
pwm = PWM(Pin(25, Pin.OUT))
pwm.freq(1000)

# Wiederholung (Endlos-Schleife)
while True:
    # ADC0 lesen
    value = adc0.read_u16()
    # PWM-Duty-Cycle setzen
    pwm.duty_u16(value)
    print(value)
    sleep(0.5)

Programmcode für MicroPython mit picozero

„picozero“ ist eine Einsteiger-freundliche MicroPython-Bibliothek, um elektronische Bauteile, wie LEDs, Taster und Sensoren einfacher zu programmieren und zu steuern.

from picozero import Pot, PWMLED
from utime import sleep
pot = Pot(0)
led = PWMLED(25)
while True:
    #print(pot.value, pot.voltage)
    led.on(value=pot.value)
    sleep(0.1)

Weitere verwandte Themen:

Teilen:

Hardware-nahes Programmieren mit dem Raspberry Pi Pico und MicroPython

Elektronik-Set Pico Edition

Das "Elektronik-Set Pico Edition" ist ein Bauteile-Sortiment mit Anleitung zum Experimentieren und Programmieren mit MicroPython.

  • LED: Einschalten, ausschalten, blinken und Helligkeit steuern
  • Taster: Entprellen und Zustände anzeigen
  • LED mit Taster einschalten und ausschalten
  • Ampel- und Lauflicht-Steuerung
  • Elektronischer Würfel
  • Eigene Steuerungen programmieren

Online-Workshop Mehr Informationen Elektronik-Set jetzt bestellen

Programmieren mit dem Raspberry Pi Pico
Online-Workshop

Programmieren mit dem Raspberry Pi Pico

Online-Workshop mit einer Einführung ins Physical Computing mit Leuchtdioden, Taster und Temperatursensor.

  • Hardware-nahes Programmieren mit dem Raspberry Pi Pico und MicroPython ohne Vorkenntnisse
  • Optimaler Einstieg, um eigene Ideen zu verwirklichen und Steuerungen zu programmieren
  • Inklusive Elektronik-Set mit einem Raspberry Pi Pico, Zubehör und elektronischen Bauteilen

Für Ihre Fragen zu unseren Online-Workshops mit dem Raspberry Pi Pico besuchen Sie unseren PicoTalk (Online-Meeting). (Headset empfohlen)

Zum PicoTalk Mehr Informationen Am Online-Workshop teilnehmen

Elektronik-Set Pico Edition
Elektronik-Set Pico Edition

Hardware-nahes Programmieren mit dem Raspberry Pi Pico

Das "Elektronik-Set Pico Edition" ist ein Bauteile-Sortiment mit Anleitung zum Experimentieren und Programmieren mit MicroPython.

  • LED: Einschalten, ausschalten, blinken und Helligkeit steuern
  • Taster: Entprellen und Zustände anzeigen
  • LED mit Taster einschalten und ausschalten
  • Ampel- und Lauflicht-Steuerung
  • Elektronischer Würfel
  • Eigene Steuerungen programmieren

Online-Workshop Mehr Informationen Elektronik-Set jetzt bestellen