Taster
1 Spuren im Schnee
Skispuren

Der Schnee merkt sich jeden Skifahrer. Nicht so ein Taster: Betätigen wir ihn ändert er seinen Zustand. Doch lassen wir ihn wieder los, sieht es so aus als wäre er nie betätigt worden.

Doch Taster kommen sehr häufig in Steuerungen zum Einsatz. Im Gegensatz zum Schalter haben sie immer die identische Position. Darüber hinaus vermittelt der Druck auf einen Taster ein sogenanntes angenehmes taktiles Gefühl.

Wenn man nun den Taster dazu bringen könnte, dass er sich wie der Schnee etwas merken könnte hätten wir gewonnen.

2 ... einfach unvergesslich

Zwei Frauen im Supermarkt stoßen zusammen. Meint die eine völlig aufgelöst: "Entschuldigen Sie, aber ich bin total durcheinander, ich suche meinen Mann!" Darauf die andere: "Mir geht es auch so, seit zehn Minuten finde ich meinen Mann nicht mehr! Wie sieht Ihrer denn aus?" - "Meiner hat blonde Haare, ist 1,90 Meter groß, braun gebrannt, tolle Figur, Waschbrettbauch, guter Hintern, ein Lächeln wie Brad Pitt, die Hände von André Rieu und wenn er nachdenklich ist, den Dackelblick von George Clooney. Wie sieht Ihrer denn aus?" - "Vergessen wir meinen Mann, suchen wir Ihren!"

Wir lachen bei Witzen, wenn das Überraschungsmoment stimmt. Aber wie können wir uns die Details merken damit dieses Moment rüber kommt?

Der Gedächtnistrainer Markus Hoffmann unvergesslich.de  verrät mit welcher Methode man sich diesen Witz ganz einfach merkt: "Stellen Sie sich z.B. den schönen Mann vor, wie er auf Ihrer Handfläche steht. Wenn Sie das nächste Mal einen Witz suchen, werfen Sie einfach einen Blick in Ihre Hand. Die nächsten Witze können Sie dann mit Ihrem Ellenbogen, Ihrer Schulter oder anderen Körperteilen kreativ verknüpfen. Erzählen Sie diese Witze mindestens fünf Personen. Das fördert Ihre rhetorischen Fähigkeiten und Ihr Gedächtnis. Sie werden an der Reaktion Ihrer Mitmenschen merken, welche Teile gut bzw. weniger gut ankommen. Ich finde: Das ist ein Training, das wirklich Spaß macht!"

3 Variablen als Merker
Schaltung Merkersteuerung

Auch beim Programmieren gibt es solche Merkhilfen. Wir nennen sie Variablen. Mit deren Hilfe und einer Entscheidung lässt sich der letzte Zustand speichern:

int merker = 0;
 if(S0 == 0){
    if(merker == 0)  merker = 1;
    else             merker = 0;
 }

Nun können wir die LED L1 mit Hilfe der Variable steuern:
 L1 = merker;

4 pro Tastenbetätigung nur eine Aktion | Die while-Schleife
Struktogramm while-Schleife

Nun haben wir den Merker programmiert. Was aber passiert wenn wir beim nächsten zyklischen Durchlauf immer noch den Taster betätigen? Der Zustand des Merkers würde wieder geändert.

Aus diesem Grund benötigen wir eine Programmierstruktur, die solange wartet, bis der Taster losgelassen wurde. Und genau hierzu nutzen wir die while-Schleife:

while(S0 == 0){
 }

Solange nun der Taster gedrückt wird, macht das Programm nichts weiter, als zu warten bis dieser losgelassen wird.

5 Die while-Schleife

"Der Klügere gibt nach.
Solange bis er der
Dümmere ist."
Walter Kempowski

Das englische Wort "while" bedeutet im deutschen "solange". Mit diesem Wort wird die Logik der Wiederholungsschleife gut beschrieben: Der zu wiederholende Teil wird solange wiederholt wie die Bedingung der Schleife wahr ist.

