No puedo resolver esto. Me darias una manito por favor?
//motores+Ctrol remoto+leds
//definiendo constantes de motores
const int AIA = 3;
const int AIB = 11;
const int BIA = 9;
const int BIB = 10;
const int ledTest = 13;
#include <IRremote.h>
//definimos el control remoto
//seteo del receptor
int receptorControl = 2;
IRrecv receptorIR(receptorControl);
decode_results codigoLeido;
decode_results codigoLeidoNuevo;
//seteo del Led RGB
int ledRojo = 1;
int ledVerde = 12;
int ledAzul = 6;
//apagamos todo
int potenciaRojo = 0;
int potenciaVerde = 0;
int potenciaAzul = 0;
//Definir variables LEDS
int ledBlancoDerecha = 5;
int ledBlancoIzquierda = 4;
int ledRojoDerecha = 7;
int ledRojoIzquierda = 8;
void setup() {
// definimos salidas
pinMode (AIA, OUTPUT);
pinMode (AIB, OUTPUT);
pinMode (BIA, OUTPUT);
pinMode (BIB, OUTPUT);
pinMode (ledTest, OUTPUT);
//todas las salidas apagadas
analogWrite(AIA, 0);
analogWrite(AIB, 0);
analogWrite(BIA, 0);
analogWrite(BIB, 0);
digitalWrite(ledTest, LOW);
Serial.begin(9600);
// programamos para que empiece a detectar las señales infrarrojas
receptorIR.enableIRIn();
pinMode(ledRojo, OUTPUT);
pinMode(ledVerde, OUTPUT);
pinMode(ledAzul, OUTPUT);
analogWrite(ledRojo, 0);
analogWrite(ledVerde, 0);
analogWrite(ledAzul, 0);
pinMode(ledTest, OUTPUT);
digitalWrite(ledTest, LOW);
// iniciar pines de salida
pinMode(ledBlancoDerecha, OUTPUT);
pinMode(ledBlancoIzquierda, OUTPUT);
pinMode(ledRojoDerecha, OUTPUT);
pinMode(ledRojoIzquierda, OUTPUT);
//apagar todos los leds
digitalWrite(ledBlancoDerecha, LOW);
digitalWrite(ledBlancoIzquierda, LOW);
digitalWrite(ledRojoDerecha, LOW);
digitalWrite(ledRojoIzquierda, LOW);
pinMode(ledTest, OUTPUT);
digitalWrite(ledTest, LOW);
//Saludo inicial
digitalWrite(ledTest, HIGH);
delay(500);
digitalWrite(ledTest, LOW);
delay(500);
digitalWrite(ledTest, HIGH);
delay(500);
digitalWrite(ledTest, LOW);
delay(500);
digitalWrite(ledTest, HIGH);
delay(500);
digitalWrite(ledTest, LOW);
delay(500);
}
void loop() {
// encender todos los leds por 1 segundo
digitalWrite(ledBlancoDerecha, HIGH);
delay(1000);
digitalWrite(ledBlancoIzquierda, HIGH);
delay(1000);
digitalWrite(ledRojoDerecha, HIGH);
delay(1000);
digitalWrite(ledRojoIzquierda, HIGH);
delay(1000);
//apagar todos los leds
digitalWrite(ledBlancoDerecha, LOW);
delay(2000);
digitalWrite(ledBlancoIzquierda, LOW);
delay(2000);
digitalWrite(ledRojoDerecha, LOW);
delay (2000);
digitalWrite(ledRojoIzquierda, LOW);
delay(2000);
// si recibe un nuevo dato, lo guarda como codigo leido nuevo
if (codigoLeidoNuevo.value != codigoLeido.value && codigoLeidoNuevo.value != 0xFFFFFFFF)
digitalWrite(ledTest, HIGH);
delay(50);
digitalWrite(ledTest, LOW);
Serial.println(codigoLeido.value, HEX);
//guardamos los nuevos valores
codigoLeido = codigoLeidoNuevo;
//switch compara el valor de la variable con lo especificado en el case de flecha para arriba
switch (codigoLeido.value)
void adelante()
analogWrite(AIA, 255);
analogWrite(AIB, 0);
analogWrite(BIA, 255);
analogWrite(BIB, 0);
void atras()
analogWrite(AIA, 0);
analogWrite(AIB, 255);
analogWrite(BIA, 0);
analogWrite(BIB, 255);
void derecha()
analogWrite(AIA, 255);
analogWrite(AIB, 0);
analogWrite(BIA, 0);
analogWrite(BIB, 255);
void izquierda()
analogWrite(AIA, 0);
analogWrite(AIB, 255);
analogWrite(BIA, 255);
analogWrite(BIB, 0);
void parar()
analogWrite(AIA, 255);
analogWrite(AIB, 255);
analogWrite(BIA, 255);
analogWrite(BIB, 255);
delay(500);
//si apretamos flecha para arriba
case 0xFF18E7:
analogWrite(ledRojo, 0);
adelante();
delay(1500);
//si apretamos flecha para abajo
case 0xFF4AB5:
analogWrite(ledRojo, 255);
atras();
delay(1500);
//si apretamos flecha izquierda
case 0xFF10EF:
analogWrite(ledAzul, 255);
izquierda();
delay(1000);
parar();
//si apretamos flecha derecha
case 0xFF5AA5:
analogWrite(ledVerde, 255);
derecha();
delay(1000);
parar();
//si apretamos el ok
case 0xFF38C7:
analogWrite(ledVerde, 127);
analogWrite(ledAzul, 127);
analogWrite(ledRojo, 127);
//si apretamos algo no definido, la led test parpadea
default:
digitalWrite(ledTest, HIGH);
delay(200);
digitalWrite(ledTest, LOW);
delay(200);
digitalWrite(ledTest, HIGH);
delay(200);
digitalWrite(ledTest, LOW);
delay(200);
void adelante() {
analogWrite(AIA, 255);
analogWrite(AIB, 0);
analogWrite(BIA, 255);
analogWrite(BIB, 0);
void atras()
analogWrite(AIA, 0);
analogWrite(AIB, 255);
analogWrite(BIA, 0);
analogWrite(BIB, 255);
void derecha()
analogWrite(AIA, 255);
analogWrite(AIB, 0);
analogWrite(BIA, 0);
analogWrite(BIB, 255);
void izquierda()
analogWrite(AIA, 0);
analogWrite(AIB, 255);
analogWrite(BIA, 255);
analogWrite(BIB, 0);
void parar() {
analogWrite(AIA, 255);
analogWrite(AIB, 255);
analogWrite(BIA, 255);
analogWrite(BIB, 255);
delay(500);
}