Introduction: Arduino Integer Transmission Simplified

This tutorial is all about the cheap Chinese data radios that is available on Ebay , during the past few years I have read and tried many libraries with these devices, and with mixed success on some and bad on others.

In this tutorial we will be looking at the most simplest Arduino Sketch to get a integer( only whole number no floats!) from point A to point B with definitions on how to increase your range and reliability.

Step 1: Setting Up

First off we need the hardware get your self a set( RX and Tx ) of the cheap chinese data radios of Ebay or preferred supplier.Secondly you will need two Arduino boards, Mega 2560 or a Uno will do fine its your choice.

Once you have your hardware you need to make an antenna for your Rx and TX radios.

Step 2: Antenna's and Connections.

On the Antenna port you can attach a copper wire of 164mm in length (tested for best performance ) this wire can be solid wire or soft braided strand both work very well. once you have the Antenna's attached it is time to connect your radios with the Arduino's.

On the TX side( the small PCB is the TX unit)

Pin VCC => 5v

Pin DATA => 11

Pin GND => GND

On the TX side( the Larger PCB is the RX unit)
Pin VCC => 5v

Pin DATA => 11 (Any of the middle two pins)

Pin GND => GND

Now you are ready to load the code.

Step 3: Installing the Library and Running the Code.

Once you have the connections made you are ready for the Code ! IF you do not have the Virtual Wire library installed then here is what to do.

Attached is a file called "VirtualWire.zip" extract this file and copy content in the file directory below.

"C:\Program Files\Arduino\libraries"

Now you are ready for the code! start up two instances of the Arduino IDE and load the to files attached called

RX_STRIPPED and TX_STRIPPED into each IDE and upload into your Arduino boards( Make sure that your TX code is installed on the Arduino with the TX unit attached and the same for the RX unit.

Once uploaded start your serial monitor and you should start seeing data flowing from the TX to the RX Serial monitor.

Whala! your done ! now its time to get your head working and changing the code to do what you want !

Hope this helped !

Step 4: Factors That Decrease/Increase Range

Okay so your Radios are working and now now you want the maximum range yes?

Okay well here is a list of steps to take to get maximum range.

Step 1 ) Decrease baud rate that the radios work at to between 1000 and 2000bps

Step 2) Make the packet(payload) size to be sent smaller

Step 3) Increase the input voltage on the Transmitter to between 7.2 and 12v (7.2 works best for me )

Step 4) Make your antenna's of a higher quality wire and try to stay with in line of site.

I have personally with this code and settings above achieved 110 meter reliable communications with these units.

Comments

author
gunjan03 made it!(author)2016-12-06

i got only mid value of transmitter . what should i do?

author
gabontz made it!(author)2016-09-12

Hello,

For me is not working, and the RX-TX pair is functional, tested with another sketch.

What I want, is to send the data over wireless from 4 inputs, and activate 4 outputs on the receiver, one for each input, but can't get them working.

Any tips would be appreciated.

author
CrtSuznik made it!(author)2016-06-29

could you tell us more about your antenna? I soldered a 17cm copper wire to both the RX and TX, but i can't seem to get more than a meter of range between them, before the signal dies

author
seppconstruct made it!(author)2016-02-15

Do you have any trouble with this library and the LCD5110_Graph.h or LCD5110_Basic.h library?

author
Bamaan made it!(author)2016-01-15

Wow, I have been struggling with sending the data from a DHT11 sensor via VirtualWire and you made it not only easy, but very elegant. Thank you very much. I will try to remember to use struct more often!

Image 002.png
author
isaac4664 made it!(author)2015-12-18

The VirtualWire and the Servo libraries don't work together but apparently RadioHead does, can you make for that one or explain how to? Thanks

author
trainor made it!(author)2015-06-07

Nice project!

I am worried about the range. I tried many wireless bells at home and none of them has an acceptable range.

You say that increasing the input voltage will increase the range, but how can you do that?

Thanks

author
Rustie0125 made it!(author)2015-06-09

