nachtlicht
Bauteil: Umgebungslicht · Kategorie: onboard
Wird es dunkel, leuchtet die ganze Matrix auf. Wird es hell, geht sie aus. Ein automatisches Nachtlicht.
Material
| Anzahl | Bauteil |
|---|---|
| 1 | micro:bit V2.2 |
Hardware
Eingebaut, kein Aufbau noetig. Zum Testen den micro:bit mit der Hand abdecken.
Wie der Code funktioniert
display.read_light_level()misst mit den Matrix-LEDs die Umgebungshelligkeit (0..255, 0 = dunkel) und unterbricht dafuer die Anzeige ganz kurz.- Ein fester Schwellwert
GRENZEtrennt “hell” von “dunkel”. Passenden Wert ueber die serielle Ausgabe (print) ablesen und anpassen. Image("99999:...")ist ein selbst gebautes Bild: 5 Zeilen mit je 5 Helligkeitswerten, hier alle auf 9.
Programm
Ganzer Code, Quelle main.py (hier automatisch eingefuegt):
# Sample: nachtlicht (LED-Matrix als Lichtsensor)
# Board: BBC micro:bit V2.2
# Sprache: MicroPython
#
# Ziel: Ein automatisches Nachtlicht. Wird es im Raum dunkel, leuchtet die
# ganze Matrix hell auf. Wird es wieder hell, geht sie aus.
#
# --------------------------------------------------------------------------
# Hardware
# --------------------------------------------------------------------------
# Nichts anschliessen - gemessen wird mit den LEDs der Matrix selbst.
# Zum Testen den micro:bit mit der Hand abdecken.
# --------------------------------------------------------------------------
from microbit import *
GRENZE = 50 # darunter gilt es als "dunkel" (0..255)
while True:
licht = display.read_light_level()
if licht < GRENZE:
display.show(Image("99999:99999:99999:99999:99999")) # alles an
else:
display.clear()
print("Licht:", licht)
sleep(200)
Auf den micro:bit uebertragen
https://python.microbit.org/v/3 -> Code einfuegen -> Connect -> Send to micro:bit. Details: ../../../../docs/setup.md.
Erwartetes Verhalten
- heller Raum -> Matrix aus
- micro:bit abdecken / Licht ausschalten -> Matrix leuchtet voll auf
- wieder aufdecken -> Matrix aus
Moegliche Erweiterungen
- Helligkeit der Matrix stufenlos an den Lichtwert koppeln (je dunkler, desto heller)
- Grenze mit den Knoepfen A/B zur Laufzeit einstellen
- bei Dunkelheit zusaetzlich einen leisen Ton (nur V2)