Stap 3: Als verklaringen
Nu we onze animaties hebben en bibliotheken ingesteld, hebben wij voor rundvlees van onze hoofdlus. In principe hebben wij twee voorwaarden. De startknop wordt gedrukt, een animatie afspelen als een infrarood signaal voor een andere Gamer. Anders, als de Gamer een infrarood bericht ontvangt, moeten wij de ontvangen animatie spelen.
Voor de detectie of de startknop is ingedrukt, gebruiken we de functie isPressed().
Voor het controleren als we iets hebben ontvangen, gebruiken we de functie infrared.receive(). We bent de controle voor de "h" want dat is de boodschap die we sturen. U kunt vrijwel elke één brief versturen. We hebben gekozen voor "h", wat staat voor "high".
Hier is wat onze code zou moeten uitzien.
#include <Gamer.h> #include <GamerIR.h> #include <SoftwareSerial.h> #define NUMFRAMESSENDANIMATION 12 byte sendAnimation[NUMFRAMESSENDANIMATION][8] = { {B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B11111111}, {B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B11111111, B01111110}, {B00000000, B00000000, B00000000, B00000000, B00000000, B11111111, B01111110, B00111100}, {B00000000, B00000000, B00000000, B00000000, B11111111, B01111110, B00111100, B00011000}, {B00000000, B00000000, B00000000, B11111111, B01111110, B00111100, B00011000, B00000000}, {B00000000, B00000000, B11111111, B01111110, B00111100, B00011000, B00000000, B00000000}, {B00000000, B11111111, B01111110, B00111100, B00011000, B00000000, B00000000, B00000000}, {B11111111, B01111110, B00111100, B00011000, B00000000, B00000000, B00000000, B00000000}, {B01111110, B00111100, B00011000, B00000000, B00000000, B00000000, B00000000, B00000000}, {B00111100, B00011000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000}, {B00011000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000}, {B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000}}; #define NUMFRAMESRECEIVEANIMATION 12 byte receiveAnimation[NUMFRAMESRECEIVEANIMATION][8] = { {B11111111, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000}, {B01111110, B11111111, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000}, {B00111100, B01111110, B11111111, B00000000, B00000000, B00000000, B00000000, B00000000}, {B00011000, B00111100, B01111110, B11111111, B00000000, B00000000, B00000000, B00000000}, {B00000000, B00011000, B00111100, B01111110, B11111111, B00000000, B00000000, B00000000}, {B00000000, B00000000, B00011000, B00111100, B01111110, B11111111, B00000000, B00000000}, {B00000000, B00000000, B00000000, B00011000, B00111100, B01111110, B11111111, B00000000}, {B00000000, B00000000, B00000000, B00000000, B00011000, B00111100, B01111110, B11111111}, {B00000000, B00000000, B00000000, B00000000, B00000000, B00011000, B00111100, B01111110}, {B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00011000, B00111100}, {B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00011000}, {B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000}}; Gamer gamer; GamerIR infrared; void setup() { gamer.begin(); } void loop() { if(gamer.isPressed(START)) { } if(infrared.receive() == "h") { } }