#include <IRremote.h>
#define Power 0xFD807F
#define Down 0xFD906F
#define Derecha 0xFD609F
#define Izquierda 0xFD20DF
//Variables para el sensor IP
int RECV_PIN = 8;
IRrecv irrecv(RECV_PIN);
decode_results results;
//variables de entrada para los motores
//Motor 1 arriba
int adelante=2;
int atras=3;
//Motor2 abajo
int izquierda=6;
int derecha=7;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // Inicia la recepcuión del IR
// iniciamos los pines de los motors
pinMode(adelante,OUTPUT);
pinMode(atras,OUTPUT);
pinMode(izquierda,OUTPUT);
pinMode(derecha,OUTPUT);
// mantener apagados los motores
analogWrite(adelante,0);
analogWrite(atras,0);
analogWrite(izquierda,0);
analogWrite(derecha,0);
}
void loop() {
results.value=0;
if (irrecv.decode(&results)){
Serial.println(results.value, HEX);
irrecv.resume(); //Empiza la recepción IR
//Activar motores
if(results.value == 0xFD807F){ //adelante
analogWrite(adelante,155);
analogWrite(atras,0);
analogWrite(izquierda,0);
analogWrite(derecha,0);
}
if(results.value == 0xFD906F){ //retroceso
analogWrite(adelante,0);
analogWrite(atras,155);
analogWrite(izquierda,0);
analogWrite(derecha,0);
}
if(results.value == 0xFD20DF){ //gira a la izquierda
analogWrite(adelante,0);
analogWrite(atras,0);
analogWrite(izquierda,155);
analogWrite(derecha,0);
}
if(results.value == 0xFD609F){ //gira a la derecha
analogWrite(adelante,0);
analogWrite(atras,0);
analogWrite(izquierda,0);
analogWrite(derecha,250);
}
if(results.value == 0xFD40BF){ //detener
analogWrite(adelante,0);
analogWrite(atras,0);
analogWrite(izquierda,0);
analogWrite(derecha,0);
}
if(results.value == 0xFFFFFFFF){ //prueba
analogWrite(adelante,155);
analogWrite(atras,0);
analogWrite(izquierda,0);
analogWrite(derecha,0);
}
}
delay(300);
}