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.

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:

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