Paso 2: Cómo configurar los datos
/ * Modificado por Chris Targett
* Ahora incluye protocolos más
* Noviembre 2011
* IRremote: IRrecvDump - descarga datos de códigos IR con IRrecv
* Un detector IR/demodulador debe conectarse a la entrada RECV_PIN.
* Versión 0.1 de julio de 2009
* Copyright 2009 Ken Shirriff
* http://arcfn.com
*
* Modificado por Chris Targett para acelerar el proceso de recolección de
* IR (HEX y DEC) códigos de un control remoto (puesto en y archivo .h)
*
*/
#include < IRremote.h >
int RECV_PIN = 11;
Irrecv(RECV_PIN) de IRrecv;
resultados de la decode_results;
void setup()
{
Serial.Begin(9600);
irrecv.enableIRIn(); Inicio del receptor
}
Volcados hacia fuera de la estructura decode_results.
Llamar a esto después de IRrecv::decode()
void * para solucionar problema de compilador
void dump(void *v) {}
decode_results * resultados = (decode_results *) v
void dump(decode_results *results) {}
int cuenta = resultados -> rawlen;
Si (resultados -> decode_type == desconocido) {}
Serial.Print ("codificación desconocido:");
}
else if (resultados -> decode_type == NEC) {}
Serial.Print ("Decoded NEC:");
}
else if (resultados -> decode_type == SONY) {}
Serial.Print ("Decoded SONY:");
}
else if (resultados -> decode_type == RC5) {}
Serial.Print ("Decoded RC5:");
}
else if (resultados -> decode_type == RC6) {}
Serial.Print ("Decoded RC6:");
}
else if (resultados -> decode_type == SAMSUNG) {}
Serial.Print ("Decoded SAMSUNG:");
}
else if (resultados -> decode_type == JVC) {}
Serial.Print ("Decoded JVC:");
}
else if (resultados -> decode_type == PANASONIC) {}
Serial.Print ("Decoded Panasonic:");
}
Serial.Print (resultados -> valor, hexagonal);
Serial.Print("(");
Serial.Print (resultados -> bits, DEC);
Serial.println ("bits)");
Serial.Print ("#define Something_DEC");
Serial.println (resultados -> valor, DEC);
Serial.Print ("#define Something_HEX");
Serial.println (resultados -> valor, hexagonal);
Serial.Print ("Raw ('');
Serial.Print (cuenta, DEC);
Serial.Print("):");
para (int i = 0; i < cuenta; i ++) {}
Si ((i % 2) == 1) {}
Serial.Print (resultados -> rawbuf [i] * USECPERTICK, DEC);
}
Else {}
Serial.Print (-resultados (int) -> rawbuf [i] * USECPERTICK, DEC);
}
Serial.Print("");
}
Serial.println("");
}
void loop() {}
Si (irrecv.decode (y resultados)) {}
descarga (y resultados);
irrecv.resume(); Recibir el siguiente valor
}
}
Puedes ver en la imagen cómo conectar Arduino con el dispositivo.
Después de cargar el código de Arduino, debemos presionar los botones en el control remoto y la copia en algún lugar los resultados mostrados por la serie.
En mi caso, tengo la siguiente secuencia de codificaciones:
Conectando 20 C ° Caldo
Primas (150):-5320 3000-3000 3000-4400 550 600-1600-550 550 550-1650-550 550-550 550 550-1650-550 550-1650 500-550 550 550-1650-550 550-500 600-500 600-550 550-550 550-1650 500-550 550 500-1700-600 500-550 550-550 550-550 550-600 500-550 550-550 550-550 550-550 550 550-1650-1650 550-1650 500-1650 550-1650 550-550 550-550 550-550 550-550 550 - 1650 550 550-1650-500 550-550 550-1700 500-1650 550-550 550-500 600-550 550-550 550-550 550-550 550-550 550-1650 500-1700 500-550 550-550 550-550 550-550 550-550 550-600 500-550 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550 550-1650-500 550 500-1700-550 550-550 550-550 550-1650 550
Spegnimento
Primas (150):-3276 3100-2900 2950-4400 700 700-1500-400 700 700-1500-400 650-450 550 550-1650-550 650 600-1500 600-1600-500 600-500 600-500 600-450 650-450 600-550 550-550 550-550 550-600 500 600-1600-500 600-500 600-550 550-500 600-500 600-550 550-550 550 600-1600-500 600-500 600-500 550-1650 550 600-1600-500 600-500 600-550 550-550 550 - 1600 600 550-1600-550 550-550 550-1650 550 600-1600-550 550-500 600-500 600-550 550-550 550-500 600-500 600 600-1600 550-1600-550 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-500 600-550 550-550 550-500 600-500 600-500 600 600-1600-500 600 550-1600 600-1600-550 550-550 550-550 550
Conectando 23 C ° Freddo 2 FAN
Primas (150):-16044 3050-3000 3000-4400 550 600-1600-550 550 550-1650-550 550-550 550 550-1650-500 600 550-1600-550 550 550-1650-1650 550-1650 550-550 550-550 550-500 600 550-1600-550 550 550-1650-550 550-550 550-550 550-550 550-550 550-550 550-550 550-500 600-1650 500-550 550 500-1700-600 500-550 550-550 550-550 550-550 550-550 550-550 550 - 1650 550 550-1650-550 550 550-1650-500 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-1650 550-550 550-550 550-550 550-550 550-500 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-1650 550 600-1600-550 550
Conectando 20 C ° Caldo e Swing
Primas (150): 18566 3000-3000 3000-4400 550-1650 550-500 600 600-1600-500 600-500 600 550-1600-550 550 550-1650-500 600 600-1600-550 550-550 550-550 550 600-1600-500 600-500 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-1650 550 550-1600-550 550-550 550-600 500-550 550-550 550-550 550-550 550-550 550 - 1650 550 550-1650-550 550-550 550 550-1600-1650 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550 550-1650-1650 550-550 550-550 550-550 550-550 500-550 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-1650 550 550-1650-1650 500-1650 550-550 550-1700 500
Conectando 23 C ° Freddo 2 ventilador e Swing
Primas (150): 2084 2950-3050 2950-4400 550 600-1600-550 550 550-1650-550 550-550 550 600-1600-500 600 550-1600-500 600 550-1650-1650 550 600-1600 600-1600-500 600-500 600-500 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-500 600-550 550-500 600-1650 550-550 550 600-1600-500 600 550-1600 600-1600-500 600-500 600-550 550-500 600 - 1650 550 600-1600-500 600 550-1650-500 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-1650 550-500 600-500 600-500 600-500 600-500 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-1650 550-1650 550 600-1600 550-1600-550 600-500 550-550 550-550 550
Como se informó en el iRemote biblioteca, para retransmitir estos datos, es necesario hacer algunos cambios, en particular, es necesario reemplazar los guiones, borrar el primer valor y colocar entre varios valores, una coma, como en el Arduino de código se inserta en un vector de enteros.
Para facilitar esto, he creado un pequeño programa en Java que puede hacer estas tareas automáticamente.
También este programa está disponible en el repositorio de Github y se llama AcToolArduino. En esta primera versión, el programa automatiza el proceso introduciendo la información en el campo de texto. En la próxima versión, se puede cargar desde archivo, los resultados obtenidos de la Arduino serial.