RF Wireless Transmitter & Receiver Module 433Mhz for Arduino MX-05V/XD-RF-5V Introduction: Wireless Transmitter Modules allow your Arduino to wirelessly comunicate with other arduinos, or with radio frequency (RF) controlled devices that operate in the same frequency (433Mhz in this case). In this tutorial I'll show you how to use an Arduino to decode signals from RF remotes, and re-send them to remotely control some mains switches and a garage.
Want to add wireless capabilities to your next Arduino project, for less than the price of a cup of coffee? Well, then 433MHz RF Transmitter and Receiver Modules are just for you! They can often be obtained online for less than two dollars for a pair, making them one of the most inexpensive data communication options that you can get. And best of all, these modules are super tiny, allowing you to incorporate a wireless interface into almost any project.
Hardware Overview
Let’s have a closer look at the 433MHz RF Transmitter and Receiver Modules.
This little module is a transmitter among two. It is really simple as it looks. The heart of the module is the SAW resonator which is tuned for 433.xx MHz operation. There is a switching transistor and a few passive components, that’s it.
When a logic HIGH is applied to the DATA input, the oscillator runs producing a constant RF output carrier wave at 433.xx MHz and when the DATA input is taken to logic LOW, the oscillator stops. This technique is known as Amplitude Shift Keying, which we will discuss in detail shortly.
This one is a receiver module. Though it looks complex, it is as simple as the transmitter module. It consists of a RF tuned circuit and a couple of OP Amps to amplify the received carrier wave from the transmitter. The amplified signal is further fed to a PLL (Phase Lock Loop) which enables the decoder to “lock” onto a stream of digital bits which gives better decoded output and noise immunity.
ASK – Amplitude Shift Keying
As discussed above, for sending the digital data over radio, these modules use a technique called Amplitude Shift Keying or ASK. In Amplitude Shift Keying the amplitude (i.e. the level) of the carrier wave (in our case it’s a 433MHz signal) is changed in response to the incoming data signal.
This is very similar to the analog technique of amplitude modulation which you might be familiar with if you’re familiar with AM radio. It’s sometimes called binary amplitude shift keying because there are only two levels we are concerned with. You can think of it as an ON/OFF switch.
For Digital 1 – This drives the carrier at full strength.
For Digital 0 – This cuts the carrier off completely.
This is how the Amplitude modulation looks like:
Amplitude Shift keying has the advantage of being very simple to implement. It is quite simple to design the decoder circuitry. Also ASK needs less bandwidth than other modulation techniques like FSK (Frequency Shift Keying). This is one of the reasons for being inexpensive.
The disadvantage however is that ASK is susceptible to interference from other radio devices and background noise. But as long as you keep your data transmission to a relatively slow speed it can work reliably in most environments.
433MHz RF Transmitter & Receiver Pinout
Let’s have a look at the pinout of 433MHz RF Transmitter and Receiver Modules.
DATA pin accepts digital data to be transmitted.
VCC supplies power for the transmitter. This can be any positive DC voltage between 3.5V to 12V. Note that the RF output is proportional to the supply voltage i.e. the higher the Voltage, the greater the range will be.
GND is a ground pin.
Antenna is a pin for external antenna. As discussed earlier, you will want to solder a 17.3 cm piece of solid wire to this pin for the improved range.
VCC supplies power for the receiver. Unlike the transmitter, supply voltage for receiver needs to be 5V.
DATA pins output the digital data received. The two center pins are internally tied together, so you can use either one for data out.
GND is a ground pin.
Antenna is a pin for external antenna which is often unmarked. It is the pad in the lower left of the module, right next to the small coil. Again, you will want to solder a 17.3 cm piece of solid wire to this pin for the improved range.
Wiring – Connecting 433MHz RF Transmitter and Receiver to Arduino UNO
Now that we know everything about the modules it is time to put them to use!
As we will be sending data between two Arduino boards, we will of course need two Arduino boards, two breadboards and a couple of jumper wires.
The wiring for the transmitter is fairly simple. It has only three connections. Connect the VCC pin to 5V pin and GND to ground on the Arduino. The>Wavelength of frequency =Speed of the transmission (v)Transmission frequency (f)
In air, speed of transmission is equal to the speed of light, which is 299,792,458 m/s to be precise. So, For the 433 MHz band the wavelength is
Wavelength of frequency =
299,792,458 m/s
433,000,000 Hz
=
0.6924 meters
=
69.24 cm
As full wave 69.24 cm antenna is a pretty long antenna, it is not very practical to use. That’s why we’ll opt for a quarter wave antenna which works out to about 17.3 cm or 6.8 inches.
Just in case, if you are experimenting with other radio transmitters that use different frequencies, you can use the same formula to calculate the required antenna length. Pretty easy, Right?
TIP
Even a 17.3 cm antenna can seem inconvenient in your tiny Arduino project. But Do NOT be tempted to coil the antenna to make it more compact as this will seriously impact range. A straight antenna is always best!
You can connect many Receiver and send a Data from One Master Transmitter . For more secret you may need Encoder-Decoder . Encoder is a circuit that changes a set of signals into a code . Decoder is a circuit that changes a code into a set of signals . if You need an Encoder/Decoder IC , You can use PT2262 and PT2272 this is a simple example , for 1 master Transmitter , 2 ReceiverS , and send a command through Serial for a receiver To Turn LED On/Off . Tx code :
//simple Tx on pin D12 //Written By : Mohannad Rawashdeh // 3:00pm , 13/6/2013 //http://www.genotronex.com/ //.................................. #include <VirtualWire.h> char *controller; void setup() { pinMode(13,OUTPUT); vw_set_ptt_inverted(true); // vw_set_tx_pin(12); vw_setup(4000);// speed of data transfer Kbps } void loop(){ controller='A1' ; vw_send((uint8_t *)controller, strlen(controller)); vw_wait_tx(); // Wait until the whole message is gone digitalWrite(13,1); delay(1000); digitalWrite(13,0); delay(1000); controller='B1' ; vw_send((uint8_t *)controller, strlen(controller)); vw_wait_tx(); // Wait until the whole message is gone digitalWrite(13,1); delay(1000); digitalWrite(13,0); delay(1000); }