Cómo utilizar los módulos RF transmisor y receptor 315Mhz con Arduino

Este equipo de Radio Frecuencia está compuesto dos módulos, un transmisor y un receptor inalámbricos que funcionan a 315Mhz. Se pueden usar fácilmente en un protoboard, trabajan bien con microcontroladores y crean un enlace de datos inalámbrico muy sencillo. Dado que sólo uno de ellos es transmisor, la comunicación de datos sólo funcionará en un sentido, por lo que se necesitan dos pares (de diferentes frecuencias) para actuar como un par transmisor / receptor.




modulo RFEstos módulos son muy sencillos y reciben gran cantidad de ruido. Tanto el transmisor como el receptor trabajan en frecuencias comunes. Por lo tanto, será necesario un método de filtrar este ruido y para emparejar el transmisor y el receptor. El siguiente código muestra un ejemplo para la operación básica. Consulte el código de ejemplo para lograr un buen enlace de datos inalámbrico.

Tipos de aplicación

Los módulos de radiofrecuencia se utilizan en multitud de aplicaciones de control remoto como,  control remoto de robots y coches eléctricos, puertas eléctricas, puertas de persiana, ventanas, puertas de garaje.

Parámetros del módulo receptor


Receptor RF

  • Modelo: MX-05V
  • Voltaje de funcionamiento: DC 5V
  • Corriente en reposo: 4 mA
  • Frecuencia de recepción: 315Mhz
  • Sensibilidad del receptor: -105dB
  • Tamaño: 30 * 14 * 7 mm

Parámetros técnicos del módulo transmisor


Emisor RF

  • Modelo: MX-FS-03V
  • Distancia de funcionamiento: 20-200 metros (con diferente voltaje, diferentes resultados)
  • Tensión de trabajo: 3.5-12V
  • Dimensiones: 19 * 19 mm
  • Modo de funcionamiento: AM
  • Velocidad de transferencia: 4 KB / S
  • Potencia de transmisión: 10 mW
  • Frecuencia de transmisión: 315Mhz
  • Pines: (DATOS; VCC; GND)

Biblioteca VirtualWire




Los módulos de RF de bajo coste requieren un formato especial de datos, con patrones de sincronización, equilibrio de bits 0 y 1, y comprobación de errores. VirtualWire ofrece todas estas características, lo que permite un mejor rendimiento de los circuitos de radio muy baratos.

Para usar esta bibiloteca descarga el archivo y súbelo al programa Arduino IDE.

Arduino IDE > Programa > Include Library > Add .Zip Library

Descargar biblioteca (VirtualWire)

Uso Básico de la Biblioteca VirtualWire

VirtualWire es un poco diferente que la mayoría de las bibliotecas de Arduino. Se utilizan muchas funciones individuales , y sus nombres son algo diferentes.

Funciones de configuración

vw_set_tx_pin (transmit_pin)
Configura el pin de transmisión. Por defecto es el pin 12.

vw_set_rx_pin (receive_pin)
Configure el pin de recibir, por defecto es el pin 11.

vw_set_ptt_pin (transmit_en_pin)
Configura el pin «pulsar para hablar». El valor predeterminado es el pin 10.

vw_set_ptt_inverted (verdadera)
Configure el «push to talk» polaridad.

vw_setup (2000)
Inicializar la biblioteca. Es similar a la función de «begin» de otras bibliotecas. Todos los pines se deben configurar antes de usar a esta función.

Funciones de Transmisión

vw_send (mensaje, longitud)
Transmitir un mensaje. «mensaje» es una matriz de los bytes para enviar, y «longitud» es el número de bytes almacenados en la matriz. Esta función devuelve inmediatamente y el mensaje se envía lentamente por un proceso de fondo a base de interrupción.

vw_tx_active ()
Devuelve true si se envía el mensaje, o falso si el transmisor no está activa. Puede utilizar esta después de enviar un mensaje a probar cuando se ha terminado de ser transmitida.

vw_wait_tx ()
Espere un mensaje a ser transmitido en su totalidad. A menudo, el método más sencillo es llamar a esto después de vw_send.

Funciones de recepción

vw_rx_start ()
Activar el proceso receptor. Usted debe llamar a esta función antes de que ocurra cualquier recepción. Un proceso de fondo a base de interrupción se inicia que supervisa la recepción de datos.

vw_have_message ()
Devuelve true si se ha recibido el mensaje. Esto es similar a la función de «disponible» de la mayoría de otras bibliotecas.

vw_wait_rx ()
Espere a que un mensaje sea recibido. Esto sólo regresará cuando se ha recibido un mensaje, de lo contrario se va a esperar para siempre.

vw_wait_rx_max (TIMEOUT_MS)
Espere un mensaje, pero renunciar después de «TIMEOUT_MS». Devuelve true si se ha recibido un mensaje, o false si el tiempo de espera transcurrido.

vw_get_message (buf, y buflen))
Leer el último mensaje recibido. Esta debe ser llamado sólo cuando se conoce un mensaje para ser recibido con cualquiera de las 3 funciones anteriores. «buf» es una matriz donde se copia el mensaje. «buflen» debe tener un tamaño máximo de la matriz a la entrada, y al devolver el número de bytes realmente copiados se retured. La propia función devuelve verdadero si el mensaje se verificó correcta o falsa si un mensaje fue recibido, pero parece haber sido dañado.

vw_rx_stop ()
Desactivar el proceso receptor.

Código Arduino

Este es un código simple, enviará carácter ‘1’ y después de 2 seg enviará carácter ‘0’ y así sucesivamente.

Este código para el transmisor

#include <VirtualWire.h>
char *controller;
void setup() {
pinMode(13,OUTPUT);
vw_set_ptt_inverted(true); //
vw_set_tx_pin(12);
vw_setup(4000);// velocidad de datos Kbps
}

void loop(){
controller="1"  ;
vw_send((uint8_t *)controller, strlen(controller));
vw_wait_tx();
digitalWrite(13,1);
delay(2000);
controller="0"  ;
vw_send((uint8_t *)controller, strlen(controller));
vw_wait_tx();
digitalWrite(13,0);
delay(2000);

}

Y este es el código para el receptor. El LED 13 de la placa Arduino debe estar encendido cuando se reciben carácter ‘1’ y apagado cuando se reciben carácter ‘0’ .

#include <VirtualWire.h>
void setup()
{
    vw_set_ptt_inverted(true); // 
    vw_set_rx_pin(12);
    vw_setup(4000);  // velocidad de datos Kbps
    pinMode(13, OUTPUT);

    vw_rx_start();     
}
    void loop()
{
    uint8_t buf[VW_MAX_MESSAGE_LEN];
    uint8_t buflen = VW_MAX_MESSAGE_LEN;

    if (vw_get_message(buf, &buflen))
    {
      if(buf[0]=='1'){

  
   digitalWrite(13,1);
      }  
   if(buf[0]=='0'){
  digitalWrite(13,0);
    }

}
}

 

1 comentario en “Cómo utilizar los módulos RF transmisor y receptor 315Mhz con Arduino

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.