Comunicación RF bidireccional entre pic (no funciona)

#1
Saludos a todos, hace mucho que leo el foro, pero no me había animado a preguntar hasta ahora.

El objetivo de mi proyecto es comunicar dos pic por RF.
Estoy ocupando pic16f628a y para la comunicación ocupo: Módulo Transmisor/Receptor RF 433Mhz (500Mts) HAC-UM96.


Tengo en ambos Pic Programas simples que funcionan bien en la simulación.

Al conectar un pic con antena, al computador con otra antena, se comunican bien, responde como debería. Luego pruebo el otro pic y tAMBIEN funciona de buena manera.
El problema es al comunicar los dos pic entre si, al parecer no hay comunicación alguna entre ellos.
Mirando el osciloscopio las antenas envían y reciben la información, pero no la están procesando los pic.

No estoy ocupando aun ningún método(por el momento) para asegurarme que la información llega como corresponde, asumiendo que envían y reciben bien como lo vi en el computador.

Ideas de cual puede ser el problema ?
(edit: no estoy seguro si el tema va acá)
 
Última edición por un moderador:
#2
No conozco en detalle el módulo HAC-UM96. Lo que se me ocurre es que estás transmitiendo en forma simultanea por los dos PICs sobre una misma portadora (433,92Mhz), eso no puede funcionar jamás. No has explicitado como realizas la comunicación, no has puesto el protocolo ni la forma de comunicación, pero deberías ver que uno de los micros transmita mientras el otro esté escuchando y viceversa. Incluso, dar un pequeño tiempo "muerto" donde ninguno de los dos micros transmita entre un paquete y otro.
 
#3
Hola buen dia y el codigo y que lenguaje de programacion usas y el esquema del circuito como para saber si es codigo o circuito por otro lado yo hace poco eatuve con la misma situacion con modulos tlpa 315MHZ y me dio bastantes lios
 
#4
Buenas, cuando tenga mas tiempo subiré circuito y código.

Pero les cuento, estoy programando en c (ccs). Y el asunto lo solucione, aunqUE no me entra en mi lógica del todo...pero... funciona.

la instrucción que no lograba entrar era del tipo:


if(dato[0]=='S'&&dato[1]=='U'&&dato[2]=='M'&&dato[3]=='A'&&dato[4]=='R'&&dato[5]=='_'&&
dato[6]=='R'&&dato[7]=='P'&&dato[8]=='T')
{
output_bit(rele_1,1);
delay_MS (1000);
output_bit(rele_1,0);

}

Del computador enviaba un :

printf("SUMAR_RPT\r");

y Funcionaba el rele.


Del pic mandaba un

printf("SUMAR_RPT\r\n");

y el rele nada de nada.

Simplemente borre el \n y funciono.
La pregunta es...pero si en mi if no importa lo que había después del dato[8], pOR q importaba la información qUE venga después?

(gracias por su interés)
 
Última edición por un moderador:
Arriba