Das lernst du heute
- Tageslichtsensor auslesen
- Licht bei Dunkelheit
- Zeitplan mit Zähler
Draußen geht die Sonne unter, und der Weg zur Landeplattform liegt im Dunkeln. Ein Tageslichtsensor (StructureDaylightSensor) sagt dem Chip, wann es Zeit für Licht ist.
Was der Sensor meldet
| LogicType | Bedeutung |
|---|---|
Activate | 1, wenn Sonnenlicht auf den Sensor fällt, sonst 0 |
SolarIrradiance | Sonnenleistung in W, 0 ohne Sonnenlicht |
SolarAngle | Winkel zur Sonne in Grad |
Horizontal, Vertical | Richtung der Sonne in Grad |
Für Tag und Nacht reicht Activate. Der Wert gilt für den Sensor selbst: Steht er im Schatten eines Gebäudes, ist für ihn Nacht. Bau ihn frei auf, mit Blick zum Himmel.
SolarIrradiance verrät mehr. Bei schlechtem Wetter sinkt der Wert, ohne dass Activate auf 0 springt. Wer schon bei trübem Himmel Licht will, vergleicht diesen Wert mit einer Grenze.
lbn sonne SENSOR HASH("Sonne") Activate Average
seqz dunkel sonne # 1 = keine Sonne
sbn LAMPE HASH("Aussenlicht") On dunkel
Bei Ausfall lieber hell
Fehlt der Sensor, liefert Average NaN, und seqz macht daraus 0. Das Licht bliebe aus, und für Außenlicht ist das die falsche Richtung. Ein Licht, das tagsüber unnötig brennt, kostet ein paar Watt. Ein dunkler Weg kann dich einen Anzug kosten.
snan fehlt sonne
or dunkel dunkel fehlt # kein Sensor: Licht an
Ein Zeitplan mit Zähler
Nicht alles richtet sich nach der Sonne. Pflanzenlicht etwa soll feste Zeiten haben. Dafür zählst du Takte. Ein Durchlauf mit einem yield dauert einen Takt, also 0,5 s:
add zeit zeit 1
mod zeit zeit PERIODE # 0 bis PERIODE-1, dann von vorn
slt an zeit AN # die ersten AN Takte: an
mod setzt den Zähler nach PERIODE Takten wieder auf 0. Mit PERIODE 7200 und AN 4800 bekommst du einen Stundentakt mit 40 Minuten Licht.
Ein Zähler kann auch messen: Wie lange ist es schon dunkel? Zähl hoch, solange es dunkel ist, und setz ihn bei Sonne auf 0. Eine Multiplikation spart dabei den Sprung:
add takte takte 1
mul takte takte dunkel # bei Sonne: mal 0
Im Spiel bleiben die Register erhalten, wenn du neuen Code aufspielst oder den Chip umsteckst. Nur sp und die Programmzeile gehen auf 0. Ein Zähler startet also mit dem alten Wert. Setz ihn deshalb vor dem Start-Label mit move auf 0. Der Simulator hier beginnt immer mit Nullen und verdeckt diesen Fehler.
Überleg bei jedem Gerät, welcher Zustand bei einem Ausfall sicher ist. Heizung: aus. Außenlicht: an. In Woche 13 kommt das ausführlich.
Übung
Aufgabe
Ein Tageslichtsensor „Sonne“ und Wandleuchten „Aussenlicht“ hängen im Netz.
- Fällt kein Sonnenlicht auf den Sensor (
Activate= 0), sind die Leuchten an, sonst aus. - Die LED-Anzeige „Nachtzeit“ zeigt in Sekunden, wie lange es schon dunkel ist. Bei Sonne steht sie auf 0.
- Fehlt der Sensor, ist das Licht an.
Hinweise
Hinweis 1
seqz dunkel sonne dreht 1 und 0 um.
Hinweis 2
snan fehlt sonne und or dunkel dunkel fehlt schalten bei fehlendem Sensor das Licht an.
Hinweis 3
Zähler: add takte takte 1, dann mul takte takte dunkel – Sekunden sind Takte mal 0,5.
Quiz
5 Fragen. Ab 60 % ist das Quiz bestanden – die Auswertung macht der Server.
Tag abschließen
- Übung im Simulator bestanden
- Quiz mit mindestens 60 % bestanden
Ohne Konto wird der Fortschritt nur in diesem Browser gespeichert.
Fehler in dieser Lektion melden
Zum Melden bitte anmelden. Anmelden