Академический Документы
Профессиональный Документы
Культура Документы
Buscar
0
S/. 0,00
CATEGORAS
All Blog News Comunicacin Inalmbrica con mdulos de RF de 433Mhz
ARTCULOS POPULARES
Tutorial trasmisor de celda de carga HX711, Balanza Digital ago 23, 2015
Con guracin del mdulo bluetooth HC-05 usando comandos AT ago 08, 2015
ARTCULOS RECIENTES
http://www.naylampmechatronics.com/blog/32_Comunicaci%C3%B3n-Inal%C3%A1mbrica-con-m%C3%B3dulos-de-RF-de.html 1/22
16/7/2017 Comunicacin Inalmbrica con mdulos de RF de 433Mhz
PROMOCIONES ESPECIALES
Mdulo Joystick
Con este modulo podras conectrolar...
ETIQUETAS
sensor robot cnc Servo infrarrojo LED LCD driver Fuente cable
NOVEDADES
Piezo Buzzer activo 12mm
Agrega alertas o efectos de sonido a tus proyectos
S/. 1,00
S/. 7,00
S/. 70,00
S/. 12,00
http://www.naylampmechatronics.com/blog/32_Comunicaci%C3%B3n-Inal%C3%A1mbrica-con-m%C3%B3dulos-de-RF-de.html 2/22
16/7/2017 Comunicacin Inalmbrica con mdulos de RF de 433Mhz
Sensor de presin BMP280
Sensor de presin baromtrica BMP280 de alta precisin y de bajo consumo...
S/. 15,00
S/. 28,00
S/. 50,00
Shield Relay v2
La manera ms sencilla y rpida de controlar cargas de alta corriente...
S/. 45,00
http://www.naylampmechatronics.com/blog/32_Comunicaci%C3%B3n-Inal%C3%A1mbrica-con-m%C3%B3dulos-de-RF-de.html 3/22
16/7/2017 Comunicacin Inalmbrica con mdulos de RF de 433Mhz
En este tutorial vamos a realizar una comunicacin inalmbrica entre dos Arduino usando
mdulos de radiofrecuencia de bajo costo.
Los mdulos RF de 433Mhz son muy populares por su bajo costo y fcil uso. Vienen en
pareja, emisor (FS1000A) y receptor (XY-MK-5V), el tipo de comunicacin es simplex, es
decir en un solo canal y unidireccional, son de baja velocidad de transmisin pero para
aplicaciones bsicas son muy tiles.
http://www.naylampmechatronics.com/blog/32_Comunicaci%C3%B3n-Inal%C3%A1mbrica-con-m%C3%B3dulos-de-RF-de.html 4/22
16/7/2017 Comunicacin Inalmbrica con mdulos de RF de 433Mhz
La frecuencia de trabajo es de 433MHz, debido a que es una banda de libre uso. Para
utilizar estos mdulos basta con alimentarlos y conectar el pin de datos por un lado del
Transmisor (TX) y en otro el Receptor (RX). Para la programacin no es necesario agregar
ningn tipo de librera, ya que es un proceso "transparente", por lo que el programa sera
igual a usar una comunicacin serial (UART) entre 2 MCUs , sin embargo existen algunas
libreras que nos ofrecen ciertas ventajas como: verificacin de errores, mejor transmisin,
Direccionamiento, Enrutamiento, mallas, etc.
http://www.naylampmechatronics.com/blog/32_Comunicaci%C3%B3n-Inal%C3%A1mbrica-con-m%C3%B3dulos-de-RF-de.html 5/22
16/7/2017 Comunicacin Inalmbrica con mdulos de RF de 433Mhz
http://www.naylampmechatronics.com/blog/32_Comunicaci%C3%B3n-Inal%C3%A1mbrica-con-m%C3%B3dulos-de-RF-de.html 6/22
16/7/2017 Comunicacin Inalmbrica con mdulos de RF de 433Mhz
void setup() {
// Inicializamos la comunicacin serial a 2400 baudios
Serial.begin(2400);
http://www.naylampmechatronics.com/blog/32_Comunicaci%C3%B3n-Inal%C3%A1mbrica-con-m%C3%B3dulos-de-RF-de.html 7/22
16/7/2017 Comunicacin Inalmbrica con mdulos de RF de 433Mhz
void loop() {
Serial.print("Hola mundo ... ");
Serial.print(millis()); // enviamos los ms transcurridos
Serial.println("ms");
delay(10);
}
Para visualizar los datos recibidos, en herramientas cambiamos al puerto COM al del
conversor, abrimos el Monitor serial y cambiamos la velocidad a 2400 baudios, debemos
recibir los datos como se muestra en la siguiente imagen
Existen varios mtodos para validar informacin, una de las ms fcil de implementar es
en enviar el mismo dato varias veces, por ejemplo 3 veces y en el receptor se debe validar
verificando que se reciba 3 veces el mismo dato. Otros mtodos son la paridad, agregar
tramas de validacin, sumar los bytes trasmitidos, etc.
http://www.naylampmechatronics.com/blog/32_Comunicaci%C3%B3n-Inal%C3%A1mbrica-con-m%C3%B3dulos-de-RF-de.html 8/22
16/7/2017 Comunicacin Inalmbrica con mdulos de RF de 433Mhz
void vw_setup(uint16_tspeed)
Inicializar el software VirtualWire, como parmetro hay que indicarle la velocidad de
operacin, que representa los bits por segundo para la transmisin RF
void vw_set_rx_pin(uint8_tpin)
Estable el pin digital IO por donde se va a recibir datos.
void vw_rx_start()
Empieza a escuchar los datos provenientes por el pin_rx, es necesario llamar a esta
funcin para poder recibir los datos
void vw_wait_tx()
Hace una pausa hasta que se trasmitan todos los datos.
http://www.naylampmechatronics.com/blog/32_Comunicaci%C3%B3n-Inal%C3%A1mbrica-con-m%C3%B3dulos-de-RF-de.html 9/22
16/7/2017 Comunicacin Inalmbrica con mdulos de RF de 433Mhz
En este ejemplo se encender un led conectado al pin 13 del Arduino, para apagar y
prender se lo har de forma remota desde otro Arduino, para enviar la orden lo haremos
desde la PC pero se lo puede hacer a travs de un pulsador.
El cdigo del Emisor es el siguiente:
#include <VirtualWire.h>
void setup()
{
Serial.begin(9600);
Serial.println("Emisor RF");
// Se inicializa el RF
vw_setup(2000); // velocidad: Bits per segundo
vw_set_tx_pin(2); //Pin 2 como salida para el RF
}
void loop()
{
Como se observa el programa enva inalmbricamente el dato que recibe por el puerto
serie.
#include <VirtualWire.h>
void setup()
{
Serial.begin(9600); // Debugging only
Serial.println("setup");
// Se inicializa el RF
vw_setup(2000); // velocidad: Bits per segundo
vw_set_rx_pin(2); //Pin 2 como entrada del RF
vw_rx_start(); // Se inicia como receptor
void loop()
{
uint8_t dato;
uint8_t datoleng=1;
http://www.naylampmechatronics.com/blog/32_Comunicaci%C3%B3n-Inal%C3%A1mbrica-con-m%C3%B3dulos-de-RF-de.html 11/22
16/7/2017 Comunicacin Inalmbrica con mdulos de RF de 433Mhz
Para encender el led es necesario abrir el monitor serial del trasmisor y enviar una a o b
para encender o apagar el Led respectivamente
#include <VirtualWire.h>
void setup()
{
Serial.begin(9600);
Serial.println("Emisor: Setup");
// Se inicializa el RF
vw_setup(2000); // velocidad: Bits per segundo
vw_set_tx_pin(2); //Pin 2 como salida para el RF
}
void loop()
{
const char *msg = "Hola mundo";
#include <VirtualWire.h>
http://www.naylampmechatronics.com/blog/32_Comunicaci%C3%B3n-Inal%C3%A1mbrica-con-m%C3%B3dulos-de-RF-de.html 12/22
16/7/2017 Comunicacin Inalmbrica con mdulos de RF de 433Mhz
void setup()
{
Serial.begin(9600); // Debugging only
Serial.println("Emisor: Setup");
// Se inicializa el RF
vw_setup(2000); // velocidad: Bits per segundo
vw_set_rx_pin(2); //Pin 2 como entrada del RF
vw_rx_start(); // Se inicia como receptor
}
void loop()
{
uint8_t buf[VW_MAX_MESSAGE_LEN];
uint8_t buflen = VW_MAX_MESSAGE_LEN;
//verificamos si hay un dato valido en el RF
if (vw_get_message(buf, &buflen))
{
int i;
Para visualizar los datos es necesario abrir el monitor serial del receptor.
http://www.naylampmechatronics.com/blog/32_Comunicaci%C3%B3n-Inal%C3%A1mbrica-con-m%C3%B3dulos-de-RF-de.html 13/22
16/7/2017 Comunicacin Inalmbrica con mdulos de RF de 433Mhz
#include <VirtualWire.h>
void setup()
{
Serial.begin(9600); // Debugging only
Serial.println("setup");
// Se inicializa el RF
vw_setup(2000); // velocidad: Bits per segundo
vw_set_tx_pin(2); //Pin 2 como salida para el RF
http://www.naylampmechatronics.com/blog/32_Comunicaci%C3%B3n-Inal%C3%A1mbrica-con-m%C3%B3dulos-de-RF-de.html 14/22
16/7/2017 Comunicacin Inalmbrica con mdulos de RF de 433Mhz
void loop()
{
char buf[VW_MAX_MESSAGE_LEN]; // Cadena para enviar
int dato1=millis()/1000; //variable con el tiempo en segundos
float dato2=3.14; //segundo dato para enviar
String str="";
delay(200);
}
#include <VirtualWire.h>
void setup()
{
Serial.begin(9600); // Debugging only
Serial.println("Receptor: setup");
// Se inicializa el RF
vw_setup(2000); // velocidad: Bits per segundo
vw_set_rx_pin(2); //Pin 2 como entrada del RF
vw_rx_start(); // Se inicia como receptor
}
void loop()
{
uint8_t buf[VW_MAX_MESSAGE_LEN];
uint8_t buflen = VW_MAX_MESSAGE_LEN;
int dato1=0;
float dato2=0.0;
//verificamos si hay un dato valido en el RF
if (vw_get_message((uint8_t *)buf,&buflen))
{
int i;
String DatoCadena="";
if((char)buf[0]=='i') //verificamos el inicio de trama
{
for (i = 1; i < buflen; i++)
{
DatoCadena.concat((char)buf[i]);
}
dato1=DatoCadena.toInt();
Serial.print("Dato1 recivido: ");
Serial.println(dato1);
}
http://www.naylampmechatronics.com/blog/32_Comunicaci%C3%B3n-Inal%C3%A1mbrica-con-m%C3%B3dulos-de-RF-de.html 15/22
16/7/2017 Comunicacin Inalmbrica con mdulos de RF de 433Mhz
-Mdulo RF 433MHz TX y RX
http://www.naylampmechatronics.com/blog/32_Comunicaci%C3%B3n-Inal%C3%A1mbrica-con-m%C3%B3dulos-de-RF-de.html 16/22
16/7/2017 Comunicacin Inalmbrica con mdulos de RF de 433Mhz
-Mdulo RF 433MHz TX y RX
-Cable Dupont, hembra a macho 20cm x 20Und
Tags: rf radiofrecuencia
78 ? ? 0 ? Compartir 3
37 Comments
cristian
jul 17, 2016
como puedo hacer la antena helicoidal. que calibre de cobre y cuanto necesito?
Reply
Naylamp
jul 20, 2016
Cristian, prueba con un cable calibre AWG 20 y has un espiral con dimetro 5mm y
3.5 cm de longitud, las espiras no deben de tocarse entre s, como se muestra en la
imagen del tutorial. Saludos
Reply
Federico Mahieu
jul 27, 2016
Buenas tardes, consulta, si quisiera tener comunicacion entre tres arduinos es posible codificar las
seales de los transmisores y receptores?.-Gracias.-
Reply
Naylamp
jul 28, 2016
Reply
Doen
abr 24, 2017
en los datos que transmitas le puedes agregar una identificacin para que el
dispositivo descarte la informacin que no esta dirigida a l
http://www.naylampmechatronics.com/blog/32_Comunicaci%C3%B3n-Inal%C3%A1mbrica-con-m%C3%B3dulos-de-RF-de.html 17/22
16/7/2017 Comunicacin Inalmbrica con mdulos de RF de 433Mhz
Reply
Jonathan Ascencio
sep 27, 2016
Existe algn mdulo o que componentes requiero que me permita comunicar varios dispositivos a
la vez. Por ejemplo tengo 5 focos (llamemos cliente) que estn con un rele y arduino y quiero
controlar su encendido y apagado desde un arduino principal (llamemos servidor). Es posible y
que mdulos o componentes de comunicacin requiero, Gracias.
Reply
Naylamp
sep 30, 2016
Reply
Alberto
oct 2, 2016
Muchas Gracias, es el primer tutorial, de este mdulo, que encuentro claro, fcil y que funciona. Es
frustrante empezar en este mundo y nada ms que encontrar basura por la red. Voy a ver si soy
capaz de modificar tu cdigo para encender el led con un botn. Una vez ms gracias, estaba
completamente desanimado.
Reply
Enzo Brandoni
oct 12, 2016
Hola, me gustara saber como debera modificar la programacin si quiero hacerlo con un
interruptor nada mas, sin PC. Voy a alimentar las placas con fuentes de computadora a 5v y quiero
que empiecen a transmitir en el momento en que enciendo la fuente del Emisor. Muchas gracias.
Reply
Naylamp
oct 14, 2016
Reply
http://www.naylampmechatronics.com/blog/32_Comunicaci%C3%B3n-Inal%C3%A1mbrica-con-m%C3%B3dulos-de-RF-de.html 18/22
16/7/2017 Comunicacin Inalmbrica con mdulos de RF de 433Mhz
osvaldo
nov 2, 2016
Hola y si lo que quiero es transmitir datos en tiempo real es decir enviarlos desde el monitor serial
y como puedo hacerle asi mismo como puedo agregarle una activacin mediante una seal de otro
sensor
Reply
Naylamp
nov 5, 2016
Estimado Osvaldo, los ejemplos que mostramos son la base para que implementes
sobre ellos cualquier aplicativo, por ejemplo si quieres enviar desde el monitor
serial, los datos recibidos desde la PC puedes almacenarlos en un string y
posteriormente enviarlo como un solo mensaje al receptor. O tambin leer carcter
por carcter e enviarlo de como variable tipo char.
Reply
Ivan
nov 15, 2016
Buenas tardes, quera hacerte una pregunta. Podras ayudarme a realizar un programa para
manejar un motor, variando su velocidad con un potencimetro o a travs del monitor serial? Soy
estudiante de secundaria y estoy en proyecto para construir un Drone. Te agradecera mucho si
me ayudaras. Saludos.
Reply
Naylamp
nov 16, 2016
Reply
Felipe Vallejo
nov 24, 2016
Reply
Felipe Vallejo
nov 24, 2016
Reply
Naylamp
http://www.naylampmechatronics.com/blog/32_Comunicaci%C3%B3n-Inal%C3%A1mbrica-con-m%C3%B3dulos-de-RF-de.html 19/22
16/7/2017 Comunicacin Inalmbrica con mdulos de RF de 433Mhz
Reply
Giovanni Sosa
nov 24, 2016
Tengo una duda, es necesaria la antena para que funcione? Realice todo tal y como esta, con los
modulos a 2 cm de distancia sin antena pero no funciona, no se si sea necesaria la antena porque
estan casi pegados y aun asi nada :/
Reply
Naylamp
nov 26, 2016
Hola Giovanni, en una comunicacin serial podra fallar, pero usando libreras a esa
distancia si debera transmitir. Pero ponle una antena, si es distancias cortas
puedes trabajar con cualquier trozo alambre como antena.
Reply
Argelia Zalazar
dic 3, 2016
Disculpe, cree usted que podria ser posible utilizar el mismo arduino como emisor y receptor? y
que este reciba y mande seales a otro arduino emisor-receptor?
Reply
Naylamp
dic 14, 2016
Reply
arturo
feb 13, 2017
http://www.naylampmechatronics.com/blog/32_Comunicaci%C3%B3n-Inal%C3%A1mbrica-con-m%C3%B3dulos-de-RF-de.html 20/22
16/7/2017 Comunicacin Inalmbrica con mdulos de RF de 433Mhz
Hola Naylamp. Una duda. los modulos RF vienen programados para funcionar unicamente con su
pareja?, algo asi como que manejen una codificacion interna que no permita que el modulo
receptor reciba una seal de un modulo emisor diferente a la pareja con el cual viene. no se si me
explico bien. Quiero colocarlo para manejar una cantonera elctrica de una puerta y usar el emisor
como una especie de control remoto que le genere la seal al receptor que activara la cantonera y
abrira la puerta y no me gustara que alguien con un modulo de los mismos, al emitir una seal,
sea recibida por mi modulo receptor y active la cantonera elctrica. Hay seguridad respecto a la
seal que recibe?
Reply
Naylamp
feb 13, 2017
Reply
Carlos
mar 6, 2017
Buena tarde Naylamp, te pregunto, fui a descargar la libreria y me sale que fue actualizada y ahora
no es VirtualWire sino RadioHead, ahora pregunto, cual es la nueva sintaxis que se utiliza con esta
nueva libreria? realmente he buscado pero no he podido encontrar como cambia. Por favor
colaborame. Gracias.
Reply
Naylamp
mar 7, 2017
Reply
ruben
mar 15, 2017
Hola , me gustara saber si mediante estos mdulos y arduino puedo transmitir audio (obviamente
en una sola direccion)
Reply
Naylamp
mar 31, 2017
Hola Rubn, No es posible transmitir audio, estos mdulos solo aceptan estados
digitales, y trasmiten a baja velocidad.
http://www.naylampmechatronics.com/blog/32_Comunicaci%C3%B3n-Inal%C3%A1mbrica-con-m%C3%B3dulos-de-RF-de.html 21/22
16/7/2017 Comunicacin Inalmbrica con mdulos de RF de 433Mhz
Reply
Carlos Coaquira
abr 11, 2017
Hola Naylamp, te felicito por tu aporte, es meritorio lo que haces, te pido me apoyes en este
proyecto, tengo 20 emisores (pulsador), en un radio de 50 metros y 01 receptor conectado al PC
que sea capaz de identificar quien puls el boton para enviarlo a una app y este asu vez enviar
un mensaje a otro dispositivo. Que me podrias aconsejar. Gracias de antemano.
Reply
Naylamp
abr 30, 2017
Hola Carlos, en cada emisor enva un identificador, como un inicio de trama para
poder diferenciar quien envi la cadena, el receptor con el identificador podr saber
en que Arduino se presion el pulsador. Tienes que enviar la cadena varias veces,
pues si se presionan dos pulsadores a la vez, ambos emisores funcionaran a la vez
provocando interferencia entre ellos
Reply
Yair Rojas
abr 15, 2017
Reply
Naylamp
abr 30, 2017
Hola Yair, puedes usar cualquier cable, si es esmaltado o con aislante es mejor,
evitar que se oxide.
Reply
dcelin
may 29, 2017
Hola, Naylamp excelente trabajo. Soy estudiante de ingeniera electrnica y estoy algo
atascado con lo que pretendo hacer tengo un cdigo de emisin, este emite los datos que
escribo por el monitor serie, el receptor toma esos datos y los manda a un display lcd 16*2..EL
problema consiste en que solo se pueden trasmitir hasta 27 caracteres y necesito mandar ms,
lo que me planteo hacer mandar una cadena de 27 caracteres, el numero 27 va a ser un 1 o un
0. cuando reciba estos caracteres los debe recorrer y mirar el ultimo, si es un 1 debe guardar
esto en una variable y esperar ah que le llegue el siguiente mensaje, cuando reciba el siguiente
mensaje lo recorre y verifica si es un "1 o un 0" si es un 1 hace el mismo procedimiento de
guardar y esperar, si es un 0 debe guardar la informacin y mandar al lcd cada mensaje
recibido en un intervalo de tiempo por ejemplo 15 seg.
El 1 significa que entran mas mensajes.
El 0 significa que ya no va a mandar mas mensajes y que debe mostrar todo
Reply
http://www.naylampmechatronics.com/blog/32_Comunicaci%C3%B3n-Inal%C3%A1mbrica-con-m%C3%B3dulos-de-RF-de.html 22/22