Stap 13: Y en Z as code
De code waarmee de axii Y en Z zijn beide geladen op hetzelfde Arduino., dus de code is alles in één programma.De Y-as wordt verplaatst in 2 richtingen, de Z-as gaat op en neer, en de klauw wordt geopend en gesloten.
Arduino Code:
#include < Servo.h >
#include < Wire.h >
Servo YA;
Servo YB;
Servo Z;
Servo klauw;
IR spullen
#include < IRremote.h >
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results resultaten;
Tekenreeks actie;
String oldAction;
niet-ondertekende lange tijd;
unsigned long timeIR;
unsigned long timeDiff;
int dir = 0;
int oldDir = 0;
VOID Setup {}
Serial.begin(9600);
irrecv.enableIRIn(); Start van de IR ontvanger
}
void loop {}
Lees IR knoppen en de actie instellen / /
Als (irrecv.decode (& resultaten)) {}
lange x = results.value;
Serial.println (results.value, HEX); voor het decoderen van de knoppen
Serial.println(x);
timeIR = millis(); de tijd van het wereldverslag van knop push
switch(x) {}
Case 351005205:
actie = "pijl";
dir = 5;
breken;
Case 350988375:
actie = "pijl";
dir = 6;
breken;
Case 350963895:
actie = "pijl links";
dir = 1;
breken;
Case 350976645:
actie = "pijl-rechts";
dir = 2;
breken;
Case 350952165:
actie = "ok/mute";
dir = 3;
breken;
Case 350986335:
actie = "B2";
dir = 4;
breken;
Case 4294967295:
breken;
}
irrecv.resume(); De volgende waarde ontvangen
}
timeDiff = millis() - timeIR;
Als ((timeDiff > 200) & & dir! = 0) {//if geen knop
DIR = 0;
actie = "geen";
}
Als (actie! = oldAction) {}
Als (actie == "left pijl") {}
YA.attach(9);
YA.write(0);
YB.attach(10);
YB.write(180);
Serial.println ("Y Ga links");
delay(100);
}
Als (actie == "pijl-rechts") {}
YA.attach(9);
YA.write(180);
YB.attach(10);
YB.write(0);
Serial.println ("Y Ga rechts");
delay(100);
}
Als (actie == "B2") {}
Z.attach(2);
Z.write(180); naar beneden
Claw.attach(6);
Claw.write(100); Open?
Serial.println ("klauw naar beneden en open");
delay(100);
}
Als (actie == "ok/mute") {}
Z.attach(2);
Z.write(0); omhoog
Claw.attach(6);
Claw.write(20); sluiten?
Serial.println ("klauw te sluiten");
delay(100);
}
Als ((actie == "none") & & (oldDir == 1 || oldDir == 2 || oldDir == 3 || oldDir == 4)) {}
YA.detach();
YB.detach();
Z.Detach();
Claw.Detach();
Serial.println ("alle stop");
delay(100);
}
Serial.Print(dir);
Serial.Print("");
Serial.println(Action);
}
oldDir = dir;
oldAction = actie;
delay(100);
} #include < Servo.h >
#include < Wire.h >
Servo YA;
Servo YB;
Servo Z;
Servo klauw;
IR spullen
#include < IRremote.h >
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results resultaten;
Tekenreeks actie;
String oldAction;
niet-ondertekende lange tijd;
unsigned long timeIR;
unsigned long timeDiff;
int dir = 0;
int oldDir = 0;
VOID Setup {}
Serial.begin(9600);
irrecv.enableIRIn(); Start van de IR ontvanger
}
void loop {}
Lees IR knoppen en de actie instellen / /
Als (irrecv.decode (& resultaten)) {}
lange x = results.value;
Serial.println (results.value, HEX); voor het decoderen van de knoppen
Serial.println(x);
timeIR = millis(); de tijd van het wereldverslag van knop push
switch(x) {}
Case 351005205:
actie = "pijl";
dir = 5;
breken;
Case 350988375:
actie = "pijl";
dir = 6;
breken;
Case 350963895:
actie = "pijl links";
dir = 1;
breken;
Case 350976645:
actie = "pijl-rechts";
dir = 2;
breken;
Case 350952165:
actie = "ok/mute";
dir = 3;
breken;
Case 350986335:
actie = "B2";
dir = 4;
breken;
Case 4294967295:
breken;
}
irrecv.resume(); De volgende waarde ontvangen
}
timeDiff = millis() - timeIR;
Als ((timeDiff > 200) & & dir! = 0) {//if geen knop
DIR = 0;
actie = "geen";
}
Als (actie! = oldAction) {}
Als (actie == "left pijl") {}
YA.attach(9);
YA.write(0);
YB.attach(10);
YB.write(180);
Serial.println ("Y Ga links");
delay(100);
}
Als (actie == "pijl-rechts") {}
YA.attach(9);
YA.write(180);
YB.attach(10);
YB.write(0);
Serial.println ("Y Ga rechts");
delay(100);
}
Als (actie == "B2") {}
Z.attach(2);
Z.write(180); naar beneden
Claw.attach(6);
Claw.write(100); Open?
Serial.println ("klauw naar beneden en open");
delay(100);
}
Als (actie == "ok/mute") {}
Z.attach(2);
Z.write(0); omhoog
Claw.attach(6);
Claw.write(20); sluiten?
Serial.println ("klauw te sluiten");
delay(100);
}
Als ((actie == "none") & & (oldDir == 1 || oldDir == 2 || oldDir == 3 || oldDir == 4)) {}
YA.detach();
YB.detach();
Z.Detach();
Claw.Detach();
Serial.println ("alle stop");
delay(100);
}
Serial.Print(dir);
Serial.Print("");
Serial.println(Action);
}
oldDir = dir;
oldAction = actie;
delay(100);
}