Eine while-Schleife kann aber mehr als zählen. Mit ihr kann man auch komplexere Bedingungen prüfen, wie beispielsweise den Zustand eines Tasters. Testet man in der Bedingung auf den Wert einer Variablen, muss diese vorher initialisiert werden. Die Änderung der Variablen erfolgt dann im Schleifenkörper



Aufgabe 1 while-Schleife, for-Schleife und Entscheidung

if (S0 = = 0){
      L1 = 1;
 }
 L1 = 0;


while (S0 = = 0){
      L1 = 1;
 }
 L1 = 0;

In dieser Aufgabe soll der Unterschied zwischen while-Schleife, for-Schleife und einer Entscheidung untersucht werden.

  1. Welcher Unterschied besteht zwischen den zwei Anweisungen?
  2. Schreiben Sie folgende for-Schleife in eine while-Schleife um:
    int i;
     for(i = 0; i < 10; i++){
          L1 = !L1;
     }
  3. Warum benötigt die while(1)-Schleife keine Änderung im Schleifenkörper?
  1. Während die Entscheidung innerhalb des zyklischen Ablaufs immer wieder durchlaufen wird, solange S0 gedrückt ist, wird hier die LED L1 auch immer wieder ausgeschaltet, so dass die LED im Mittel nur mit halber Helligkeit leuchtet. Bei der Schleife bleibt das Programm solange im Schleifenkörper bis der Taster S0 losgelassen wird. Dementsprechend leuchtet die LED L1 mit voller Helligkeit.
  2. int i=0;
     while(i < 10){
          L1 = !L1;
          i++;
     }
  3. Da die Bedingung mit dem Wert 1, sowieso immer wahr ist

Aufgabe 2 LED-Steuerung mit Taster und Merker

Taster und LED

Das Arbeiten mit merker-Variablen wird trainiert.

  1. Erstelle das Projekt 04 Merkersteuerung und schreibe die C-Datei 04-Merker-1.c. Bei Tastendruck S0 soll der Zustand der Variable merker geändert und gespeichert werden. Die LED L1 soll je nach Zustand der Variable an oder aus sein.
  2. Schreibe die C-Datei 04-Merker-2.c. Bei Tastendruck S0 soll der Zustand der Variable merker geändert und gespeichert werden. Die LED L1 soll je nach Zustand der Variable blinken oder aus sein.

Aufgabe 3 Tastenabfrage in Kombination mit einem Zählwert

4 LEDs + Taster

Schreibe die C-Datei 04-Merker-3.c. Dabei sollen beim Betätigen von SU die Zählvariable wert um eins erhöht werden. Achte darauf dass wert nicht größer als vier wird. Beim Betätigen von SD soll wert um eins verringert werden. Achte darauf dass wert niemals kleiner als Null wird.

Entsprechend des aktuellen Wertes von wert soll keine oder die LEDs L1 – L4 leuchten.

Hinweis: Damit der Controller pro Tastendruck die Zählvariable nur um eins erhöht, muss das Programm mit der Schleife while(SU == 0);solange angehalten werden, bis der Anwender SU loslässt.


Entspann dich erst mal ...

Zwei Frauen im Supermarkt stoßen zusammen. Meint die eine völlig aufgelöst: "Entschuldigen Sie, aber ich bin total durcheinander, ich suche meinen Mann!" Darauf die andere: "Mir geht es auch so, seit zehn Minuten finde ich meinen Mann nicht mehr! Wie sieht Ihrer denn aus?" -

"Meiner hat blonde Haare, ist 1,90 Meter groß, braun gebrannt, tolle Figur, Waschbrettbauch, guter Hintern, ein Lächeln wie Brad Pitt, die Hände von André Rieu und wenn er nachdenklich ist, den Dackelblick von George Clooney. Wie sieht Ihrer denn aus?" - "Vergessen wir meinen Mann, suchen wir Ihren!"

Aufgabe 4 Mehrfachbelegung des Tasters S0 (für Fortgeschrittene)

Abstandssensor der Firma Wenglor

Schreibe die C-Datei 04-Merker-4.c. Beim langen Betätigen von S0 (> 1 s) wird die LED L1 ein-, bzw. ausgeschaltet. Beim kurzen Betätigen wird das Blinken aktiviert

.

© mylime.info