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.
Dazu muss nach dem Einschalten der LED gewartet werden, bis die Taste A nicht mehr gedrückt ist.
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!
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.
Lösung: Wenn Taste A oder Taste B gedrückt wird, wartet das Programm eine kurze Zeit. Danach fragt es ab, ob
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.
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.
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.
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!
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
funktioniert nicht.
Lösung: Wenn Taste A oder Taste B gedrückt wird, wartet das Programm eine kurze Zeit. Danach fragt es ab, ob
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.
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.
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.
Lösung: Wenn Taste A oder Taste B gedrückt wird, wartet das Programm eine kurze Zeit. Danach fragt es ab, ob
ist. Als Wartezeit reichen etwa 100 ms aus. Während dieser Zeit hat man entweder die andere Taste gedrückt oder eben nicht.