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.

Aufbau und Bauteile: Fotowiderstand und Festwiderstand

Raspberry Pi Pico: Helligkeit messen mit Fotowiderstand

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: Helligkeit messen mit Fotowiderstand

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.

Schnell und einfach alle Bauteile zusammen bestellen

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 time 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:

Frag Elektronik-Kompendium.de

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

Elektronik-Set jetzt bestellen Online-Workshop buchen

Online-Workshop: Programmieren mit dem Raspberry Pi Pico

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.

Online-Workshop buchen

Besuchen Sie unser fast monatlich stattfindendes Online-Meeting PicoTalk und lernen Sie uns kennen. Die Teilnahme ist kostenfrei.

Termine und Newsletter-Anmeldung

 

Elektronik-Sets für das Hardware-nahe Programmieren