Hi every body , I searched on Instructables about a simple RF Transmitter-receiver module , Which is used in Remote control for cars , or to control simple tasks , like control relay on/off unfortunately I didn't find What I need   , So i decided to write a simple artical about this transceiver and How we can connect it with arduino  and program it .


at first let's take a look for what we need :

1)  2 Arduino Board "I used Uno" 

2) RF 315MHz or 433MHz transmitter-receiver module .

3) jumper wire .

4) BreadBoard .

5)External Power supply (9V Battery *2) "Optional" .

Step 1: Module Specification

This module has a specification for :

Transmitter : 

Working voltage: 3V - 12V  fo max. power use 12V
Working current: max  Less than 40mA max , and min 9mA
Resonance mode: (SAW)
Modulation mode: ASK
Working frequency: Eve 315MHz  Or  433MHz 
Transmission power: 25mW (315MHz at 12V)
Frequency error: +150kHz (max)
Velocity :  less than 10Kbps

So this module will transmit up to 90m in open area .

Receiver :

Working voltage: 5.0VDC +0.5V
Working current:≤5.5mA max
Working method: OOK/ASK
Working frequency: 315MHz-433.92MHz
Bandwidth: 2MHz
Sensitivity: excel –100dBm (50Ω)
Transmitting velocity: <9.6Kbps (at 315MHz and -95dBm)

 the use of an optional antenna will increase the effectiveness of your wireless communication. A simple wire will do the trick.

