Buscando he encontrado un truco para asegurarse de que funcionan bien; conectar la salida de datos de una arduino a la entrada de datos del otro por un cable.
Supongo que asi podre probar si el problema es de mi programa ( muy posible) o del modulo mismo
Con esto he conectado un cable desde el pin 12 del trasmisor hasta el pin 11 del receptor
En el código del transmisor he puesto esto (ARDUINO MEGA ADK)
#include <VirtualWire.h>
void setup()
{
vw_setup(2000); // Bits per sec
}
void loop()
{
const char *msg = "hello";
vw_send((uint8_t *)msg, strlen(msg));
delay(400);
}
En el codigo del receptor he puesto este otro (ARDUINO UNO)
#include <VirtualWire.h>
void setup()
{
Serial.begin(9600);
Serial.println("setup");
vw_setup(2000); // Bits per sec
vw_rx_start(); // Start the receiver PLL running
}
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;
// Message with a good checksum received, dump HEX
Serial.print("Got: ");
for (i = 0; i < buflen; i++)
{
Serial.print(buf, HEX);
Serial.print(" ");
}
Serial.println("");
}
}
En el receptor al poner el monitor me aparece "setup", pero no recibe nada.
En el trasmisor al cargar el programa me da este error
avrdude: stk500_getsync(): not in snyc: resp=0x30
Alguein sabe lo que pasa ¿?