Working with RF Module

Hi,
I am designing a radio controlled device with arduino UNOs on both the ends.
I ordered this module online.

http://www.ebay.in/itm/ASK-RF-Transmitter-and-Receiver-module-/221538214585?pt=LH_DefaultDomain_203&hash=item3394b4e2b9&_uhb=1

Now when i use it with the VirtualWire library, i cannot use the 4 different data lines for transmission. Any suggestions on how this could be accomplished?

Those don't use the virtual wire library, they are actually very straight forward. If you set D0 on the transmitter side to HIGH, then D0 on the receiver side will be HIGH.

What are you trying to do with them exactly, what is being controlled?

Those modules must be sending data in 4 bit chunks with buffering on the receive side and possibly on the transmit side as well, as well as having the feature to select the transmit and receiver address (which no doubt gets encoded into the actually transmission protocol )

You will need to get more information on these devices, and how you even send data to them.

I noticed there is an input called TE (Transmit Enable), however its unclear whether this is a data clock or something else
I suspect you can view it as a the data clock.

Actually, I just followed some of those links and yes, its basically a data clock (see HT12D Decoder IC for Remote Control Systems - Datasheet)

If you can read the part number on the IC's e.g. HT12D you'd have a better idea of how to use them, and possibly be able to find someone who had written a library to use them.

Ah

Just found this for you

http://garagelab.com/profiles/blogs/send-8bits-using-rf-434-mhz-module-with-ht12d-ht12e

But, to answer your original question

No. They wont work with Virtual Wire

Those modules are based on the SC2262 / SC2272 encoder decoder chips and are used for simply sending a 4 bit nibble
from transmitter to receiver.
They use the same protocol as the RC switch library, as they are often used for remote control power points.
You cant send hi speed data though, as the decoder chip takes about a second to decode a valid frame.

HazardsMind

I tried to do what you said and yes it does transmit the state of data lines and it worked for me. But what i am trying to do is design a Remote control for a RC plane and i need analog inputs from my remote for that. Any way to do that? Does Radiohead let you define pins from which data has to be transmitted?

i need analog inputs from my remote for that.

What do you mean by "analog inputs"? RC radios transmit digital signals.

These RF modules are "Simple" meaning they do their own decoding and what you send is what you get. If you want to send two analog signals, you would need to use bitRead() to read the bits in the integer from analogRead() value. Then just send those bits out to the transmitter.

I am using an analog stick to drive the throttle of my RC plane which will return analog output to my msp430 which will send the data to the transmitter. I cannot do that using the VirtualWire library, the msp430 using energia has some issues with it and won't compile that is why i need to send them over directly!

Well then, that is not the correct RF module to use. You should have gotten this.
433 Mhz RF pair

If you check the link i posted in my first post, the modules i have are exactly the same but paired with an encoder and a decoder to enable sending data through more than one data line.

The VirtualWire library does the encoding and decoding for the module I suggested, and Yes, yours already does the en/decoding.
So, now what you need to do is basically all the work of converting the values to bits and send them out, then regroup them on the other side.

Which is why I first suggested you use bitRead() of the values you want to send and then send the bits out. However, now you need to regroup those bits back together with bitWrite to be usable for your project.

I will try the same and get back on the forum in a few days! Thanks a lot! :slight_smile:

Hi, I tried transmitting analog data through the data lines and failed miserably!
I was searching the forums to if there was any way to transmit the values through bits using a byte variable as you mentioned earlier and the same happened. Could you @HazardsMind give a brief overview to what has to be done or a link for the same?

Thanks a lot!

Post the code you tried and I'll take a look.