¿Puede obtener la modulación de señal de un control remoto infrarrojo con un Arduino?

0

Permítanme prefaciar que soy un gran noob de electrónica. Soy decente con la programación.

Tengo un HDTV RCA L40FHD41 que compré en 2010. He intentado usar muchos controles remotos universales con este televisor, pero después de probar cientos de códigos, nada funciona. Compré un control remoto de reemplazo barato (RCA 276045 Control Remoto de TV) pero es impredecible cuando decide trabajar realmente. Esperaba poder usar un Arduino con un receptor IR para obtener todos los códigos IR para el control remoto cuando se está comportando, y luego intentar hacer un transmisor IR Arduino para controlar el televisor.

Tenía un trozo de código que básicamente tomaría una entrada IR sin procesar y la emitiría a través de un LED IR. Para realizar la prueba, apunté el LED IR al receptor remoto de medios de mi PC y presioné algunos botones en el control remoto de medios de PC. Eso funciono. Pero cuando apunté el LED IR al televisor y pulsé los botones del control remoto del televisor, no sucedió nada. Creo que la televisión usa una modulación de diferencia. He leído que la mayoría de los IR estándar usan 38Khz. Quiero saber qué modulación usa el control remoto de TV. ¿Hay alguna forma de obtener esa información utilizando un Arduino y un receptor IR?

Editar: Alguien dijo que podría tratarse de un problema de decodificación. Ese no puede ser el caso, porque utilicé otra pieza de código de ejemplo para obtener los tiempos y los códigos HEX para todos los botones, y cuando presioné el mismo botón varias veces, obtuve los mismos resultados, de manera consistente. Aquí hay un ejemplo de la salida de esa pieza de código de muestra: BOTÓN DE ENCENDIDO

Código: 6A68351E (32 bits)

Tiempo [51]:

 +4050, -3400     + 800, -1650     + 800, -1600     + 850, -1600
 + 800, -1600     + 800, - 650     + 800, - 650     + 850, -1600
 + 800, - 650     + 800, -1650     + 750, - 700     + 750, -1650
 + 750, - 750     + 700, - 750     + 750, - 700     + 750, - 700
 + 750, - 750     + 700, -1700     + 700, -1700     + 700, - 750
 + 700, -1750     + 650, - 800     + 600, -1850     + 600, - 850
 + 600, -1800     + 600

unsigned int rawData [51] = {4050,3400, 800,1650, 800,1600, 850,1600, 800,1600, 800,650, 800,650, 850,1600, 800,650, 800,1650, 750,700, 750,1650 , 750,750, 700,750, 750,700, 750,700, 750,750, 700,1700, 700,1700, 700,750, 700,1750, 650,800, 600,1850, 600,850, 600,1800, 600};

EDITAR: Tengo un código trabajando para encender / apagar el televisor. No estoy seguro de qué es diferente entre el código que simplemente tomó una entrada en bruto y la emitió.

    
pregunta YoItsTrev

1 respuesta

1

No puede hacerlo con un receptor IR común como TSOP4840 o CHQ0038 porque ya tienen un demodulador incorporado (consulte el diagrama de bloques en la hoja de datos).

Necesita un sensor acoplado de CA como el TSMP58000.

La IRLib2 la biblioteca de infrarrojos Arduino tiene una bosquejo de ejemplo que determina la frecuencia de modulación. El procedimiento se describe con más detalle en el manual .

Por cierto, en mi opinión, es más probable que tenga algún problema de tiempo, decodificación o rango que el televisor use algo diferente a 38 kHz. ¿Tiene un osciloscopio / analizador lógico y un segundo receptor IR?

    
respondido por el AndreKR

Lea otras preguntas en las etiquetas