Doppler Radar motion sensor RCWL-0516 + Arduino
Hello, and welcome to SurtrTech with another Arduino tutorial, in this one we’re about motion detection using microwaves and doppler effect, and we’re using RCWL-0516 module.
Another popular motion sensor is the PIR HC-SR501, and as the name implies, it uses “Passive InfraRed” light waves to detect a motion, this PIR is emitted by humans or animals mostly, and anything that’s warm/hot.
Unlike the sensor above, the RCWL-0516 constantly sends microwaves around it, and they reflect back, if ANYTHING moves within the range will cause a change in the waves wavelength or the frequency “Known as Doppler effect“, and by anything I mean if it emits PIR/warm/hot or not, so it’s better at this point.

You can observe (hear) the Doppler effect while a police car is moving, you can hear a different siren sound when the car is near you and when it’s driving away…
RCWL-0516 Specifications
- Range: 5 – 9 m (16.4 – 29.5 ft)
- Detection Angle: 360° with no blind spot
- Voltage: 4-28 VDC
- Output: 3.4V for HIGH level and 0.7V for LOW level
- Output Time: 2s but can be modified
Parts
Actually the Arduino is not needed much, but I’m just doing it in case you want to add it to your project, and as you saw it’s better than the PIR sensor.
The LED is completly optional, it will just light up if there’s a trigger.
Wiring
In the Wiring you can either wire the Ouput with a digital I/O as I did or to an analog Input, just don’t forget to modify the code and know which values the module for both LOW and HIGH levels ( approx 10 and 700, analog ADC values)


Codes
The two codes are easy and simple
Code 1
The sensor output is on 2, there’s a message that constantly print on the serial monitor: clear and if there’s a motion it tells you Motion detected, if you don’t like this constant printing you can add the flag method, it will show the message only once
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
#define Sensor 2 void setup() { pinMode(Sensor,INPUT); Serial.begin(9600); } void loop() { bool Detection = digitalRead(Sensor); if(Detection == HIGH) Serial.println("Motion detected !!"); if(Detection == LOW) Serial.println("Clear"); } |
Code 2
We add the LED and as long as the Output is HIGH the LED will light up for 2s
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
#define Sensor 2 #define LED 3 void setup() { pinMode(Sensor,INPUT); pinMode(LED,OUTPUT); } void loop() { bool Detection = digitalRead(Sensor); if(Detection == HIGH) digitalWrite(LED,HIGH); if(Detection == LOW) digitalWrite(LED,LOW); } |
Test
The LED lights up if there’s a motion
Add-on
As you can see the module, is pretty much stand alone, so there are some modifications that you can apply directly on the circuit
- R-GN : here you can solder a 1 MOhm resistor to reduce the range from 9m to 5m only
- C-TM : here you can solder a capacitor to increase the output trigger time, 2s is the default
- CDS: here you can add a LDR (Light Dependent Resistor), and the module will be active only when there’s *no enough light* for example of outdoor lighting, you don’t want lighting in the morning or afternoon, but you want to wait until sunset or complete dark.
- R-CDS: here you can solder a resistor to control the *enough light, if you want to activate the module from the sunset or you want to wait until complete dark, the resistor value will define when it’s ok to start the automatic lighting for example, the smaller the resistor value, the brighter it has to be to deactivate the trigger
Categories
Yassine View All
Automation and Electrical Engineer, Electronics amateur trying to share my little projects.
slt je vien de voir ta video Arduino Doppler Radar Motion Sensor RCWL-0516 et je voulais savoir si il ya possibilite de rajouter un ecran led et un buzzer si oui pourrais tu me faire parvenir le code et le shema de montage.
bravo et merci pour tout bonne journee
This sensor could be connected to a solid state relay, to activate LED focus, without the need for Arduino, since in my country is not cheap the Arduino, thank you very much for your attention