¿Cómo volver a generar una forma de onda del protocolo SIRC previamente guardada?

Estoy tratando de replicar el control remoto para mi sistema de cine en casa Sony. Empecé analizando la señal demodulada del botón de encendido usando un demodulador IR TSOP1738 . Se parece a esto:

Puede ver la señal (junto con el comando decodificado). A continuación, reproduje la señal usando Arduino (y según el protocolo SIRC , elegí 1/4 de servicio a 38 kHz). A continuación se muestra la señal de una completa para mostrar el código enviado y una ampliada para mostrar la ráfaga de servicio de 38Khz al 25% dentro de la señal.

Ahora, para controlar un LED IR usando esta señal, introduje esto en la base de un transistor 2N2222 NPN BJT con su colector conectado a +5V y la base al LED IR -> Resistencia en serie -> GND. Y para probar la señal, alimenté esta señal "generada" a través del TSOP1738 nuevamente y probé la salida.

diagrama esquemático

La señal que obtengo parece una señal IR excepto por los 1 (cuando TSOP1738 pasa a BAJO) en lugar de ser BAJO durante un tiempo, como en la primera imagen. Veo muchas alternancias en marcha:

La señal "generada", por supuesto, no funciona. ¿Alguna idea de lo que está pasando aquí?

Es posible que desee editar la línea en su pregunta que actualmente dice "... y basarse en LED IR -> Resistencia en serie -> GND". Además, un esquema resuelve muchas dudas, por favor agregue uno a su pregunta.
Lo lamento. Aquí está i.imgur.com/7PrhAl.png
Por un lado, con una resistencia base de 100K, realmente está limitando la unidad al LED. Dependiendo de la ganancia exacta del transistor, es probable que el LED reciba solo alrededor de 5 mA, no los 50 mA que podría esperar. Esto también puede estar creando problemas con la velocidad de conmutación del transistor. Debe colocar un alcance (no un analizador lógico) en el colector y ver si obtiene una forma de onda limpia allí.

Respuestas (1)

Como no tengo privilegios de "Comentario", estoy respondiendo en el formulario de Respuesta, aunque esta no es una respuesta:

  • ¿Está seguro de que su LED IR está conectado a la base del transistor como dice, y no como el primer esquema en esta página ?
  • ¿El LED IR que está utilizando tiene la misma longitud de onda IR que espera el TSOP1738 , es decir, 950 nanómetros o más o menos?

Respuesta posible: la traza de su osciloscopio de la señal generada por Arduino muestra una frecuencia PWM de 39,215 KHz, y la traza de la señal final muestra los efectos típicos del aliasing entre dos ventanas de frecuencias ligeramente diferentes. Intente acercar su salida a los 38 KHz nominales y vuelva a capturar los resultados para esta discusión, por favor.

[ Editar : Woohoo, ¡acabo de recibir los privilegios de "Comentar en cualquier lugar"! Así que dejaré esta respuesta en su lugar y la modificaré hacia una respuesta válida si puedo. ]

Así es exactamente como tengo mi led conectado. la base del transistor está conectada al pin de salida Arduino a través de una resistencia
No estoy seguro de entender el bit "aliasing". ¿De dónde vendría la otra frecuencia similar? De acuerdo, mi señal generada no es exactamente 38Khz, pero tengo entendido que desviarme un poco de la frecuencia del demodulador podría afectar la sensibilidad/efectividad de mi señal IR, pero aún debería tener el mismo rastro en general...
Desde el filtro de muesca de 38KHz de la parte TSOP.
Gracias por la ayuda. Seguí tu sugerencia y el código para acercarme a los 38Khz. La alternancia es mucho menor como se ve aquí . Noté otra cosa que me perdí antes de que los 0 en la forma de onda tuvieran un período de tiempo de aproximadamente 2,84 ms (mientras que en mi código es de 1,2 ms). Así que casi el doble de lo que lo codifiqué
La versión anterior del código podría funcionar mejor con un TSOP1740. :-)
Todavía no estoy seguro de qué estaba mal, pero resolví el problema usando temporizadores para generar la onda de 38Khz en lugar de hacerlo manualmente.
Lo que significa que ahora sabe lo que estaba mal: la diferencia entre la frecuencia de la portadora de transmisión anterior y la frecuencia del filtro de 38 kHz de la parte TSOP estaba causando que los pulsos entrantes a veces cayeran justo fuera del intervalo de tiempo "abierto" de los filtros, para simplificar la idea. Esto entraría en conflicto con el comparador allí, por lo tanto, los picos en lo que debería haber sido una parte plana de la forma de onda.
Si no sabe lo que estaba mal se refiere a por qué la señal de explosión de bits no era precisamente de 38 khz: tal vez no tuvo en cuenta los impulsos de pila y los estallidos en su código, o los ciclos necesarios para ejecutar realmente los cálculos para cada pulso y las instrucciones para escribir al puerto. Otro factor que contribuye a la deriva de frecuencia es la precisión del reloj de la MCU, especialmente aplicable cuando se utilizan relojes RC o internos, o velocidades de reloj dentro de un orden de magnitud o tres de la resolución de salida deseada.