Autor Tema: envió y recepción de datos módulos rf  (Leído 2685 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado JuanjoPic

  • PIC12
  • **
  • Mensajes: 97
envió y recepción de datos módulos rf
« en: 18 de Febrero de 2016, 23:00:36 »
Hola a todos, compre desde china un modulo rf y quisiera utilizar dicho modulo con un pic12f629 idealmente, pero este pic no tiene los modulos UART por lo cual la recepción de datos se debe hacer por software. Por mi parte, recepcionar datos no es un problema ya que he recepcionado datos de un receptor infrarrojo sin problemas (lo realizo mediante interrupciones externas y con el timer0 cuento el tiempo de los estados logicos 1 o 0).
Ahora mi problema es que no se como funcionan esos módulos, he buscado información en internet de como enviar datos pero todos utilizan librerias en c y para pics con puertos UARTs. Realmente necesito información de como enviar datos y los tiempos para determinar si es un 1 o un 0.
Cualquier información me sera de utilidad. :)

Desconectado PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5474
    • Electrónica Didacta
Re:envió y recepción de datos módulos rf
« Respuesta #1 en: 19 de Febrero de 2016, 01:34:38 »
mejor todavía, porque esos modulos trabajan es con codificación manchester, así que el código que deberás implementar será bajo ese esquema

en este sitio explican el funcionamiento de los modulos RF

http://www.romanblack.com/RF/cheapRFmodules.htm
La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado JuanjoPic

  • PIC12
  • **
  • Mensajes: 97
Re:envió y recepción de datos módulos rf
« Respuesta #2 en: 19 de Febrero de 2016, 02:07:31 »
Gracias por la info   :-/

Desconectado elreypic2

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1297
Re:envió y recepción de datos módulos rf
« Respuesta #3 en: 19 de Febrero de 2016, 13:35:45 »
Excelente la info que publicó Palitroquez, sober todo por la explicación del uso del PWM para la codificación de datos.
Aunque bien el autor menciona que no siempre es necesaria la codificación manchester, en mi experiencia es la forma más precisa que he obtenido, aun en ambientes ruidosos (ruido electromagnético), me ha funcionado muy bien. Hace algún tiempo publiqué algo acerca de esto en el siguiente link:
http://www.todopic.com.ar/foros/index.php?topic=30837.msg257548#msg257548
Espero que pueda ser de utilidad en caso de que JuanjoPIC pudiera optar por usar una codificación manchester en lugar de codificación por modulación de ancho de pulso.

Saludos

Elreypic.

Desconectado JuanjoPic

  • PIC12
  • **
  • Mensajes: 97
Re:envió y recepción de datos módulos rf
« Respuesta #4 en: 20 de Febrero de 2016, 22:20:18 »
 elreypic2, tengo una pregunta acerca del envio de datos.....
