stationeers.de Mod-Werkstatt · Dominik1199
EN Anmelden
  1. Start
  2. IC10-Akademie
  3. Tag 286

Tag 286 von 365 · Experte · Monat 10: Bits und Daten

Projekt: Textanzeige

Eine Anzeige, die spricht: Zustand als Text, Temperatur als „T=22C“ aus Ziffern zur Laufzeit zusammengesetzt und im Wechsel alle zwei Sekunden.

Projekt 45 Min. Woche 41

Das lernst du heute

  • Zustände als Text anzeigen
  • Wechseltexte
  • Zahl und Text kombinieren

Eine einzige kleine Anzeige im Flur soll zwei Dinge zeigen: ob die Temperatur in Ordnung ist und wie warm es genau ist. Abwechselnd, als Text. Dafür brauchst du alles aus dieser Woche: STR(), Felder mit ins, Bits mit ext und den String-Modus der Anzeige.

Die Anlage

GerätPrefabName
GassensorStructureGasSensor„Raum“
LED-AnzeigeStructureConsoleLED5„Info“

Zahl und Text kombinieren

STR() kann keine Register lesen. Aber jedes Zeichen ist ein 8-Bit-Feld, und Ziffern sind ASCII-Codes: „0“ ist 48, „1“ ist 49 und so weiter. Also nimmst du eine Vorlage und setzt die Ziffern zur Laufzeit ein:

ZeichenT=ZehnerEinerC
Bits32–3924–3116–238–150–7

STR("T=00C") ist die Vorlage. Zehner und Einer rechnest du mit div, floor und mod aus, addierst 48 und setzt sie mit ins an ihre Stelle.

Wechseltexte

Ein Takt-Zähler läuft hoch. Bit 2 des Zählers wechselt alle vier Takte zwischen 0 und 1 – genau der Rhythmus für den Wechsel. ext tmp takt 2 1 holt es heraus, ohne dass du einen zweiten Zähler brauchst.

Teilziele

  1. Die Anzeige steht im String-Modus und zeigt bei 22 °C „OK“.
  2. Unter 18 °C zeigt sie „LOW“, über 26 °C „HIGH“.
  3. Im Zahlentakt steht dort „T=22C“, zweistellig auch bei 5 °C („T=05C“).
  4. Alle vier Takte wechselt die Anzeige zwischen Zustand und Zahl.
  5. Ohne Sensor steht dort nur noch „ERROR“.
Tipp

Die Temperatur muss vor dem Zerlegen in 0 bis 99 liegen. clamp temp temp 0 99 sorgt dafür, dass bei Hitze „T=99C“ erscheint statt eines kaputten Zeichens.

Achtung

„T=00C“ hat fünf Zeichen. Mehr als sechs passen nicht in eine Zahl – „T=22.5C“ ist deshalb unmöglich. Plane Anzeigetexte immer mit Zeichenzahl.

Projektaufgabe

Aufgabe

Baue die Textanzeige nach den Teilzielen oben. defines und aliase stehen schon da.

Teilziele

  1. Teilziel 1: String-Modus und OK
  2. Teilziel 2: LOW und HIGH
  3. Teilziel 3: Zahl als Text
  4. Teilziel 4: Wechsel alle 4 Takte
  5. Teilziel 5: Sensor fehlt

Hinweise

Hinweis 1

Zehner: div ziffer temp 10, floor, add ziffer ziffer ASCII0, ins zahl ziffer 16 8.

Hinweis 2

Einer: mod ziffer temp 10, plus 48, ins zahl ziffer 8 8.

Hinweis 3

Wechsel: add takt takt 1, ext tmp takt 2 1, select text tmp zahl text.

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

Esc
↑ ↓ wählenEnter öffnen/ öffnet die Suche überall