#include <Servo.h>
#define servoLPin 12
#define servoRPin 8
Servo myservoL;
Servo myservoR;
int speedDefaultL = 106;
int speedDefaultR = 90;
int offsetR = 10;
int offsetL = 10;
char ch;
void setup(){
}
void loop(){
if (Serial.available()) {
ch = Serial.read();
switch(ch){
case 'Q': goQ();break;
case 'E': goE();break;
case 'Z': goZ();break;
case 'C': goC();break;
case 'F': goF();break;
case 'B': goB();break;
case 'L': goL();break;
case 'R': goR();break;
case 'S': goS();break;
case 'P': goP();break;
}
}
}
void goP(){
goR();
delay(1400);
goF();
delay(2500);
goL();
delay(800);
goQ();
delay(620);
goC();
delay(580);
goQ();
delay(100);
goS();
}
void goC(){
if(!myservoL.attached()){
myservoL.attach(servoLPin);
}
if(!myservoR.attached()){
myservoR.attach(servoRPin);
}
myservoL.write(speedDefaultL - 2*offsetL);
myservoR.write(speedDefaultR + offsetR);
}
void goZ(){
if(!myservoL.attached()){
myservoL.attach(servoLPin);
}
if(!myservoR.attached()){
myservoR.attach(servoRPin);
}
myservoL.write(speedDefaultL - offsetL);
myservoR.write(speedDefaultR + 2*offsetR);
}
void goE(){
if(!myservoL.attached()){
myservoL.attach(servoLPin);
}
if(!myservoR.attached()){
myservoR.attach(servoRPin);
}
myservoL.write(speedDefaultL + 2*offsetL);
myservoR.write(speedDefaultR - offsetR);
}
void goQ(){
if(!myservoL.attached()){
myservoL.attach(servoLPin);
}
if(!myservoR.attached()){
myservoR.attach(servoRPin);
}
myservoL.write(speedDefaultL + offsetL);
myservoR.write(speedDefaultR - 2*offsetR);
}
void goF(){
if(!myservoL.attached()){
myservoL.attach(servoLPin);
}
if(!myservoR.attached()){
myservoR.attach(servoRPin);
}
myservoL.write(speedDefaultL + offsetL);
myservoR.write(speedDefaultR - offsetR);
}
void goB(){
if(!myservoL.attached()){
myservoL.attach(servoLPin);
}
if(!myservoR.attached()){
myservoR.attach(servoRPin);
}
myservoL.write(speedDefaultL - offsetL);
myservoR.write(speedDefaultR + offsetR);
}
void goL(){
if(!myservoL.attached()){
myservoL.attach(servoLPin);
}
if(myservoR.attached()){
myservoR.write(speedDefaultR);
myservoR.detach();
}
myservoL.write(speedDefaultL - offsetL);
}
void goR(){
if(myservoL.attached()){
myservoL.write(speedDefaultL);
myservoL.detach();
}
if(!myservoR.attached()){
myservoR.attach(servoRPin);
}
myservoR.write(speedDefaultR + offsetR);
}
void goS(){
if(myservoL.attached()){
myservoL.write(speedDefaultL);
myservoL.detach();
}
if(myservoR.attached()){
myservoR.write(speedDefaultR);
myservoR.detach();
}
}