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.
Erweitert das Programm so, dass BOB3 insgesamt 5 Freunde erkennt.
Kannst du das Programm auch noch so erweitern, dass es zusätzlich einen besten Freund erkennt und diesen mit blauen Augen begrüßt?