433MHz RF Communication
August 28, 2010
For this project I used two Arduino Duemilanove, a 433MHz RF kit, and six short wires to connect it together.
To send a message, I used this code
#include <VirtualWire.h> #undef int #undef abs #undef double #undef float #undef round void setup() { // Initialise the IO and ISR vw_set_ptt_inverted(true); // Required for RF Link module vw_setup(2000); // Bits per sec vw_set_tx_pin(3); // pin 3 is used as the transmit data out into the TX Link module, change this to suit your needs. } void loop() { const char *msg = "RF is up"; // this is your message to send vw_send((uint8_t *)msg, strlen(msg)); vw_wait_tx(); // Wait for message to finish delay(200); }
The sender is connected to digital pin 3, VIN (12V for better range), and GND.
To receive I used this code
#include <VirtualWire.h> #undef int #undef abs #undef double #undef float #undef round #define rxPin 2 void setup() { Serial.begin(9600); // Initialise the IO and ISR vw_set_ptt_inverted(true); // Required for RX Link Module vw_setup(2000); // Bits per sec vw_set_rx_pin(rxPin); // We will be receiving on pin 2 ie the RX pin from the module connects to this pin. vw_rx_start(); // Start the receiver } void loop() { uint8_t buf[VW_MAX_MESSAGE_LEN]; uint8_t buflen = VW_MAX_MESSAGE_LEN; if (vw_get_message(buf, &buflen)) // check to see if anything has been received { int i; // Message with a good checksum received. for (i = 0; i < buflen; i++) { Serial.print(buf[i]); // the received data is stored in buffer } Serial.println(""); } }
The reciever is connected to the digital pin 2, +5V and GND
You will also need VirtualWire 1.3, download it here and unzip it to your library folder.
Download: VirtualWire 1.3