Raspberry Pi: LED-Helligkeit steuern (mit Python und GPIO Zero)

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. Logisch wäre es, dass man mit der Steuerung per GPIO eine LED auch nur ein- und ausschalten kann. Die Helligkeit kann man also nicht einstellen.

Trotzdem gibt es einen Trick mit dem man die Helligkeit einer LED doch steuern kann. Und zwar macht man es sich zu nutze, dass das Leuchten einer LED eine gewisse Trägheit aufweist und für das menschliche Auge deshalb mit zeitlicher Verzögerung erfolgt. Wenn die LED sehr schnell ein- und ausgeschaltet wird, können wir den Schaltvorgang nicht direkt wahrnehmen. Statt dessen sehen wir die durchschnittliche Leuchtdauer im Verhältnis zur Dauer des ausgeschalteten Zustands in Form einer unterschiedlichen Helligkeit.
Die Frage ist, wie realisiert man die Software-Steuerung? Das ist vergleichsweise einfach. Ein GPIO kann nicht einfach nur „High“ und „Low“, sondern zwischen diesen Zuständen hin- und herwechseln. Also ein Taktsignal ausgeben. Dieses Taktsignal wird als PWM-Signal realisiert, bei dem die Breite des Pulses über die Zeit eingestellt werden kann. Das heißt, es wird die Dauer des Leuchtens der LED eingestellt. Durch die Trägheit des Aufleuchtens und der Wahrnehmung des menschlichen Auges sieht es so aus, als ob die Helligkeit der Leuchtdiode gesteuert wird.

Aufbau und Bauteile

Raspberry Pi: LED-Helligkeit steuern (mit Python und GPIO Zero)

  • LED1: Leuchtdiode, rot, gelb oder grün
  • R1: Widerstand, 330 Ohm (Orange-Orange-Schwarz-Schwarz)
  • Verbinde die Anode (langer Anschluss) der Leuchtdiode mit dem GPIO-Pin.
  • Verbinde die Kathode (kurzer Anschluss) der Leuchtdiode mit dem Widerstand.
  • Verbinde die andere Seite des Widerstands mit dem GND-Pin.

Programmcode

Mit Python und GPIO Zero lässt sich ein PWM-Signal mit wenigen Zeilen erzeugen. Auf diese Weise kann man die Helligkeit einer Leuchtdiode einstellen.

Nach dem Start des Programms wird die Leuchtdiode in 10 Stufen (von 0 bis 1) von „aus“ nach „ganz hell“ geändert. Das Programm endet im Prinzip nie. Es muss manuell beendet bzw. gestoppt werden.

# Bibliotheken laden
from gpiozero import PWMLED
from time import sleep

# Initialisierung von GPIO17 als PWM-Signal für LED (Ausgang)
led = PWMLED(17)

# Wiederholung einleiten
while True:
    # LED ausschalten
    led.value = 0
    sleep(1)
    led.value = 0.1
    sleep(1)
    led.value = 0.2
    sleep(1)
    led.value = 0.3
    sleep(1)
    led.value = 0.4
    sleep(1)
    # LED mit halber Helligkeit
    led.value = 0.5
    sleep(1)
    led.value = 0.6
    sleep(1)
    led.value = 0.7
    sleep(1)
    led.value = 0.8
    sleep(1)
    led.value = 0.9
    sleep(1)
    # LED mit voller Helligkeit
    led.value = 1
    sleep(1)

Darf es ein bisschen mehr sein?

Nur eine LED steuern ist doch langweilig. Machen wir es anspruchsvoller. wie wäre eine Ampelsteuerung oder ein Lauflicht?

Oder hast Du keinen Bock mehr auf LED-Leuchten und -Blinken? Dann schauen wir uns doch mal an, was man mit einem Taster alles machen kann.

Highlights: Elektronik mit dem Raspberry Pi

Alternative: Elektronik mit dem Raspberry Pi Pico

Raspberry Pi Pico ist ein Mikrocontroller. Er ermöglicht Dank vieler analoger und digitaler Eingänge und Ausgänge vielfältige Anwendung im Bereich der Steuerung von elektronischen Bauteilen, Sensorik, Robotik und Automation.

Weitere verwandte Themen:

Hardware-nahes Programmieren mit dem Raspberry Pi, Python und GPIO Zero

Elektronik-Set Raspberry Pi Edition

Das "Elektronik-Set Raspberry Pi Edition" ist ein Bauteile-Sortiment mit Anleitung zum Experimentieren und Programmieren mit Python und GPIO Zero.

  • LED: Einschalten, ausschalten, blinken und Helligkeit steuern
  • Taster: Verschiedene Zustände auswerten und anzeigen lassen
  • LED mit Taster einschalten und ausschalten
  • Relais-Board steuern
  • LED, Relais-Board und Motor über ULN2003A steuern
  • Ampel- und Lauflicht-Steuerung
  • Herunterfahren per Taster
  • Reaktionsspiel mit Tastern und LEDs
  • Eigene Steuerungen programmieren

Elektronik-Set jetzt bestellen

Frag Elektronik-Kompendium.de

Elektronik-Set Raspberry Pi Edition
Elektronik-Set Raspberry Pi Edition

Elektronik erleben mit dem Raspberry Pi mit Python und GPIO Zero

  • Leichter Einstieg ins Hardware-nahe Programmieren mit Python und GPIO Zero
  • Experimentieren und Programmieren ohne Vorkenntnisse
  • Sofort Loslegen mit All-in-one-Set

Elektronik-Set jetzt bestellen

Elektronik-Fibel

Elektronik einfach und leicht verständlich

Die Elektronik-Fibel ist ein Buch über die Grundlagen der Elektronik, Bauelemente, Schaltungstechnik und Digitaltechnik.

Das will ich haben!