Paso 13: Y y Z eje código
El código para controlar el signo de axii Y y Z están cargados en el mismo Arduino, por lo que el código es todo en un programa.El eje Y se mueve en 2 direcciones, el eje Z va hacia arriba y hacia abajo, y abrir y cerrar la pinza.
Código de Arduino:
#include < Servo.h >
#include < Wire.h >
Serva YA;
Servo YB;
Servo Z;
Garra del servo;
Cosas de IR
#include < IRremote.h >
int RECV_PIN = 11;
Irrecv(RECV_PIN) de IRrecv;
resultados de la decode_results;
Acción de cadena;
String oldAction;
tiempo largo sin firmar;
timeIR largo sin firmar;
timeDiff largo sin firmar;
int dir = 0;
oldDir int = 0;
void setup() {}
Serial.Begin(9600);
irrecv.enableIRIn(); Iniciar el receptor IR
}
void loop() {}
leer botones IR y de fijar la acción / /
Si (irrecv.decode (y resultados)) {}
largo x = results.value;
Serial.println (results.value, hexagonal); para descifrar los botones
Serial.println(x);
timeIR = millis(); tiempo récord de push botón
{Switch(x)}
caso 351005205:
acción = "arriba";
DIR = 5;
rotura;
caso 350988375:
acción = "abajo";
DIR = 6;
rotura;
caso 350963895:
acción = "flecha izquierda";
DIR = 1;
rotura;
caso 350976645:
acción = "flecha derecha";
DIR = 2;
rotura;
caso 350952165:
acción = "ok/mute";
DIR = 3;
rotura;
caso 350986335:
acción = "B2";
DIR = 4;
rotura;
caso 4294967295:
rotura;
}
irrecv.resume(); Recibir el siguiente valor
}
timeDiff = millis() - timeIR;
Si ((timeDiff > 200) & & dir! = 0) {//if ningún botón
DIR = 0;
Acción = 'none';
}
Si (acción! = oldAction) {}
Si (acción == "flecha izquierda") {}
YA.attach(9);
YA.write(0);
YB.attach(10);
YB.write(180);
Serial.println ("Y ir a la izquierda");
Delay(100);
}
Si (acción == "flecha derecha") {}
YA.attach(9);
YA.write(180);
YB.attach(10);
YB.write(0);
Serial.println ("Y a la derecha");
Delay(100);
}
Si (acción == "B2") {}
Z.Attach(2);
Z.Write(180); abajo
Claw.Attach(6);
Claw.Write(100); ¿abrir?
Serial.println ("garra y abierta");
Delay(100);
}
Si (acción == "ok/mute") {}
Z.Attach(2);
Z.Write(0); hasta
Claw.Attach(6);
Claw.Write(20); ¿cerrar?
Serial.println ("garra y cerrar");
Delay(100);
}
Si ((acción == 'none') & & (oldDir == 1 || oldDir == 2 || oldDir == 3 || oldDir == 4)) {}
YA.detach();
YB.detach();
Z.Detach();
Claw.Detach();
Serial.println ("parar todo");
Delay(100);
}
Serial.Print(dir);
Serial.Print("");
Serial.println(Action);
}
oldDir = dir;
oldAction = acción;
Delay(100);
} #include < Servo.h >
#include < Wire.h >
Serva YA;
Servo YB;
Servo Z;
Garra del servo;
Cosas de IR
#include < IRremote.h >
int RECV_PIN = 11;
Irrecv(RECV_PIN) de IRrecv;
resultados de la decode_results;
Acción de cadena;
String oldAction;
tiempo largo sin firmar;
timeIR largo sin firmar;
timeDiff largo sin firmar;
int dir = 0;
oldDir int = 0;
void setup() {}
Serial.Begin(9600);
irrecv.enableIRIn(); Iniciar el receptor IR
}
void loop() {}
leer botones IR y de fijar la acción / /
Si (irrecv.decode (y resultados)) {}
largo x = results.value;
Serial.println (results.value, hexagonal); para descifrar los botones
Serial.println(x);
timeIR = millis(); tiempo récord de push botón
{Switch(x)}
caso 351005205:
acción = "arriba";
DIR = 5;
rotura;
caso 350988375:
acción = "abajo";
DIR = 6;
rotura;
caso 350963895:
acción = "flecha izquierda";
DIR = 1;
rotura;
caso 350976645:
acción = "flecha derecha";
DIR = 2;
rotura;
caso 350952165:
acción = "ok/mute";
DIR = 3;
rotura;
caso 350986335:
acción = "B2";
DIR = 4;
rotura;
caso 4294967295:
rotura;
}
irrecv.resume(); Recibir el siguiente valor
}
timeDiff = millis() - timeIR;
Si ((timeDiff > 200) & & dir! = 0) {//if ningún botón
DIR = 0;
Acción = 'none';
}
Si (acción! = oldAction) {}
Si (acción == "flecha izquierda") {}
YA.attach(9);
YA.write(0);
YB.attach(10);
YB.write(180);
Serial.println ("Y ir a la izquierda");
Delay(100);
}
Si (acción == "flecha derecha") {}
YA.attach(9);
YA.write(180);
YB.attach(10);
YB.write(0);
Serial.println ("Y a la derecha");
Delay(100);
}
Si (acción == "B2") {}
Z.Attach(2);
Z.Write(180); abajo
Claw.Attach(6);
Claw.Write(100); ¿abrir?
Serial.println ("garra y abierta");
Delay(100);
}
Si (acción == "ok/mute") {}
Z.Attach(2);
Z.Write(0); hasta
Claw.Attach(6);
Claw.Write(20); ¿cerrar?
Serial.println ("garra y cerrar");
Delay(100);
}
Si ((acción == 'none') & & (oldDir == 1 || oldDir == 2 || oldDir == 3 || oldDir == 4)) {}
YA.detach();
YB.detach();
Z.Detach();
Claw.Detach();
Serial.println ("parar todo");
Delay(100);
}
Serial.Print(dir);
Serial.Print("");
Serial.println(Action);
}
oldDir = dir;
oldAction = acción;
Delay(100);
}