Das lernst du heute
- Szenen per Knopf
- Sanftes Dimmen
- Zufallsflackern für Notlicht
Die Werkstatt hat vier Lampenreihen. Tagsüber soll alles hell sein, abends gedämpft, nachts nur eine Reihe. Läuft der Notstrom, bleibt nur ein flackerndes Notlicht. Bedient wird das Ganze mit einer einzigen Taste.
Die Anlage
| Gerät | Prefab | Name |
|---|---|---|
| Taste | StructureLogicButton | „Szene“ |
| Hebel | StructureLogicSwitch | „Notstrom“ |
| vier Lampengruppen | StructureWallLight | „Licht1“ bis „Licht4“ |
| LED-Anzeige | StructureConsoleLED5 | „Szene“ |
Die Szenen
| Nr. | Szene | Gruppen an |
|---|---|---|
| 0 | Aus | keine |
| 1 | Arbeit | 1 bis 4 |
| 2 | Abend | 1 und 2 |
| 3 | Nacht | 1 |
Jeder Druck auf die Taste schaltet eine Szene weiter, nach 3 kommt wieder 0. Die Tabelle steht vor der Hauptschleife per poke im Stack, get ziel db szene holt die Zahl der Gruppen.
Die Taste meldet Activate = 1, solange sie gedrückt ist. Damit ein langer Druck nicht jeden Takt weiterschaltet, zählt nur die Flanke – der Wechsel von 0 auf 1:
sgt tmp taste alt # 1 nur im ersten Takt des Drueckens
move alt taste
add szene szene tmp
mod szene szene SZENEN
Sanftes Dimmen – mit ehrlichen Lampen
Lampen kennen im Spiel nur On, eine dimmbare Lampe gibt es nicht. „Sanft“ heißt hier deshalb: Die Gruppen gehen nacheinander an oder aus, eine pro Sekunde. Eine Stufe von 0 bis 4 läuft auf das Ziel der Szene zu, Gruppe k leuchtet, solange die Stufe mindestens k ist:
sub tmp ziel stufe
sgn tmp tmp # -1, 0 oder 1
add stufe stufe tmp # einen Schritt Richtung Ziel
sge licht stufe 3 # Gruppe 3 an ab Stufe 3
Ein Zähler sorgt dafür, dass die Stufe nur alle TAKTE Takte einen Schritt macht. Er darf ruhig weiterlaufen, wenn die Stufe schon am Ziel ist: Die Differenz ist dann 0, und sgn liefert 0.
Notlicht
Steht der Hebel „Notstrom“ auf 1, gehen die Gruppen 2 bis 4 aus. Gruppe 1 flackert: Jeden Takt würfelt rand, ob sie leuchtet, mit 70 % Wahrscheinlichkeit. Legst du den Hebel zurück, kommt die Szene wieder.
Teilziele
- Szenen per Taste, nur auf die Flanke, die Anzeige zeigt die Nummer
- Sanft dimmen: eine Gruppe nach der anderen, hoch und runter
- Notlicht: Gruppe 1 flackert, Gruppen 2 bis 4 sind aus
- Ausfall: Fehlt der Hebel, gilt Normalbetrieb; fehlt die Taste, bleibt die Szene
Taste und Hebel liefern NaN, wenn sie fehlen. Eine NaN-Taste darf weder eine Flanke auslösen noch alt vergiften. sgtz taste taste macht aus NaN eine saubere 0 – genauso beim Hebel. Danach dürfen beide Werte bedenkenlos in and, sgt und select.
Projektaufgabe
Aufgabe
Baue die Lichtsteuerung nach den Regeln oben. Die defines, die Szenentabelle im Stack und das Start-Label sind schon da, es fehlen die Abschnitte 2 bis 6: Taste mit Flanke, sanftes Dimmen, Notstrom lesen, Gruppe 1 und die Gruppen 2 bis 4.
Teilziele
- Teilziel 1: Szenen per Taste, nur auf die Flanke
- Teilziel 2: Sanft dimmen, hoch und runter
- Teilziel 3: Notlicht flackert
- Teilziel 4: Hebel oder Taste fällt aus
Hinweise
Hinweis 1
Flanke: sgtz taste taste, dann sgt tmp taste alt und move alt taste. Weiterzählen mit add und mod.
Hinweis 2
Dimmen: add zeit zeit 1, blt zeit TAKTE lampen, dann move zeit 0 und mit sub, sgn, add einen Schritt Richtung ziel.
Hinweis 3
Gruppe k: sge licht stufe k. Bei Gruppe 1 wählt select licht notstrom tmp licht das Flackern, bei 2 bis 4 hilft and licht licht normal.
Quiz
2 Fragen. Ab 60 % ist das Quiz bestanden – die Auswertung macht der Server.
Tag abschließen
- Alle Teilziele des Projekts 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