the transmitter has a operating range of 3v- 12v on the VCC pin , but i found powering it with 7v works best for range.

author
trainor made it!(author)2015-06-21

I understand that, but afaik the Arduino only has 5 V and 3.3 V pins. How can you power the transmitter at 7 V or even 12 V without damaging the Arduino?

Sorry, maybe a silly question, but I am a newbie and I never used an Arduino before (never made an electronic DIY project, actually) and I'd really like to try this one (or similar projects with 433 MHz transmitters).

author
joegeek made it!(author)2014-10-24

I am running my No.1 Arduino with the Transmitter module on battery. My No.2 Arduino is connected to my Receiver module and that is connected to the IDE running my Serial Monitor. I have NO data flowing or any communications from what I can tell. I verified the correct baud rate for the serial monitor and the sketch is the same. This is my second set I ordered from China and was hoping this set would work. I am wondering at this point what stupid thing that I did on my end. Do I have to have two serial monitors up for both Arduinos for this to work? Is there some way to test if it is transmitting? Thank you, humbley ... JOE

author
marselle001 made it!(author)2015-01-12

i am not sure from what i see in the source code of the receiver , their is no assignment for the received data to variable aka , what i beleive (i may be wrong) , receivedData.Sensor1Data will remain 0 .

author
Rustie0125 made it!(author)2014-10-24

Hi Joe

Open Serial monitor on both sides the TX side will show what is being transmitted, if it does not show anything then the transmitter is not working, make sure your Serial monitors is set to 9600 baud

author
tbear5 made it!(author)2014-12-02

[quote]

Vw_setup war no declared in this scope ??

vw_setup(2000);[color=#7E7E7E]// Setup and Begin communication over the radios at 2000bps( MIN Speed is 1000bps MAX 4000bps)[/color]

[/quote]

author
PedroHenriqueGuida made it!(author)2014-11-30

Very nice, I was looking for a post like this one. Congrats

author
archerbob made it!(author)2014-10-26

Hello Rustie

I'm working on a project that involves sending float values, and you mention in a response to msjuck that these radios are not powerful enough to send float data types. My question is why these particular RF units can't send float values, and what path would you recommend to send float values via radio transmission. Thank you very much for your time and patience.

-Archerbob

author
Rustie0125 made it!(author)2014-10-27

Hi Archerbob

The radios as far as I understand can not send "."or" ," separated values .I have read that people use a index to send float numbers for example . if value is between 1-2 then send 1 on the receiver side if 1 is received it is equal to between 1-2 . if that makes sense. but look online there are a few ways of converting floats into int and convert them back again

author
archerbob made it!(author)2014-10-28

Thank you very much for the reply, I'll take a look into converting the values, as I'm trying to send GPS positions. On a related note, would a transceiver be able to send a "." or "," character (approximately similar quality and price as the radio units that you used)? I suppose the root of my question comes down to what type of radio can send the above-mentioned characters?

author
msjuck made it!(author)2014-08-26

i have a question, Does it work without any kinda MCU, i mean something like direct Mic input.. I set 5v on Tx Data Pin (of course i checked VCC power on), Receiver DATA pin never changes..

author
Rustie0125 made it!(author)2014-08-26

To be honest I have never tried it in that manner, my logic would tel me that it would not work because the data has to be formulated into int's or some data structure, these radios are not even powerfull enough to sent a float data type. but you can try and please report back to us!

author
steinie44 made it!(author)2014-08-20

By the way ATAD is DATA backwards. Those Chinese.... LOL

author
msjuck made it!(author)2014-08-26

yeah, but you can read it anyway

author
MsSweetSatisfaction made it!(author)2014-08-16

Very neat! However if you could use all original images it would be appreciated.

author
Rustie0125 made it!(author)2014-08-17

Hey thank you for the comment, I toke my own photos but the lighting was not great so I though these would me easier to see then the dark owns I toke.

sorry about that

author
jcloud7 made it!(author)2014-08-15

Nice man. I plan on trying this soon

author
Rustie0125 made it!(author)2014-08-15

hey Thanx !