Documente Academic
Documente Profesional
Documente Cultură
1 de 16
http://www.naylampmechatronics.com/blog/32_Comunicacin-Inalm...
Posted by
7 Comments
jun 04,
2015
ago 06,
2016
03/10/2016 18:45
2 de 16
http://www.naylampmechatronics.com/blog/32_Comunicacin-Inalm...
3 de 16
http://www.naylampmechatronics.com/blog/32_Comunicacin-Inalm...
Touch de 7 pulgadas
S/. 470,00
Rodamiento polimrico
para gua de 8mm de
dimetro
S/. 15,00
Cristal oscilador de
16 MHz de
frecuencia. Utilizado
en Arduino Uno,...
03/10/2016 18:45
4 de 16
http://www.naylampmechatronics.com/blog/32_Comunicacin-Inalm...
S/. 2,00
El mdulo Relay te
permite controlar el
encendido/apagado
de equipos de...
S/. 6,00
Sensor capacitivo te
permite detectar
objetos metlicos y
no metlicos...
void setup() {
// Inicializamos la comunicacin serial a 2400 baudi
os
Serial.begin(2400);
}
void loop() {
Serial.print("Hola mundo ... ");
Serial.print(millis()); // enviamos
idos
Serial.println("ms");
delay(10);
}
los ms transcurr
S/. 40,00
03/10/2016 18:45
5 de 16
http://www.naylampmechatronics.com/blog/32_Comunicacin-Inalm...
6 de 16
http://www.naylampmechatronics.com/blog/32_Comunicacin-Inalm...
03/10/2016 18:45
7 de 16
http://www.naylampmechatronics.com/blog/32_Comunicacin-Inalm...
03/10/2016 18:45
8 de 16
http://www.naylampmechatronics.com/blog/32_Comunicacin-Inalm...
// 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
pinMode(13, OUTPUT);
//Configuramos el pin del L
ed como entrada
digitalWrite(13, false);
}
void loop()
{
uint8_t dato;
uint8_t datoleng=1;
//verificamos si hay un dato valido en el RF
if (vw_get_message(&dato,&datoleng))
{
if((char)dato=='a')
{
digitalWrite(13, true); //Encendemos el Led
}
else if((char)dato=='b')
{
digitalWrite(13, false); //Apagamos el Led
}
}
}
#include <VirtualWire.h>
void setup()
{
Serial.begin(9600);
Serial.println("Emisor: Setup");
// Se inicializa el RF
03/10/2016 18:45
http://www.naylampmechatronics.com/blog/32_Comunicacin-Inalm...
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";
digitalWrite(13, true); // Parpadeamos el led al e
nviar
vw_send((uint8_t *)msg, strlen(msg));
vw_wait_tx(); //Esperamos hasta que el mensaje se e
nvie
digitalWrite(13, false);
delay(200);
}
el led al
recibir
//verificamos si hay un dato valido en el RF
Serial.print("Mensaje: ");
for (i = 0; i < buflen; i++)
{
9 de 16
03/10/2016 18:45
http://www.naylampmechatronics.com/blog/32_Comunicacin-Inalm...
Serial.print((char)buf[i]);
}
Serial.println("");
digitalWrite(13, false);
}
}
10 de 16
03/10/2016 18:45
11 de 16
http://www.naylampmechatronics.com/blog/32_Comunicacin-Inalm...
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
}
void loop()
{
char buf[VW_MAX_MESSAGE_LEN]; // Cadena para enviar
int dato1=millis()/1000; //variable con el tiempo e
n segundos
float dato2=3.14;
//segundo dato para enviar
String str="";
str="i"+String(dato1); //convertimos el entero a St
ring y agramos un inicio de trama
str.toCharArray(buf,sizeof(buf)); //convertimos el
String en un array
vw_send((uint8_t *)buf, strlen(buf)); //Enviamos el
array
vw_wait_tx(); //Esperamos hasta que el mensaje se e
nvie
str="f"+String(dato2); //convertimos el float a Str
ing y agramos un inicio de trama
str.toCharArray(buf,sizeof(buf)); //convertimos el
String en un array
vw_send((uint8_t *)buf, strlen(buf)); ////Enviamos
el array
vw_wait_tx(); //Esperamos hasta que el mensaje se e
nvie
delay(200);
}
03/10/2016 18:45
12 de 16
vw_set_rx_pin(2);
vw_rx_start();
http://www.naylampmechatronics.com/blog/32_Comunicacin-Inalm...
}
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 d
e trama
{
for (i = 1; i < buflen; i++)
{
DatoCadena.concat((char)buf[i]);
}
dato1=DatoCadena.toInt();
Serial.print("Dato1 recivido: ");
Serial.println(dato1);
}
else if((char)buf[0]=='f') //verificamos el ini
cio de trama
{
for (i = 1; i < buflen; i++)
{
DatoCadena.concat((char)buf[i]);
}
dato2=DatoCadena.toFloat();
Serial.print("Dato2 recivido: ");
Serial.println(dato2);
}
}
}
03/10/2016 18:45
13 de 16
http://www.naylampmechatronics.com/blog/32_Comunicacin-Inalm...
Tags:
70
Compartir
cristian
jul 17, 2016
como puedo hacer la antena helicoidal. que calibre de
cobre y cuanto necesito?
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
Federico Mahieu
03/10/2016 18:45
14 de 16
http://www.naylampmechatronics.com/blog/32_Comunicacin-Inalm...
Naylamp
jul 28, 2016
Con estos mdulos RF no se pueden trasmitir
ms de uno a la vez, estos mdulos
bsicamente trabajan con modulacin ASK,
con ausencia y presencia de seal que definen
los 1 y 0 lgicos, por eso cualquier otra seal
de la misma frecuencia interfiere en la
transmisin. Si quieres conectar ms de un
Arduino tu algoritmo debe asegurar que solo
uno transmita a la vez.
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.
Naylamp
sep 30, 2016
Hola Jonathan, Si solo existe un Emisor y
varios receptores si es posible trabajar con
estos mdulos. Desde el emisor aparte del
dato que deseas enviar tambin tienes que
enviar un variable con el ID del receptor con el
que quieres comunicarte, en el receptor tienes
que validar si el ID es el que le corresponde
para aceptar los datos que recibe. En cambio
s ms de un arduino va a trasmitir tienes que
usar mdulos RF de varios canales, para que
no haya interferencia entre ellos. Para este
caso puedes usar el NRF24L01.
03/10/2016 18:45
15 de 16
http://www.naylampmechatronics.com/blog/32_Comunicacin-Inalm...
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.
* Name:
* E-mail:
(Not
Published)
Website:
(Site url
withhttp://)
* Comment:
Submit
Naylamp Mechatronics,
Trujillo Per
Llmanos ahora:
997646858
03/10/2016 18:45
16 de 16
http://www.naylampmechatronics.com/blog/32_Comunicacin-Inalm...
Email:
03/10/2016 18:45