Go Down

Topic: RF Transmitter and Receiver WRL-10535 and WRL-10533 (Read 21964 times) previous topic - next topic


Oh yeah, there's all kinds of C stuff out there.

There's an enlarged Reference page

Try some of the links at the lower right of the page too:

"Looking for something else? See the libraries page for interfacing with
particular types of hardware. Try the list of community-contributed code.
The Arduino language is based on C/C++. It links against AVR Libc and allows
the use of any of its functions; see its user manual for details. "
Designing & building electrical circuits for over 25 years.  Screw Shield for Mega/Due/Uno,  Bobuino with ATMega1284P, & other '328P & '1284P creations & offerings at  my website.



I want to sent data through RF transmitters using simple UART in arduino instead of using virtualWire library. I tried with virtualWire library its working fine. But when i used UART its not working. My data packet format is like this... "$$(DATA)(INVERTEDDATA)Z ". I tried connecting with baud rates 2400,1200,300 but none of this works.

Anyway serial communication is working fine when i connect two controllers with a wire(i.e Connecting TX of one with RX of the other). But when i introduce RF transmitter in the middle its not working. I think RF transmitter is transmitting data and RF receiver is receiving it but since iam connecting DATAOUT of reciever directly to RX pin(0th pin in arduino) serial port is not considering the data packets as valid bits.

Can anyone tell me what is the problem?



I'm not sure what Rx hardware you're using, but a lot of them have a PLL that requires a nearly even distribution of  ones and zeros to work properly. By default, the hardware UARTs send a constant HIGH that will confuse the Rx hardware (and it's not so good for battery life either). So, you want to turn the transmitter's serial port or RF unit OFF until you want to send a packet. Then you send a "preamble" of one or two bytes consisting of either 01010101 or 10101010 to allow the Rx unit's PLL to lock in. Then try sending your data. If your data contains long strings of 1s and 0s, you may need to use Manchester encoding on your data to keep the Rx PLL locked -- hence the popularity of the VirtualWire library (which does the preamble and Manchester [and some error checking too] for you).


As above, and the other problem with trying to use a hardware usart with simple radio modules
is that in the absence of any transmission , the receiver outputs continuous random data transitions
which are not at any constant baud rate , and this will cause the usart at the receiving end to continuously
generate overrun and framing errors, which must be cleared before it will work properly.
To do what you want using radio needs intelligent Transmitters / receivers which will simulate correctly a hard wired
Look at using Xbee modules, some of which can do this.


Thanks for the replies.

Iam using rf reciver which i bought from rhydolabz. 


I tried turning off RF transmitter and switching it on when i want to transmit.It doesnt worked.
I checked whether any errors occuring in receiving side(Framing error, Overrun...) .  No error is there. It seems nothing is coming out from the reciever DATAOUT pin.

Iam not at all receiving any data(no garbage data). Is there any way to figure it out


hooked up and walla

Peeve:  It's "voila!" - a French word which needs an exclamation mark after it.

(unless you speak Arabic, in which case carry on...)
Advanced Arduino

Go Up