Raspberry Pi Pico: Helligkeit einer LED mit Fotowiderstand regeln
Die Aufgabe ist, dass eine Lichtquelle, hier beispielhaft eine LED, heller leuchtet, wenn das Umgebungslicht dunkler wird. Mit dem Raspberry Pi Pico und einem Fotowiderstand kann man die Helligkeit des Umgebungslichts messen und in Abhängigkeit des Messwerts die Helligkeit einer LED regeln.
Ein Fotowiderstand (LDR), ist ein lichtabhängiger Widerstand, der seinen Widerstand in Abhängigkeit der Umgebungslichtintensität, manche sagen Helligkeit, ändert. Eine Widerstandsänderung ändert die Spannung am Fotowiderstand, die man mit einem Analog-Digital-Wandler (ADC) des Raspberry Pi Pico messen und als Helligkeit des Lichts interpretieren und umrechnen kann.
- Grundlagen zur Helligkeitsmessung mit Fotowiderstand
- LDR - Fotowiderstand
- KY-018 - Fotowiderstand (Photo Resistor Module)
Aufbau und Bauteile: Fotowiderstand und Festwiderstand
Der Aufbau besteht aus einem Spannungsteiler mit einem LDR und einem 10-kOhm-Widerstand. Mit Hilfe eines Analog-Digital-Wandlers (ADC) wird die Spannung über den Festwiderstand gemessen.
- R1: Widerstand, 10 kOhm (Braun-Schwarz-Schwarz-Rot)
- LDR1: Fotowiderstand
Aufbau und Bauteile: KY-018 - Photo Resistor Module
Raspberry Pi Pico | KY-018 | |
---|---|---|
Pin 38 | GND | - |
Pin 36 | 3V3 / +VCC | Mitte |
Pin 31 | ADC0 (GPIO26) | S |
Hinweis: Beim Verbinden des Raspberry Pi Pico mit dem Modul ist auf die Modul Beschriftung der Pins zu achten. +VCC ist nicht zwangsläufig in der Mitte.
Programmcode
Das Programm ist die einfachste Anwendung eines ADC, mit dem die Spannung am ADC-Eingang gemessen wird. Hierbei macht man es sich zu Nutze, dass der Fotowiderstand seinen Widerstandswert in Abhängigkeit der Helligkeit ändert und somit auch die daran abfallende Spannung. Demzufolge ändert sich auch die Spannungsverteilung zwischen dem Fotowiderstand und dem Festwiderstand.
# Bibliotheken laden from machine import Pin, PWM, ADC from utime import sleep # Korrekturwert korrektur = 4 # Initialisierung des ADC0 ldr = ADC(0) # Initialisierung von GPIO25 als PWM-Ausgang led = PWM(Pin(25)) # PWM-Einstellung: Frequenz in Hertz (Hz) led.freq(1000) # Wiederholung while True: # ADC als Dezimalzahl lesen read = ldr.read_u16() print('ADC-Wert :', read) # Korrektur value = int(read / korrektur) print('Korrektur:', value) # LED-Helligkeit regeln led.duty_u16(value) # Warten sleep(0.1)
Was hat es mit der Variable „korrektur“ auf sich? Sowohl der gelesene ADC-Wert am Fotowiderstand, wie auch der Wert zur Einstellung der LED-Helligkeit über das PWM-Signal können von 0 bis 65.535 reichen. Es wäre denkbar, dass der ADC-Wert direkt das PWM-Signal beeinflusst. Das Problem ist nur, dass die Helligkeitsstufen einer LED nach oben hin abnehmen. Schon bei einem mittleren ADC-Wert würde die LED schon sehr hell leuchten und nach oben hin nicht mehr sehr viel heller.
Aus diesem Grund wird durch Teilen mit dem Wert in der Variable „korrektur“, die Einstellung des PWM-Signals in einen Bereich verschoben, der sinnvoll ist. Der Wert „4“ im Programmcode ist allerdings willkürlich gewählt. In einer bestimmten praktischen Anwendungen kann ein anderer Wert sinnvoll sein.
Sinnvoll wird ein Wert zwischen 2 und 5 sein.
Weitere verwandte Themen:
- Raspberry Pi Pico: Helligkeit messen
- Raspberry Pi Pico: Tagschaltung
- Raspberry Pi Pico: Nachtschaltung (Dämmerungsschalter)
- Raspberry Pi Pico: Grundlagen zu ADC
- Raspberry Pi Pico: Lichtschranke mit LED und LDR (mit KY-018)
Teilen:
Hardware-nahes Programmieren mit dem Raspberry Pi Pico und MicroPython
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
Hardware-nahes Programmieren mit dem Raspberry Pi Pico
Gemeinsam mit anderen und unter Anleitung experimentieren? Wir bieten unterschiedliche Online-Workshops zum Raspberry Pi Pico und MicroPython an. Einführung in die Programmierung, Sensoren programmieren und kalibrieren, sowie Internet of Things und Smart Home über WLAN und MQTT.
Für Ihre Fragen zu unseren Online-Workshops mit dem Raspberry Pi Pico besuchen Sie unseren PicoTalk (Online-Meeting). (Headset empfohlen)
Elektronik-Set Pico Edition
Raspberry Pi Pico: Hardware-nahes Programmieren mit MicroPython
Leichter Einstieg mit All-in-one-Set zum sofort Loslegen, um eigene Steuerungen programmieren.
Elektronik-Set Pico WLAN Edition
Raspberry Pi Pico W: IoT und Smart Home mit WLAN und MQTT
Betreibe Deinen Raspberry Pi Pico W als drahtloser Sensor in Deinem WLAN, versende E-Mails mit Daten und kommuniziere per MQTT im Internet of Things oder Smart Home.
Elektronik-Set Sensor Edition
Erweiterung zu den Elektronik-Sets Pico Edition und Pico WLAN Edition
Elektronik-Set mit den beliebtesten Sensoren zum Messen von Temperatur, Helligkeit, Bewegung, Lautstärke und Entfernung.
Elektronik-Set Eingabe Ausgabe Edition
Erweiterung zu den Elektronik-Sets Pico Edition und Pico WLAN Edition
Damit kannst Du MP3-Dateien abspielen, eine Stoppuhr bauen, einen Servo-Motor mit Drehschalter oder Joystick steuern, Lichteffekte mit einem WS2812-LED-Lichtstreifen erzeugen, Schalten mit einem Relais und Signalisieren mit einem Vibrationsmotor.