<p>Hey nice. I want to ask you can I use this module to control my quadcopter?</p>
<p>i think it's not an ideal for quadcopters , the RF range less than 40m.</p><p>but as an idea yes you can but you need to work on the RF packet you want to send and receive </p>
<p>hi. nice Instructable, i have a question, can i use one reciver and many transmiter, to make a proximity alert mesh. need to improve safety in mining labor to avoid cars and trucks hit people inside a mine tunnel</p>
<p>yes you can , with this module it's easy to do that.</p>
<p>I am getting an error saying that vw_set..... was not declared... I know the library is available as it showing in the IDE examples as well as libraries... I'm baffled.</p><p>People are asking about longer range... The RF24 is a good transceiver for long range. They carry quite a few channels and have been proven to like 10Km..</p>
<p>what is your arduino version ? in the newer Arduino IDE this library is not working well .<br>please check my newer article about this RF using radio head library</p><p><a href="https://www.instructables.com/id/RF-315MHz433MHz-Wireless-and-Arduinoagain/">https://www.instructables.com/id/RF-315MHz433MHz-W...</a></p><p>for nrf yes it's way better than this module ,but 10Km is not availabe in this module, the communication regulation in most of the country the nRF power&lt;60mW and as a range about 2KM .</p>
<p>Thank you for your reply. I will try an older version of the IDE and see how that goes. I am also checking out your other instructable. Thank you for posting this though. If it weren't for instructables and other people I would be lost with the arduino. I appreciate the time you've taken to help others out.</p>
<p>What do you mean with &quot;serial&quot; </p><p>(this is a simple example , for 1 master Transmitter , 2 ReceiverS , and send a command through <strong>Serial</strong> for a receiver To Turn LED On/Off .)</p>
<p>I update a new artical with serial monitor code ,you can send your your command from serial port<br>https://www.instructables.com/id/RF-315MHz433MHz-Wireless-and-Arduinoagain/</p>
<p>sorry i edited this code later , before i wrote it to receive a data from serial (hardware serial pins &quot;computer&quot;) so you can build more advance application <br>thanks for your question i will edit it soon</p>
<p>You shall use RadioHead, the library that supersedes &amp; replaces the obsolete Virtual Wire.</p><p>Same functionalities plus a lot more:</p><p>- takes all the advantage of all available radio modules (not only ASK, incl. bi-directional transceivers as well, different coding/modulation...)</p><p>- includes client-server, security....</p><p>- able to work on TIMER2, if you need TIMER1 for something else...</p><p> http://www.airspayce.com/mikem/arduino/RadioHead/classRH__ASK.html </p>
<p>Here my new artical for the same module with Radiohead library</p><p>https://www.instructables.com/id/RF-315MHz433MHz-Wireless-and-Arduinoagain/</p>
<p>Hey, Its works well with Radiohead. But when I try to power my transmitter with 9V battery (see if Tx goes further) but leave datapin in 12, I have no transmission anymore ?????? Anybody knows why ??</p>
<p>Not sure I get your point. </p><p>Do you mean it works with 5V, but not anymore when you power the transmitter with 9V?</p><p>One important thing here is to make sure both power sources have the same (GND) reference, e.g. both grounds are connected.</p><p>If they are not connected, both circuits are &quot;floating&quot;, it means there is no reference for the DATA pin on the transmitter</p><p>In basic words, when there is a 0v/5v signal on arduino pin 12, it's 0v/5v relative to arduino ground. If arduino ground and transmitter ground are not connected, there is no way for the transmitter to guess the reference, hence to read the data coming from arduino.</p><p>See second schematics bellow.</p>
<p>sir,can u plz tell me why we need virtual wire library without it why we r not able to do work</p>
<p>alright, now this module use Manchester code on the output and each packet of data contains many bits and need to synchronize a clock to read the packet.<br><a href="https://en.wikipedia.org/wiki/Manchester_code">https://en.wikipedia.org/wiki/Manchester_code</a></p><p>you need the library to decode this packet and make it easier for you to read.<br><br>now you wondering why there are many RFs with direct 0/1 output like this one<br> <a href="https://www.seeedstudio.com/2KM-Long-Range--RF-link-kits-w-encoder-and-decoder-p-321.html">https://www.seeedstudio.com/2KM-Long-Range--RF-lin...</a><br>because it comes with decoder built in, so it gives you 0 / 1 on the output pin.<br>hope this answer is useful for you</p>
<p>Sorry, I didn't get you question. Can you explain your problem more clearly?</p>
<p>Hey Thanks, indeed a common ground solves it ! Thank you very much for your reply !</p><p>Tkx, Leo</p>
<p>can you make this library work with Attiny13 ? </p>
<p>absolutely no</p>
I have some question,how we can control more transmitters with one or more recivers at the same time?<br>For example we have 3 transmiters and 3 recivers and we send signal only at one transmitter,will it all 3 recivers recive that signal and send them to outputs? <br>So I need something to do like shift register to control more outputs,can I do with this module?
<p>first you need to set all the transmitter and receiver with the same bit per second<br>using this command</p><p><br>vw_setup(uint16_t speed);<br><br>second,you need to write your code and just change the character you want to send from the transmitter. </p><p>this module can't work alone without mcu so you need, no shift register required in this case , and you can set each receiver to read a specific data &quot;by change the if statement in your code&quot;.<br></p>
<p>Send your first bit a '#1' for receiver one, #2 for receiver two and #3 for receiver three, Each receiver receive all data, you have to write a program that starts listing after #1 for receiver 1 #2 for receiver 2 and...... Yes. You can use your one opening ~1 instead of #1. So you can write a program for receiver one that starts listing after #1 until ~1. ~1 is then end of data for receiver 1. </p>
<p>why do i need two arduinos?</p>
<p>If you want to communicate between a transmitter (one Arduino) and receiver (second Arduino) then you need 2 Arduino's. If you only want to send ore receive data you only need one Arduino. ;-) Or Raspberry</p>
<p>Thank you </p>
<p>Hi. I am using 315mhz transceiver without antenna and nothing happen. It should at least transmit data even without antenna. I've used two uno. The transmitter is powered with 9v battery. What could be the problem?</p>
<p>I've a newbie at these devices and in the process of checking up on them, I've come across the comment that running a transmitter without an antenna can be bad for the transmitter. Sounds like its possible it worked poorly at first and some point after it may have died. Hope not. Good luck. </p>
<p>antenna for this module will not improve the range so much and some time cause damage for the module &quot;it's weird the antenna must be straight and any bent in the antenna cause a problem for the data&quot;<br>without antenna it works fine and for along time and you can fund the same module on many remote control .</p><p>thanks </p>
<p>Have you connected the ground of the battery with the ground of the arduino?</p>
<p>maybe from the connection , or the module you use is not working</p>
<p>I tried yr sketches (for simple on/off) and they worked wonderfull. I do this tests because I want to make a garage door opener. I want to mount such a system in parallel to the existing one. You say that for encoder and decoder one should use PT2262 and PT2272. What does this mean? Is this in stead of the 2 devices we are testing here or is it additional? </p>
<p>there are many modules come with decoder ic called PT2262 and PT2272.<br>if you want to encrypt your communication you must use them</p>
<p>Can I transmit data and read it on an LCD display at the receiver? Please help regarding the same...</p>
<p>I have two pairs of 433MHz transceiver (transmitter n&deg;1 with receiver n&deg;1 and transmitter n&deg;2 with receiver n&deg;2). How can I just exchange data's between transmitter n&deg;1 and receiver n&deg;1 and between transmitter n&deg;2 and receiver n&deg;2 and not between transmitter n&deg;1 and receiver n&deg;2 or between transmitter n&deg;2 and receiver n&deg;1?</p>
<p>How can I increase the signal range?</p>
<p>I think if you take an external power (e.g. a battery) that it is higher than 5V, the signal range will also increase. But keep in your mind that the maximum voltage of an 433MHz transceiver is around 12V. </p>
<p>Having spent ages looking for a simple tutorial, I came across this Instructable, and I managed to make the circuitin 5 minutes. Thanks</p>
<p>can i use this modules for 1 receiver with multiple transmitters simultaneously ? </p><p>Ex 1 transmitter and 2 receivers </p>
<p>can i transmit audio and video using this module?</p>
<p>The data transfer rate will be a max of 9600bits per second, which is 1200bytes per second (1.2kB/s), which is too slow for audio or video transmission.</p>
<p>You can transmit audio, you need to power the transmitter and put the audio source onto the data pin. Then connect the data output from the RX module to a audio amp and then to a speaker. I think the VirtualWire lib takes the data and turns it into audio and sends it, I don't see a reason that you couldn't tx audio! I am going to buy one of theese soon.</p>
<p>hello,</p><p>can anyone please tell me what TxPowerPin refer to? I need to use this command but i exactly dont know what this exactly is...</p><p>#define DHTPin 4</p><p>#define TxPowerPin 1 </p><p>??????????????</p>
<p>how about if i want make 1transmitter and 2transmitter? for example receiver A1 and B1. then 2 switch for transmitter.</p>
<p>Get a 404 error when trying to download virtualwire, please help.</p>
<p>there is a new version of VirtualWire calld RadioHead. You can find more information at </p><p>www.airspayce.com/mikem/<strong>arduino</strong>/<strong>RadioHead</strong>/</p>
<p>Is it possible to upload sketches from one arduino to another arduino using the Rd transmitter module?</p>
<p>It won't download virtual wire?</p>

About This Instructable




Bio: Maker, PCB designer , electronics instructor from Jordan just one word ! I Adore electronics follow me on FB https://www.facebook.com/Mohannad-Rawashdeh-Raw-774983565988641/
More by Mohannad Rawashdeh:TTP224 Digital Touch Sensor Applications Using Arduino RF 315MHz/433MHz Wireless and Arduino...again! Motor Driver BTS7960 43A 
Add instructable to: