Comunicación entre PIC's por RF.

Hola a todos,

He comunicado dos PIC's por cable usando el protocolo RS232 y una vez he comprobado que funcionaba he pasado a los módulos de RF de la marca Telecontrolli.

Cuando envío un byte del emisor al receptor, este último lo recibe perfectamente, activando así una salida del mismo.

Pero de ahí me surgen varios problemas.

Uno de ellos es que cuando el emisor no tiene corriente, al receptor le entra mucho ruido y cuando le entra el byte que espera para activar la salida, hace eso precisamente, la activa aún cuando el emisor, como he dicho, está apagado y no le ha enviado nada.

Por ejemplo, programo el receptor para que cuando reciba el byte 7F active su salida RB0.

Si el emisor está encendido y no le envío nada aún, no activa RB0.

Si el emisor está encendido y le envío 7F activa RB0.

PROBLEMA: El emisor está apagado y mirando con el osciloscopio en la entrada del PIC receptor hay un montón de ruido, por lo que en algún momento le llega 7F y acaba activando RB0.

Debo decir también que cuando el emisor está encendido, aunque no envíe nada, mirando con el osciloscopio en la entrada del PIC receptor no hay nada de ruido, se mantiene a cero.


La posible solución que he pensado ha sido enviarle más de un byte, a modo de clave, y he hecho lo siguiente:

EN EL EMISOR:
;---------------------------------------------------------------------------------------------------
Envia_Clave

movlw 0x01
call RS232_EnviaDato
call Retardo_1s ;Pausa de 1 seg. para poder ver señales
;en el osciloscopio
movlw 0x02
call RS232_EnviaDato
call Retardo_1s

movlw 0x07
call RS232_EnviaDato
call Retardo_1s

movlw 0x06
call RS232_EnviaDato
call Retardo_1s

fin goto fin
;---------------------------------------------------------------------------------------------------






EN EL RECEPTOR:
;---------------------------------------------------------------------------------------------------
Lee_Clave
call RS232_LeeDato

sublw 0x01
btfss STATUS,Z
goto Principal


call RS232_LeeDato

sublw 0x02
btfss STATUS,Z
goto Principal


call RS232_LeeDato

sublw 0x07
btfss STATUS,Z
goto Principal


call RS232_LeeDato

sublw 0x06
btfss STATUS,Z
goto Principal


bsf PORTB,0

fin goto fin
;---------------------------------------------------------------------------------------------------




Lo más curioso es que cuando lo hago comunicando los dos PIC's mediante un cable, funciona!!!

Pero cuando quito el cable y lo hago por RF no... :(

Vuelvo a mirar con el osciloscopio por si entra algún dato en medio de la trama que envío pero no entra nada.....

Alguien se ha encontrado con algún problema parecido y puede ayudarme a solucionarlo???

Muchas gracias a tod@s!!!
 
Hola, he estado haciendo pruebas con rf pero para otros protocolos digitales ( no RSR232 ) y en primer lugar si desenergizas el emisor, deja de existir la frecuencia moduladora , comenzando ruido, que los dispositivos digitales pueden comp`render como datos ( erroneos ). Por lo que debes mantener siempre el emisor polarizado y la señal gatillarla, cosa que si no hay datos , haya silencio ( ausencia de señal ) y no ruidos parasitos.
Eso hice yo, y se me soluciono el problema. Lo otro es que la frecuencia de la transmision debe estar acorde con las que maneja el transmisor como señal, me explico, si tu transmisor maneja señales de audio ( 20 Hz a 20 Khz ) y le metes altas frecuencias ( 1 mhz por ejemplo ) es muy probable que el transmnisor no cumpla bien su funcion. revisa eso tb.
Ojala te sirva
Chao
Jose
 
Depronto ustedes me puedan colaborar, necesito hacer una transmision de datos digitales inalambricamete por cualquier medio sencillo, el objetivo es poder pasar datos almacenados de un lado a otro.

Les agradezco su colaboración
 
Atrás
Arriba