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
- 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
- Raspberry Pi: LED einschalten und ausschalten (mit Python und GPIO Zero)
- Raspberry Pi: Taster-Zustand auswerten und anzeigen (mit Python und GPIO Zero)
- Raspberry Pi: Motor über ULN2003A steuern (mit Python und GPIO Zero)
- Raspberry Pi: Relais-Board über ULN2003A steuern (mit Python und GPIO Zero)
- Raspberry Pi: Herunterfahren per Taster (mit Python und GPIO Zero)
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:
- Elektronik mit dem Raspberry Pi
- Raspberry Pi: GPIO - General Purpose Input Output
- Raspberry Pi: GPIO steuern und programmieren
- Raspberry Pi: GPIO mit Python und GPIO Zero programmieren
Hardware-nahes Programmieren mit dem Raspberry Pi, Python und GPIO Zero
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
Teilen:
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-Fibel
Elektronik einfach und leicht verständlich
Die Elektronik-Fibel ist ein Buch über die Grundlagen der Elektronik, Bauelemente, Schaltungstechnik und Digitaltechnik.