////TRANSMISOR
#include <VirtualWire.h>
void setup()
{
Serial.begin(9600); // abre el puerto de serie
Serial.println("Transmisor listo"); // Imprime "listo" en el monitor serial
pinMode(13, OUTPUT); //configura el pin 13 como salida, se usara el led integrado.
vw_set_tx_pin(12); // Configura el pin 12 como TX
vw_set_ptt_inverted(true); // Requerido para DR3100
vw_setup(4000); // Bits por segundo
}
void loop()
{
digitalWrite(13, HIGH); // Parpadeo para mostrar actividad
char msg[] = "Hello World"; // Mensaje a enviar
vw_send((uint8_t *)msg, strlen(msg)); //Enviando...
vw_wait_tx(); // espera hasta que el mensaje se haya enviado
Serial.println("Transmitiendo..."); // Imprime transmitiendo en el monitor serial
delay(125); // Pausa antes repetir el ciclo
digitalWrite(13, LOW); // Parpadeo para mostrar actividad
delay(125); // Pausa antes repetir el ciclo
}
Y el código del receptor es:
#include <VirtualWire.h>
int count;
void setup()
{
Serial.begin(9600); // abre el puerto de serie
Serial.println("Receptor listo"); //Imprime "listo" en el monitor serial
pinMode(13, OUTPUT); //configura el pin 13 como salida, se usara el led integrado.
vw_set_rx_pin(12); //Configura el pin 12 como RX
vw_set_ptt_inverted(true); //Requerido para DR3100
vw_setup(4000); // Bits por segundo
vw_rx_start(); // Inciar el receptor
}
void loop()
{
digitalWrite(13, HIGH); // Parpadeo para mostrar actividad
uint8_t buf[VW_MAX_MESSAGE_LEN]; //Almacenar en buffer los datos recibidos
uint8_t buflen = VW_MAX_MESSAGE_LEN; //Determina el numero de caracteres recibidos
if (vw_get_message(buf, &buflen)) // Si hay un mensaje recibido ejecuta...
{
int i;
Serial.print("Rx: "); //imprime Rx en el monitor serial
for (i = 0; i < buflen; i++) //rutina para impresion del mensaje recibido
{
char c = (buf[i]); // guarda el caracter recibido para despues imprimirlo
Serial.print(c); //imprime el caracter recibido en el monitor serial
Serial.print(" "); //deja un espacio en el monitor serial
}
count++; //incrementa contador
Serial.print(count); //imprime el contador en el monitor serial
Serial.println(""); // salto de linea monitor serial
}
delay(125); // Pausa antes repetir el ciclo
digitalWrite(13, LOW); // Parpadeo para mostrar actividad
delay(125); // Pausa antes repetir el ciclo
}