Calliope mini - Spaß durch Programmieren

Entwicklungsumgebungen

Taster schalten die LED

Ziel: Beim Drücken der Taste A soll die LED rot leuchten, beim Druck auf die Taste B die Farbe grün zeigen und beim Druck auf beide Taster gleichzeitig soll sie blau aufleuchten.

Das Programm schaltet beim Drücken der Taste A die LED an, schaltet sie dann sofort wieder aus und dann wieder an. Dadurch leuchtet die LED nicht dauernd, sondern wird ständig ein- und ausgeschaltet. Als Folge ist die Leuchtstärke der LED nicht voll, sondern eher schwach.

Besser wäre es, wenn der Druck auf die Taste A die LED einschaltet und erst das Loslassen der Taste die LED wieder ausschaltet.

Calliope mini-Taster

Dazu muss nach dem Einschalten der LED gewartet werden, bis die Taste A nicht mehr gedrückt ist.

 

Calliope mini-Taster

Der Programmablaufplan stellt das Programm noch mal in einer anderen Sicht dar.

Aufgabe: Erweitere das Programm so, dass beim Druck auf die Taste B die LED in grün aufleuchtet.

Bis hierhin war es nicht schwer!

Calliope mini-Taster

Damit die LED in Blau leuchtet, wäre das neben stehende Programm die erste Idee. Das funktioniert aber nicht.

Grund: Damit die Frage "Wenn Taste A gedrückt und Taste B gedrückt" ein wahr zurückliefert, müssen die beiden Tasten zusammen gedrückt werden. Das ist aber nicht möglich, da ja beide Tasten exakt zur gleichen Zeit gedrückt werden müssen. Ist nur eine Taste einen kleinen Moment eher unten, wird die zweite oder dritte Entscheidung mit wahr beantwortet und das Programm schaltet die LED in Rot oder Grün an. Da es danach wartet, bis die Taste wieder losgelassen wird, kann die erste Entscheidung nicht mehr abgefragt werden.

Calliope mini-Taster

Lösung: Wenn Taste A oder Taste B gedrückt wird, wartet das Programm eine kurze Zeit. Danach fragt es ab, ob

  • Taste A und Taste B gedrückt
  • nur Taste A gedrückt
  • nur Taste B gedrückt

ist. Als Wartezeit reichen etwa 30 ms aus. Während dieser Zeit hat man entweder die andere Taste gedrückt oder eben nicht.

Für das Ausschalten der blauen LED muss man fragen, ob Taste A und Taste B nicht mehr gedrückt sind.

Der Programmablaufplan sieht komplizierter aus, als er ist. Calliope mini-Taster

Das Programm schaltet beim Drücken der Taste A die LED an, schaltet sie dann sofort wieder aus und dann wieder an. Dadurch leuchtet die LED nicht dauernd, sondern wird ständig ein- und ausgeschaltet. Als Folge ist die Leuchtstärke der LED nicht voll, sondern eher schwach. In der Simulation sieht man ga rnicht, dass die LED eingeschaltet wird.

Besser wäre es, wenn der Druck auf die Taste A die LED einschaltet und erst das Loslassen der Taste die LED wieder ausschaltet.

Calliope mini-Taster

Dazu muss nach dem Einschalten der LED gewartet werden, bis die Taste A nicht mehr gedrückt ist. Für den entsprechenden Befehl muss die Erweiterung warte bis... geladen werden.

Calliope mini-Taster

Der Programmablaufplan stellt das Programm noch mal in einer anderen Sicht dar.

Aufgabe: Erweitere das Programm so, dass beim Druck auf die Taste B die LED in grün aufleuchtet.

Bis hierhin war es nicht schwer!

Calliope mini-Taster

Damit die LED in Blau leuchtet, wäre das neben stehende Programm die erste Idee. Das funktioniert aber nicht.

Grund: Damit die Frage "Wenn Taste A gedrückt und Taste B gedrückt" ein wahr zurückliefert, müssen die beiden Tasten zusammen gedrückt werden. Das ist aber nicht möglich, da ja beide Tasten exakt zur gleichen Zeit gedrückt werden müssen. Ist nur eine Taste einen kleinen Moment eher unten, wird die zweite oder dritte Entscheidung mit wahr beantwortet und das Programm schaltet die LED in Rot oder Grün an. Da es danach wartet, bis die Taste wieder losgelassen wird, kann die erste Entscheidung nicht mehr abgefragt werden.

Auch das

a+b

funktioniert nicht.

Calliope mini-Taster

Lösung: Wenn Taste A oder Taste B gedrückt wird, wartet das Programm eine kurze Zeit. Danach fragt es ab, ob

  • Taste A und Taste B gedrückt
  • nur Taste A gedrückt
  • nur Taste B gedrückt

ist. Als Wartezeit reichen etwa 100 ms aus. Während dieser Zeit hat man entweder die andere Taste gedrückt oder eben nicht.

Für das Ausschalten der blauen LED muss man fragen, ob Taste A und Taste B nicht mehr gedrückt sind.

Der Programmablaufplan sieht komplizierter aus, als er ist. Calliope mini-Taster

Das Programm schaltet beim Drücken der Taste A die LEDs in Rot an. Die folgende Schleife wird solange durchlaufen, wie die Taste A gedrückt ist. In der Schleife selber wird außer eine ganz kurzen Wartepause nichts gemacht.

Wenn die Taste A losgelassen wird, werden die LEDs ausgeschaltet.

Calliope mini-Taster

Die Erweiterung für die Taste B ist kein Problem und funktioniert sicher schnell. Damit die LEDs beim gleichzeitigen Drücken von A und B in Blau angehen, wird ein weiterer Teil hinzugefügt.

Das sieht logisch aus, funktioniert aber nicht.

Calliope mini-Taster
Grund: Damit die Frage "Wenn Taste A gedrückt und Taste B gedrückt" ein wahr zurückliefert, müssen die beiden Tasten zusammen gedrückt werden. Das ist aber nicht möglich, da ja beide Tasten exakt zur gleichen Zeit gedrückt werden müssen. Ist nur eine Taste einen kleinen Moment eher unten, wird die zweite oder dritte Entscheidung mit wahr beantwortet und das Programm schaltet die LED in Rot oder Grün an. Da es danach wartet, bis die Taste wieder losgelassen wird, kann die erste Entscheidung nicht mehr abgefragt werden.

Lösung: Wenn Taste A oder Taste B gedrückt wird, wartet das Programm eine kurze Zeit. Danach fragt es ab, ob

  • Taste A und Taste B gedrückt
  • nur Taste A gedrückt
  • nur Taste B gedrückt

ist. Als Wartezeit reichen etwa 100 ms aus. Während dieser Zeit hat man entweder die andere Taste gedrückt oder eben nicht.

Calliope mini-Taster

zurück