Estoy jugando con la biblioteca IR de Arduino y Ken Shirriff . Estoy tratando de controlar el receptor de audio Sony usando códigos que encontré en la red.
Todo funciona bien, puedo controlar el dispositivo enviando una señal IR desde Arduino, usando sendSony
la función. Sin embargo, tengo problemas para aprender esos mismos códigos en un dispositivo de control remoto universal (he probado dos hasta ahora). Simplemente no reconoce los códigos que, repito, funcionan perfectamente con el dispositivo actual de Sony.
Cualquiera tiene una idea de dónde podrían salir mal las cosas y con qué parámetros debo jugar. He probado variando la frecuencia de modulación (36-38-40 kHz), y la frecuencia de envío de códigos individuales (alterando la pausa entre sucesivas emisiones).
Aquí está el código que estoy usando:
#include <IRremote.h>
IRsend irsend;
void setup()
{
Serial.begin(9600);
irsend.enableIROut(40);
}
void sonySend(int code) {
for (int i = 0; i < 50; i++) {
irsend.sendSony(code, 12); // Sony TV power code
delay(30);
}
}
void loop() {
sonySend(0x841); // tuner
// sonySend(0xc41); // tape 1
delay(1000);
}
Editar: tengo un control remoto original de Sony (con algunos códigos comunes que funcionan en mi dispositivo). Los controles remotos universales no tienen problemas para aprender de ese control remoto de Sony. Solo de Arduino.
Los controles remotos universales que estoy usando son chinos sin nombre, sin embargo, funcionaron perfectamente aprendiendo de otros controles remotos.
Una forma sencilla de depurar sería usar un osciloscopio para comparar la diferencia entre el control remoto real y la señal de Arduino.
Utilice un receptor IR y alcance los resultados de Arduino y el control remoto con los mismos datos enviados. O abra el control remoto y alcance las líneas directamente y compárelas con las líneas de conducción de datos de Arduino. Luego ajuste su código para que los dos sean idénticos. Como dice @mpflaga, el tiempo entre envíos es probablemente sospechoso.
AndrejaKo
mpflaga
mpflaga
Mladen Jablanovic