Go Down

Topic: 433 MHz receiver blinking quickly, while transmitter blinks slowly (Read 136 times) previous topic - next topic


Currently, I'm trying to test a pair of 433 MHz transmitter and receiver. I follow the code and schematics based on this link: https://arduinobasics.blogspot.co.id/2014/06/433-mhz-rf-module-with-arduino-tutorial.html

Based on the video on, the LED from the transmitter and receiver will blink at the similar rate. But when I give it a try, my receiver LED is blinking rapidly, while the transmitter LED is blinking slowly. I've tested to change the cable data as there is 2 data points on the receiver and same results. Is there something wrong with my receiver? Is there a test for receiver?

I've tested the output of the transmitter through serial print and since it is connected to digital pin 4, the output when read is = 4. And tested that the frequency is around 433 MHz through a USB dongle RTL SDR.


You can forget about that tutorial.

You have a RTL SDR running ? Awesome 8)
Those modules use on/off modulation. That is called 'ASK'. The receiver has an auto-gain. Only pulses can be received, the receiver can not detect when the transmitter is on.

Which Arduino board are you using ? A Arduino Uno ?
Not all the 433 MHz modules are the same. Did you check the wiring ?

They need to have a piece of wire 16 cm long as antenna. Any piece of wire is better than no antenna at all.

Most remote controls for 433 MHz use the 2272/2262 protocol. The rc-switch and fuzzillogic libraries use that protocol. The rc-switch library is in the Library Manager in the Arduino IDE. You can use that to receive data from a remote control or to control a device. Don't use it to transmit data between Arduino boards, because the 2272/2262 protocol is really bad.

The VirtualWire library is the best library to transmit data. It uses a very good protocol and has also a checksum. It can receive the data from a lot of noise. Use a bitrate of 2000, that is the sweet spot for most 433 MHz modules. Lowering that value will not increase the range.
The VirtualWire is no longer maintained and is now included in the RadioHead library. Also a few bugs have been fixed. For the RadioHead library, you better use an Arduino Zero or Due or Arduino M0 because it requires more memory. Therefor, the VirtualWire is still used with the Arduino Uno and Nano.


Hi, Koepel thanks for the reply. I'm starting to learn about Arduino and radio frequency.

I'm using an Arduino Uno. I've checked the wiring and is the same as in the link I have above. For the output of the transmitter it seems fine. When I did serial print, the output is 4, then wait a moment, then 4 again, etc. It is doing what the coding says. As for the receiver, when I used serial print, whether the transmitter is powered on or off, some portion of the output is 770, 0, 0, 1, 0, 0, 0, 0, 0, 0, 769, 770, etc. And the time between each number is very short, hence the LED blinked very fast. It doesn't follow the output of the transmitter where there is a delay of 2 secs high output, then a moment low output. Shouldn't the receiver follow the output of the transmitter, though might be delay a bit?

If you have a good 433 MHz receiver, what will the output be if it is connected to the Arduino, but there is no transmitter. And if there is a transmitter, will the output of the receiver mimic the transmitter?

(Receiver is connected to A0 pin)


If you have a good 433 MHz receiver, what will the output be if it is connected to the Arduino, but there is no transmitter.
The receiver output will be random noise, rapidly switching between HIGH and LOW at various intervals.

And if there is a transmitter, will the output of the receiver mimic the transmitter?
Only after a delay, which is the time required for the receiver AGC (automatic gain control) to detect the average signal level. The receiver output may be inverted from the transmitter output.

I suggest to download the VirtualWire library and carefully follow the wiring and installation instructions to get the simplest example working. Although VirtualWire is no longer supported, it works very well.


Tested again using the VirtualWire library and it worked fine. Thanks.


Well done 8)
That tutorial was not okay. Since the receiver has auto-gain, the output is a lot of noise when no one is transmitting. That means the Arduino has about 2000 interrupts per seconds which is all noise. If the transmitter transmits something, the VirtualWire library is very good to get that data, even if there is still noise in the signal.

Go Up