Loading...

Freund/Feind Erkennung - Teil 2

Jetzt soll 'der Bob' die gesendeten ID-Codes von 'den Anderen' empfangen und auswerten!

Wenn er einen Freund erkennt, der ID-Code also von einem Freund stammt, sollen seine Augen grün leuchten, falls nicht sollen sie rot leuchten!

In der Funktion loop_bob() deklarieren wir die Variable message.

Anschließend rufen wir die Methode bob3.receiveMessage(1000); auf und warten bis zu einer Sekunde auf eine übertragene IR-Message.

Die Variable message hat jetzt entweder den Wert -1 falls nichts empfangen wurde oder einen Wert zwischen 0 und 255 falls eine IR-Message übertragen wurde.

Jetzt kommt ein switch/case Block zur Fallunterscheidung:

Zuerst wird der Fall 'nichts empfangen' abgehandelt:

 case -1:
   // nix empfangen...
   break;

Hier ist nichts zu tun, also benötigen wir nur die break-Anweisung!

Danach kommen die Freunde an die Reihe:

 case ID_FRIEND_A:
 case ID_FRIEND_B:
 case ID_FRIEND_C:
   // ein Freund :-)
   bob3.setEyes(GREEN, GREEN);
   delay(800);
   break;

Alle drei case Fälle stehen ohne break-Anweisung direkt übereinander. Dadurch wird in allen drei Fällen das gleiche ausgeführt: Die Augen werden für 800 ms grün eingeschaltet!
Abschließend kommt das gemeinsame break.

Zum Schluss kommt noch der Fall für alle übrigen Werte:

 default:
   // kein Freund :-(
   bob3.setEyes(RED, RED);
   delay(800);
   break;

Hier werden die Augen werden für 800 ms rot eingeschaltet!

Überlegt euch, wer der Bob, wer ein Freund und wer ein Feind sein soll und tragt die entsprechenden ID-Codes in die Zeilen 3 bis 6 ein.

Compiliert euer Programm und testet es mit den BOB3 Einheiten!

Erweitert das Programm so, dass BOB3 insgesamt 5 Freunde erkennt.

Compiliere dein Programm und teste es mit deinen Freunden.

Kannst du das Programm auch noch so erweitern, dass es zusätzlich einen besten Freund erkennt und diesen mit blauen Augen begrüßt?

1: Kann man bei einem switch-Block mehrere Fälle gemeinsam behandeln?
2: Benötigt jeder case sein eigenes break?
3: Womit definiert man beim switch-Block den Standardfall?
 Du hast nichts ausgefüllt!
 Prima, soweit richtig…
 Prima, alles richtig!
 Leider falsch…
 Eine Antwort ist richtig
 Schon ein paar richtig…