Tengo un transmisor de enlace y receptor pt2262 y pt2272 rf. Observo que cuando envío la señal del transmisor al receptor en un intervalo preciso y regular, observo que el receptor parece captar esporádicamente la señal con una diferencia de 61 a 63 ms del tiempo de recepción esperado de vez en cuando. Tengo una fuente de alimentación de 5 voltios que va al receptor pt2272 desde una Raspberry Pi. ¿Cuál podría ser la causa de esto?
Tengo LEDs conectados a los pines del PT2262 y PT2272 en sus respectivas tablas de pruebas. Los LED se iluminarán antes de que la señal se dirija a otro lado del lado receptor. De vez en cuando, hay una diferencia notable (62ms) entre cuando se enciende el LED asociado del transmisor y cuando se enciende el LED asociado del lado receptor.
En el lado del transmisor, tengo un bucle de python que envía una señal alta al transmisor, esperando 2 segundos, luego enviando una señal baja al transmisor, luego imprimiendo una hora en la pantalla, luego esperando 2 segundos antes de que se vuelva a conectar. Cada vez que imprime el tiempo en la pantalla, lee exactamente 4 segundos más tarde que la última impresión, en milisegundos. Estoy bastante seguro de que sé que el bucle de transmisión es sólido.
En el lado del receptor (en realidad, estoy usando 2 receptores y el 1 transmisor), tengo un bucle de pitón que verifica el voltaje entrante en un bucle de 1 ms e imprime el tiempo en la pantalla cuando es positivo. La mayoría de las veces, la impresión aparece exactamente cada 4 segundos. Un par de veces de cada 10 mostrará un retraso de 60 ms en la impresión (también con un notable retraso LED). Cada unidad receptora se retrasará de la misma manera, pero no siempre al mismo tiempo que otra.
Para mi caso, no es tan importante cuando el transmisor transmite, lo que es importante para mí es que todos los receptores captan la señal cada vez que se transmiten dentro de 1 ms uno del otro (voy a tener 8 receptores en el 1 transmisor) . Como mencioné, actualmente tengo 2 receptores y puedo ver físicamente que los LED se adelantan un poco o se atrasan de vez en cuando. Esto sucede antes de que cualquier código tenga la oportunidad de interpretarlo. No creo que Python venga a jugar aquí, para mí parece un problema de hardware.
Hojas de datos:
enlace !
Actualización: Entonces, aquí hay algo interesante. Pude deshacerme del retraso si cambié por bucle de 1 segundo encendido y 2 segundos apagado, a 0.15 segundos encendido y 0.25 segundos apagado y continuamente bucle. Esto es lo que es el rascador de cabeza: cuando reproduzco el código sin hacer un bucle, el receptor no responde a una señal alta a menos que tenga una duración de al menos 0,25 segundos. En un bucle, reconocerá un máximo de 0,15 segundos. Sumado a eso, ¿por qué se retrasaría al comienzo de un envío de 1 segundo, y no a un envío de 0.15 ... ciertamente no sabe cuánto durará la señal de envío en el momento de la recepción?
Actualización: creo que encontré una respuesta, aunque mis conclusiones pueden ser erróneas. Envié una señal de mi transmisor 7 veces con un bucle codificado que hice. El LED del transmisor se encendió 7 veces, pero en el lado de recepción, el LED se encendió solo 6 veces cuando llegaron las señales. Intenté transmitir con una cantidad de conteos de bucles diferentes y el receptor siempre captará 1 señal menos que Lo que el transmisor está enviando. Creo que la primera señal podría "despertar" al receptor, o cambiar el modo del receptor de alguna manera, una vez hecho esto, recibirá el resto de las señales perfectamente sincronizadas sin retraso. También debe haber un 'tiempo de espera de reinicio' para que cuando el receptor no reciba la señal durante x segundos, pueda volver al modo de espera. No tengo idea de si este es realmente el caso, pero es mi mejor estimación actual. Con respecto al retraso que mencionaba mi pregunta, creo que mi primera señal de 1 segundo de duración estaba activando la funcionalidad que requiere una primera señal corta para poner el receptor en línea. Supongo que 1 segundo fue demasiado largo.