Problema PICs + Módulos RF ASK

Que tal?
Estoy tratando de hacer un enlace inalámbrico con una pareja de Módulos RF con modulación ASK @ 434MHz.
Estoy utilizando el UART de 2 PICs 16F688. Cuando conecto ambos micros utilizando un cable (obviamente, del Tx a Rx), la comunicación se da sin ningún problema, todos los bits son transmitidos íntegramente.
Según el datasheet de los módulos RF, éstos operan entre 200bps y 3kbps, por lo que yo estoy trabajando a 1.2kps.
El problema viene cuando quito el cable que interconecta los PICs, y trato de enviar las señales a cada uno de los módulos. Al parecer, el módulo para Tx si hace su trabajo de modulación y envío, así como el de Rx demodula y convierte a serial (puse LEDs en la salida y entrada de datos de los módulos RF). Lo malo es que la info llega completamente distorsionada, y separé los módulos a distancias de 70cm, 2 metros, 5 metros, incluso 15 metros, y aún así hay enlace, mas no se reciben de manera adecuada los bits. Por lo que he revisado en distintas páginas, hay gente que los utiliza sin problemas hasta poco más de 100 metros de separación, sin errores en la recepción de datos.

Otra observación: cuando enciendo el PIC con el módulo receptor, y el PIC que transmite está apagado, comienzan a aparecer datos completamente aleatorios a alta velocidad. Supongo que eso es ruido, pero no me explico de donde proviene. El sistema de Tx (PIC + módulo TX) y el de RX (PIC + módulo RX) están en protoboards separados, y cada uno de ellos está alimentado con una bateria de 9V y un regulador 7805, con capacitor de 1µF a la salida del regulador. Estuve intentando infinidad de cosas, pero sin ningún resultado.

Ahhh, las antenas que coloqué a los módulos son alambres calibre 26, de 17cm cada uno. Intenté eliminando la antena de los módulos, colcando una Dummy-Load de 50Ohms, y nada.

Para los PICs estoy utilizando PIC Simulator IDE, y los comandos HSEROPEN, HSERIN y HSEROUT.

Ya no sé que hacer. Si alguien tiene idea de qué podría estar haciendo mal, por favor, comente.


Gracias.
 

Adjuntos

  • RF RX 434MHz ASK.pdf
    174.3 KB · Visitas: 143
  • RF TX 434MHz ASK.pdf
    138.4 KB · Visitas: 86
Hola

Cuando no se transmite, el receptor siempre coge muchísimo ruido. Solución: utiliza un protocolo que esté siempre transmitiendo algo, no dejes que haya tiempos vacíos en los que no se transmita, verás que mejora enormemente la cosa.

Un saludo
 
Se supone que el receptor demodula solamente frecuencias cercanas a 434MHz, no veo de donde provienen tantos datos a esa frecuencia, y con tan alta amplitud.

La aplicación que estoy desarrollando es un control remoto para la apertura de una cerradura eléctrica, por lo que el receptor siempre debe estar encendido a la espera de un código único (generado por el Tx). El Tx lo lleva una persona en su bolsillo, y cuando se acerque a la puerta, este acciona el pulsador para activar la transmisión. Por lo tanto, es imposible mantener una comunicación constante entre el transmisor y receptor.

Gracias.
 
Hola
yo utilice unos módulos no se si los mismo, y al principio tenía el mismo problema, y es verdad lo que te dicen mientras no transmites nada, el receptor siempre recibe algo (ruido) por lo que cuando tu empiezas a enviar, desde mi punto de vista no se pueden soincronizar y no sabe donde exacta,ente esta el bit de inicio.
Una solucion es estar transmitiendo siempre, lo cual no me parecio bueno,

Lo que hice fue antes de enviar el dato que quiero, le envio unos y ceros alternadamente unas dos bytes (1010101010101010) y luego el dato, entonces aunq se pierda el primer dato, los datos que interesan llegan completos..

Lo que hay que tener cuidado es la velocidad de transmision, una velocidad muy rápida no funciona y muy lenta tampoco porque es como que se encuentra con un estado estable y ahi se mete el ruido y te daña todo, mejor es una intermedia, la suficiente como que para que no se meta el ruido

Espero que se solucione tu problema

Saludos
 
Ivanmorales, pudiste solucionarlo?? Estoy con el mismo problema, EXACTAMENTE el mismo... tengo osciloscopio y veo lo que vos ves...

He probado muchisimas cosas, como tratar de no enviar caracteres ASCII q tengan muchos unos o ceros juntos. Ademas, inverti por software la polaridad de los pines de la uart, porq quedaban siempre en estado alto, y el modulo rf no puedo transmitir un estado alto todo el tiempo, solo lo hace por unos instantes y luego pasa a estado bajo... entonces en el receptor no se quedaba en estado alto la salida de datos, y la uart interpretaba q se abria una comunicación (sin invertir, el rx de la uart tiene q estar en estado alto cuando no se transmite nada). Invertiendo logro q a pocos metros se transmita bien, pero desp de 2 m ya no funciona...

Lei de usar métodos de codificación, aunque no entiendo en que mejoraria para eliminar los problemas del ruido... A mi entender, con codificar solo se podria detectar el ruido, mas no corregirlo...

Si alguien logró hacer andar estos módulos, por favor comenten. Gracias.
 
Fijate que no he tenido nada de tiempo para trabajar en ese proyecto. Mañana reiniciaré con él.
Sí es posible detectar y corregir errores utilizando códigos. Por ejemplo, con Hamming podés detectar y corregir errores. Dependiendo del tamaño de la trama, así será la cantidad de correcciones que podes realizar. Eso sí, implementar Hamming con PICs no lo veo tan sencillo, ya que hay que hacer muchas operaciones con matrices.

Voy a continuar mañana con el proyecto, y si logro algo, comento...

Iván.
 
No me ha funcionado. Algo muy curioso es que la amplitud máxima de salida del módulo RX hacia "DATA" (lo que se conecta al PIC) es de 100mV! Se supone que deben ser niveles TTL (0V, +5V). Estará dañado el módulo??
 
Atrás
Arriba