Paso 9: El código
Antes de cargar el código, tienes que descargar la librería IRremote.
#include < Servo.h >
#include < IRremote.h >
Servo servoLeft; Definir el servo izquierdo
Servo servoRight; Definir el servo derecho
Servo servoArm; Definir servo brazo
Servo servoClaw; Definir servo garra
int RECV_PIN = 11; IR recibir Pin
Irrecv(RECV_PIN) de IRrecv;
resultados de la decode_results;
void setup() {}
servoLeft.attach(10); Conjunto servo izquierdo para pin digital 10
servoRight.attach(9); Conjunto servo derecho al pin digital 9
servoArm.attach(5); Sistema servo del brazo para pin digital 5
servoClaw.attach(6); Conjunto servo garra para pin digital 6
Serial.Begin(9600);
irrecv.enableIRIn(); Iniciar el receptor}
void loop() {/ / bucle a través de pruebas de movimiento
Si (irrecv.decode (y resultados)) {}
decCode int largo = results.value;
Serial.println(decCode);
interruptor (results.value) {}
caso 0x2F0:
Serial.println("forward");
servoLeft.writeMicroseconds(1700);
servoRight.writeMicroseconds(1300);
rotura;
caso 0x810:
Serial.println("SlowForward");
servoLeft.writeMicroseconds(1520);
servoRight.writeMicroseconds(1480);
rotura;
caso 0xAF0:
Serial.println("REVERSE");
servoLeft.writeMicroseconds(1300);
servoRight.writeMicroseconds(1700);
rotura;
caso 0x910:
Serial.println("SlowReverse");
servoLeft.writeMicroseconds(1480);
servoRight.writeMicroseconds(1520);
rotura;
caso 0xCD0:
Serial.println("Right");
servoLeft.writeMicroseconds(1600);
servoRight.writeMicroseconds(1600);
rotura;
caso 0xA50:
Serial.println("SlowRight");
servoLeft.writeMicroseconds(1520);
servoRight.writeMicroseconds(1525);
rotura;
caso 0x2D0:
Serial.println("left");
servoLeft.writeMicroseconds(1400);
servoRight.writeMicroseconds(1400);
rotura;
caso 0x710:
Serial.println("SlowLeft");
servoLeft.writeMicroseconds(1480);
servoRight.writeMicroseconds(1475);
rotura;
caso 0xA70:
Serial.println("STOP");
servoLeft.writeMicroseconds(1500);
servoRight.writeMicroseconds(1500);
rotura;
caso 0x290:
Serial.println("Pos4");
servoArm.writeMicroseconds(1700);
rotura;
caso 0xC90:
Serial.println("Pos3");
servoArm.writeMicroseconds(1500);
rotura;
caso 0x490:
Serial.println ("posición 2");
servoArm.writeMicroseconds(1300);
rotura;
caso 0x5CE9:
Serial.println("Pos1");
servoArm.writeMicroseconds(900);
rotura;
caso 0x70:
Serial.println("Pos0");
servoArm.writeMicroseconds(2000);
rotura;
caso 0x890:
Serial.println("Open");
servoClaw.writeMicroseconds(1700);
rotura;
caso 0x90:
Serial.println("CLOSE");
servoClaw.writeMicroseconds(1000);
rotura;
rotura;
por defecto: Serial.println ("esperando...");}
irrecv.resume(); Recibir el siguiente valor
}
}
Este código es muy simple de comprender ya que es un montón de repetición.
El comienzo #includes son dirigir a la junta con las dos bibliotecas (Servo.h viene descargado con el IDE de Arduino)
Después de eso, están definiendo Servos para que el Consejo sepa cuantos servos que son y lo que llaman.
Entonces, el pin de recepción IR se define como pin 11 y les pide para decodificar los resultados de lo que recibe.
En void_setup, se definen los números de pin de servo y el receptor de infrarrojos y la serie se comenzaron.
En el void_loop, el programa decodifica los códigos de IR y hace cosas en una sentencia case. Una sentencia case es similar a un if instrucción, pero se utiliza menos líneas de código. Comprueba si se cumple el caso, y si así, ejecuta el código debajo de él, hasta que la instrucción break.
Para obtener los códigos IR del mando a distancia TV, ejecutar el ejemplo IRrecv_demo en la biblioteca de control remoto. Botones y observe los códigos que usted recibe por botón. Cambie mis códigos de control remoto de TV (después de la instrucción de caso después de 0 x) en el programa basado en los botones que desea utilizar. No tienes que utilizar todas las funciones. El servo.writeMicroseconds(xxxx) dice simplemente los servos que hacer, como girar en una dirección, qué posición o para ir a. Estos valores también pueden ser jugados con.
Cargar el programa en el Arduino y usted debe ser bueno para ir!
Si tiene alguna pregunta, siéntase libre de comentar y me responderá con prontitud.