Si genero un pulso cuadrado de 10mseg de periodo (por dar un ejemplo) debiera el receptor entregarme ese mismo pulso??
Existe un periodo limite o frecuencia para transmitir datos? (ya que he dado un pulso de 500ms y observando en el osciloscopio no lo veo  :(  solo se observa ruido).

Básicamente no se enviar datos (independiente del protocolo por ahora) solo quiero observar el osciloscopio y decir "ese pulso fue el que le envie   8)" pero hasta ahora no he podido hacerlo por que no se si al generar una señal cuadrada de alguna frecuencia debiera ser esa misma la que el receptor me entrega.

Desconectado elreypic2

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1297
Re:envió y recepción de datos módulos rf
« Respuesta #5 en: 22 de Febrero de 2016, 19:20:12 »
Que tal JuanjoPic,

Con respecto a tu primera pregunta, la respuesta es no. Porque esos módulos no son del tipo "transparentes". Por eso es que necesitas usar un protocolo para poder usarlos.
En cuanto a la segunda pregunta, la respuesta es: sí, sí existe un límite y este debe estar definido el datasheet del receptor, yo he visto de tres tipo o con tres diferentes frecuencias: 1200bps, 2400bps y 4800 bps. En tu caso no cual sea de los tres.

El link que proporciona palitroquez explica con mucha claridad el cómo funcionan estos modulos y cómo usarlos. Tienes que seguir dichas intrucciones o de lo contrario no funcionaran.

Saludos,

Elreypic.

P.D No mencionas el lenguaje de programación que estas usando, pero supongo que estas usando ASM. Y no necesitas un USART para usar lo modulos, este se puede emular por software.
« Última modificación: 22 de Febrero de 2016, 19:22:45 por elreypic2 »

Desconectado JuanjoPic

  • PIC12
  • **
  • Mensajes: 97
Re:envió y recepción de datos módulos rf
« Respuesta #6 en: 23 de Febrero de 2016, 01:10:10 »
gracias por comentar.
Estoy usando ASM y lo debo hacer por software.
Lo que me sucede es que no tengo una referencia para saber cuando (y decirle a mi pic receptor) comenzara la comunicación. Lei en tu link que le envias un pulso de 50ms para dejar estable el receptor (seria como un Bit start), entonces tenia una idea de decirle al pic receptor que debe tomar como señal de inicio a la señal de 50ms (por eso la pregunta acerca de si envio una señal de 10ms debiesen llegar 10 ms).
Creo que tendre que investigar mas y leer bien el link posteado por PalitroqueZ.
Mi idea de recepcionar los datos seria por interrupción externa, pero si alguien ha hecho esto antes por software y tiene otra idea de hacerlo me sera de utilidad.

Saludos!!

Desconectado elreypic2

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1297
Re:envió y recepción de datos módulos rf
« Respuesta #7 en: 23 de Febrero de 2016, 08:28:35 »
Que tal JuanjoPic,

Ese pulso de 50ms solo sirve para estabilizar al receptor, ese pulso no lo verás en el pin de datos del receptor, será más corto de eso. Pero lo que si verás es la pausa después de eso, es dcir veras que el nivel esta en estado bajo, pero no por mucho tiempo, eso es el estado estable del pin de datos, y ahí es cuando puede entonces transmitir los datos usando un UART por software, que como te darás cuenta es en estado invertido. Lo que yo te recomiendo es usar codificación manchester cuando envies los datos, y usar algunos bytes de preambulo, como pueden ser el $A5, $5A, o una combinación de estos. Lo primero que te recomiendo es realizar las rutinas de recepción y transmisión serial, emulando el UART por software. Después de eso realizar las rutinas para la codificación y decodificación manchester de los datos. Una vez que tengas eso, entonces ya puedes comenzar a realizar el protocolo como lo explico en el link que te mandé.

Yo te puedo ayudar con las rutinas, pero tú tienes que empezar a realizarlas. Solo te pediría que pusieras todo tu esfuerzo y te iré ayudando para ir desarrollando las rutinas.

Saludos,

Elreypic.

Desconectado elreypic2

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1297
Re:envió y recepción de datos módulos rf
« Respuesta #8 en: 19 de Marzo de 2016, 11:20:27 »
Que tal Juanjo,

Ya no escuché de ti. Espero que ya estes mas desocupado con eso de tus exámenes.

Aquí te envío un ejemplo de cómo usar los módulos RF. El ejemplo es muy sencillo, este consiste en un contador. En la parte de transmisión hay un push-button conectado al puerto GPIO.0 de un PIC12F629 y cada vez que se presiona se envia el valor del contador a través del pin GPIO.1 que esta conectado el pin de datos de módulo de transmisión.
En el receptor tienes otro PIC12F629 en el cual el pin de datos de módulo de recepción va conectado al pin GPIO.1. para visualizar el dato recibido, se usa la transmisión serial a 9600bps, por lo que vas a necesitar un convertidor TTL a RS-232 (o bien un convertidor TTL a USB en caso de no contar con puerto serial). Abres una hyperterminal (o teraterm) en tu PC, configura de modo que la hyperterminal reciba datos a 9600bps, sin handshaking y listo. Veras que cada vez que presiones el boton en el transmisor, aparecerá el valor del contador en tu hyperterminal.

Saludos y espero que esto te sirva.

Elreypic.

P.D El codigo está hecho con PICBasic Pro, pero puede cambiarse a otro compilador basic sin problema o inclusive completamente a ensamblador.