ABC PROYECTOS ELECTRNICOS| ABCelectronica.
net
Mdulo Radio frecuencia FSK y
Arduino
El objetivo de este circuito bsico es la posibilidad de enviar una palabra cada cierto tiempo entre
un transmisor y un receptor de radio frecuencia FSK y la plataforma Arduino.
Materiales:
2 Arduino UNO, MEGA, LEONARDO, NANO, MINI, etc
Modulo radiofrecuencia FSK; Transmisor y Receptor
2 Resistencias 220 ohms
2 LED 5mm cualquier color
Opcional: 4 bateras AA o batera de 9V en caso de necesitar una fuente
ente de voltaje externa
Existen mdulos RF de bajo costo que requieren de un formato especial, con patrones de
sincronizacin, un balance igual de bits 0 y 1 adems de comprobacin de errores.
err
Por esa razn
se utiliza la librera VirtualWire que ofrece todas
as esas caractersticas, lo que permite obtener un
mejor rendimiento de los mdulos de radiofrecuencia. Tomar en cuenta que es compatible con los
Mdulos de radiofrecuencia ASK y FSK
Librera VirtualWire
Antes de iniciar recordar descargar e instalar la librera:
[Link]
Escrita y realizada por Mike McCauley, en el link anterior encontrara una explicacin ms detallada
de esta librera adems de un manual. Aqu se presenta solamente un circuito bsico de inicio.
|11 avenida 15-51 zona 1
ABC PROYECTOS ELECTRNICOS| [Link]
TRANSMISOR
En este ejemplo se utilizo un Ar
Arduino
duino LEONARDO Pro Micro, pero el cdigo es compatible
c
con otro
tipo de Arduino;; UNO, MEGA, etc.
Pin 6 Arduino conectado a pin DATA del transmisor
Pin 7 Arduino conectado a un LED para visualizar el envio de datos
|11 avenida 15-51 zona 1
ABC PROYECTOS ELECTRNICOS| [Link]
CODIGO PROGRAMACIN TRANSMISOR
#include <VirtualWire.h>
const
const
const
const
int
int
int
int
led_pin = 7; //Pin para LED visualiza el envio datos
transmit_pin = 6; //Pin para enviar datos
receive_pin = 2; // No se utiliza en este tipo de modulo
transmit_en_pin = 3; // No se utiliza ene este tipo de modulo
void setup()
{
// Initialise the IO and ISR
vw_set_tx_pin(transmit_pin);
vw_set_rx_pin(receive_pin);
vw_set_ptt_pin(transmit_en_pin);
vw_set_ptt_inverted(true); // Required for DR3100 OTRO TIPO DE MODULO
vw_setup(2000);
// Bits per sec
pinMode(led_pin, OUTPUT);
}
byte count = 1;
void loop()
{
char msg[7] = {'h','e','l','l','o',' ','#'};
//envia palabra HELLO, seguido de un numero
msg[6] = count;
digitalWrite(led_pin, HIGH); // LED parpadea mostrando la transmisin
vw_send((uint8_t *)msg, 7);
vw_wait_tx(); // Espera hasta que el mensaje ha sido enviado
digitalWrite(led_pin, LOW);
delay(1000);
count = count + 1;
}
|11 avenida 15-51 zona 1
ABC PROYECTOS ELECTRNICOS| [Link]
RECEPTOR
En este ejemplo se utilizo un Ar
Arduino
duino LEONARDO Pro Micro, pero el cdigo es ccompatible con otro
tipo de Arduino;; UNO, MEGA, etc.
Pin 6 Arduino conectado
ectado a pin DATA del Receptor
Pin 7 Arduino conectado a un LED para visualizar la recepcin de datos
|11 avenida 15-51 zona 1
ABC PROYECTOS ELECTRNICOS| [Link]
CODIGO PROGRAMACIN RECEPTOR
#include <VirtualWire.h>
const
const
const
const
int
int
int
int
led_pin = 7; //LED indicador recepcin datos
transmit_pin = 2; // no se utiliza en este modulo
receive_pin = 6; //Pin receptor datos
transmit_en_pin = 9; //Pin que habilita receptor FSK
void setup()
{
delay(1000);
[Link](9600);
// Debugging only
[Link]("setup");
// Initialise the IO and ISR
vw_set_tx_pin(transmit_pin);
vw_set_rx_pin(receive_pin);
vw_set_ptt_pin(transmit_en_pin);
vw_set_ptt_inverted(true); //
vw_setup(2000); // Bits per sec
vw_rx_start();
// Start the receiver PLL running
pinMode(led_pin, OUTPUT);
}
void loop()
{
uint8_t buf[VW_MAX_MESSAGE_LEN];
uint8_t buflen = VW_MAX_MESSAGE_LEN;
if (vw_get_message(buf, &buflen)) // Non-blocking
{
int i;
digitalWrite(led_pin, HIGH); // LED parpadea si se recibe el mensaje
// Message with a good checksum received, dump it.
[Link]("Got: ");
for (i = 0; i < buflen; i++)
{
[Link](buf[i], HEX);
[Link](' ');
}
[Link]();
digitalWrite(led_pin, LOW);
}
}
|11 avenida 15-51 zona 1
ABC PROYECTOS ELECTRNICOS| [Link]
Una vez el transmisor inicie el envio de datos, en el receptor recibir lo siguiente:
Nota: para que aparezca los datos, el circuito receptor debe estar conectado a la PC, luego en el
programa de arduino; clic en Herramientas > Monitor Serial
El mensaje es mostrado en hexadecimal, carcter por carcter, seguido del nmero de veces, que
indica que se ha recibido el mensaje inici
iniciando en 1 en adelante.
Informacin investigada, recopilada y comprobada por ABC PROYECTOS ELECTRONICOS.
ENLACES:
[Link]
[Link]
[Link]
|11 avenida 15-51 zona 1