Raspberry Pi Pico: Nachtschaltung (Dunkelschaltung oder Dämmerungsschalter)

Die Nachtschaltung kennt man unter verschiedenen Begriffen. Zum Beispiel Dunkelschaltung oder Dämmerungsschalter. Eine Nachtschaltung ist eine Schaltung, bei der zum Beispiel eine Leuchtdiode leuchtet, wenn das Licht aus ist bzw. Dunkelheit erkannt wird. Der Helligkeitssensor ist in diesem Fall ein Fotowiderstand (LDR), der in Abhängigkeit der Helligkeit bzw. des einfallenden Lichts seinen Widerstandswert und somit die daran abfallende Spannung ändert. Diese Spannung wird von einem Analog-Digital-Wandler (ADC) gemessen und kann als 16-Bit-Wert im Programmcode verarbeitet werden.

Bei der Nachtschaltung ist die Idee, dass etwas eingeschaltet wird, zum Beispiel die Beleuchtung, wenn es dunkel ist.

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 ermittelt laufend die Spannung am Widerstand als 16-Bit-Wert in dezimaler Schreibweise. Unterschreitet dieser Wert einen eher willkürliche Sollwert, dann leuchtet die Leuchtdiode.

# Bibliotheken laden
from machine import Pin, ADC
from time import sleep

# Soll-Wert, ab wann Nacht sein soll
soll_wert = 25000

# Initialisierung des ADC0
ldr = ADC(0)

# Initialiseren des GPIO
led = Pin(25, Pin.OUT, value=0)

# Wiederholung
while True:
    # ADC als Dezimalzahl lesen
    read = ldr.read_u16()
    # Ausgabe in der Kommandozeile/Shell
    print("ADC: ", read)
    # EIN und AUS
    if read < soll_wert:
        led.on()
    else:
        led.off()
    # Warten
    sleep(3)

Idee für eine Erweiterung

Aufbau und Programmcode sind sehr einfach gehalten. Zum Experimentieren ist das gut. In der praktischen Anwendung ist es eher schwierig. Da es unter Tageslichtbedingungen eher selten schlagartig dunkel wird, kann es sein, dass die LED ständig an- und ausgeht, wenn die Helligkeit um den Sollwert herum pendelt. Wenn man damit eine Lampe schaltet, dann geht die ständig an und aus, was störend sein kann.

Für diese Situation ist eine Lösung gefragt. Zum Beispiel eine zeitliche Verzögerung, wenn der Schaltzustand sich geändert hat.

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