Arduino – Utilizando o Sensor Microondas RCWL-0516

Arduino – Utilizando o Sensor Microondas RCWL-0516

O Sensor Microondas RCWL-0516 é uma boa alternativa ao uso do sensor PIR, porém, este modelo possui uma documentação escassa e isso pode dificultar o seu uso por parte de uma pessoa que não tenha conhecimento básico sobre o seu funcionamento. Neste tutorial vou passar as informações que consegui sobre este sensor durante uma série de testes que fiz e mostrar como utilizá-lo junto ao Arduino, NodeMCU ESP8266 e Wemos D1 R2.

img00_arduino_utilizando_o_sensor_microondas_rcwl-0516_nodemcu_esp8266_wemos_d1_r2_pir_movimento 

Da mesma forma que o Sensor de Presença PIR, o Sensor Microondas detecta apenas movimento dentro do seu raio de detecção. Este tipo de sensor, geralmente é utilizado em áreas industriais, residências e estabelecimentos para que algum dispositivo seja acionado sempre que houver detecção de movimento.

O Sensor Microondas é capaz de detectar automaticamente o movimento de objetos dentro do seu raio de ação a partir do uso da tecnologia de radar Doppler e enviar um sinal a uma plataforma microcontrolada para que uma ação seja executada. O sensor transmite um sinal eletromagnético de micro-ondas de alta frequência e aguarda este mesmo sinal ser refletido por algum objeto em movimento. Ao ser refletido, o sinal sofre uma alteração que é perceptível pelo receptor.

De modo geral, o efeito Doppler é uma alteração na frequência captada por um receptor a partir de um sinal refletido por um objeto em movimento. O comprimento do sinal refletido é maior ou menor proporcionalmente ao afastamento ou aproximação do receptor que capta o sinal eletromagnético. Em caso de aproximação do receptor, a frequência da onda recebida pelo mesmo tende a ser maior e no caso de afastamento a frequência tende a diminuir.

Apesar de sabermos que o Sensor Microondas RCWL-0516 é baseado em efeito Doppler, é necessário obtermos mais informações sobre ele para que possamos usar de forma correta.

Conforme mencionei anteriormente, este é um sensor que possui documentação escassa e isso pode dificultar seu uso. No GitHub há um repositório mantido por um cara chamado Joe Desbonnet e este repositório tem como finalidade reunir informações sobre o RCWL-0516. Você pode acessar o repositório através do link abaixo:

https://github.com/jdesbonnet/RCWL-0516/

Além de ler o material reunido pelo Joe, também fiz outras pesquisas e alguns testes com a placa para agregar o máximo de informações.

Abaixo está a lista das características do RCWL-0516:

– O circuito integrado controlador é o RCWL-9196 (NÃO ENCONTREI O DATASHEET).
– Suporta alimentação na faixa de 4 a 28VDC.
– A corrente de operação típica é de 2,8mA e a máxima pode chegar a 3mA.
– A potência dissipada típica é de 20mW e a máxima pode chegar a 30mW.
– A saída de sinal (nível TTL) para o microcontrolador é de 3.3V (HIGH) e 0V (LOW).
– A distância de detecção varia de 5 a 7 metros.
– O alcance do sensor é de 360º (omnidirecional).
– O tempo de ativação da saída padrão é de 2 segundos.
– A temperatura de operação vai de -20º C a 80º C.
– Permite que um LDR seja instalado junto a placa.
– Possui marcações para soldagem de capacitor e resistores com a finalidade de alterar alguns de seus parâmetros (tempo de ativação da saída / distância de detecção / tensão no LDR).

Das várias aplicações para o Sensor Microondas RCWL-0516, podemos citar:

– Pode ser aplicado em sistemas de segurança (alarmes).
– Pode ser aplicado em sistemas de iluminação inteligente.
– Pode ser aplicado na automatização de portas e janelas.
– Pode ser aplicado na automação residencial e industrial em geral.
– Pode ser utilizado junto de plataformas embarcadas para que determinadas ações sejam executadas sempre que o sensor for ativado.

Na imagem abaixo temos a parte da frente do sensor:

img01_arduino_utilizando_o_sensor_microondas_rcwl-0516_nodemcu_esp8266_wemos_d1_r2_pir_movimento

A (CI CONTROLADOR): circuito integrado que faz o controle da placa. Pesquisei pelo datasheet, mas sem sucesso.

B (PINOS PARA O LDR): Esta sigla CDS (cadmium sulfide) significa em português sulfeto de cádmio. O sulfeto de cádmio é uma substância sólida e semicondutora que quando sofre incidência de luz, tem sua condutividade aumentada. Esta substância é comumente utilizada na construção de LDR (Fotorresistor). Portanto, na marcação CDS há um par de pinos para soldar um LDR:

É comum, principalmente em corredores de prédios ter um LDR instalado junto a sensores detectores de movimento, pois ele garante que mesmo que seja detectado algum movimento, a saída só será ativada quando houver pouca luz ou ausência de luz e a lâmpada só será acesa mediante esta condição. O uso do LDR é opcional.

Na imagem a seguir temos a parte de trás do sensor:

img02_arduino_utilizando_o_sensor_microondas_rcwl-0516_nodemcu_esp8266_wemos_d1_r2_pir_movimento

A (TERMINAIS): terminais de alimentação, comunicação e controle (3V3 / GND / OUT / VIN / CDS).

3V3 (ALIMENTAÇÃO): este pino fornece uma tensão na faixa de 3.2V a 3.4V para alimentação de algum outro dispositivo que opere dentro desta faixa. A corrente típica fornecida por este pino é de 100mA.

GND (TERRA): pino terra para alimentação do sensor.

OUT (SAÍDA DE SINAL): pino de saída utilizado para verificação de ativação do sensor. Este pino deve ser conectado a uma porta digital do microcontrolador para que seja possível verificar o estado atual da saída. Quando houver detecção de movimento a saída assumirá nível alto (HIGH ou 1) e quando não houver detecção a saída vai se manter em nível lógico baixo (LOW ou 0). Lembrando que se houver algum LDR inserido no sensor, mesmo que haja movimento no ambiente, OUT só irá assumir nível alto quando estiver com pouca luz sobre o LDR ou com ausência de luz. Além disso, se a saída já estiver ativada e houver um novo movimento neste intervalo, ela vai permanecer ativada até que não seja mais detectado movimento. Ou seja, a contagem de 2 segundos reinicia sempre que houver um novo movimento no campo de detecção do sensor.

VIN (ALIMENTAÇÃO DO SENSOR): pino para conexão da tensão de alimentação que deve ser na faixa de 4 a 28VDC.

CDS (CONEXÃO PARA LDR EXTERNO): fiquei um bom tempo tentando entender o motivo do fabricante ter adicionado um pino chamado CDS, sendo que na placa já existe a marcação CDS que tem como finalidade inserção de um LDR. Conversando com um amigo a respeito de algumas dúvidas que eu vinha tendo sobre este sensor, ele me disse:

E se a pessoa que for utilizar o sensor, desejar utilizar um LDR externo ao invés de soldar um LDR na placa?

Logo, eu pensei: faz total sentido! Depois disso fiz alguns testes com um LDR externo conectado ao pino CDS e o resultado foi normal, ou seja, o sensor estava funcionando como se tivesse um LDR soldado a marcação CDS da placa. Lembrando que o GND da fonte de alimentação do RCWL-0516 deve ser comutado com o GND do LDR externo.

B (C-TM): conforme mencionei anteriormente, o tempo padrão de ativação da saída (OUT) é de 2 segundos. A marcação C-TM é utilizada para soldagem de um capacitor com o intuito de alterar o tempo de ativação da saída. Ainda estou estudando sobre a marcação C-TM, pois a única informação que encontrei a respeito dela, é que o tempo de acionamento da saída será dado pela equação T = (1 / f) * 32768. Assim que eu obtiver mais detalhes vou atualizar esta postagem.

C (R-GN): na marcação R-GN pode ser soldado um resistor SMD para alterar a distância de detecção. Segundo o fabricante, se adicionar um resistor de 1MΩ a R-GN, a distância de detecção passa de 7 metros para 5 metros (distância mínima de detecção do sensor, conforme especificação).

D (R-CDS): quando existir um LDR conectado ao RCWL-0516, para que OUT passe a ter nível alto após detectar o movimento, será necessário que a tensão em cima do LDR seja maior que 0.7V, logo, quanto maior a luminosidade na superfície do LDR, menor será a tensão em cima dele. Soldei um LDR na marcação CDS da placa para fazer alguns testes e utilizei o pino CDS para conectar ao multímetro e verificar a tensão em cima do LDR:

img03_arduino_utilizando_o_sensor_microondas_rcwl-0516_nodemcu_esp8266_wemos_d1_r2_pir_movimento

Em um ambiente com bastante claridade, quando medi a tensão no LDR estava em 0,03V. Ou seja, a intensidade da luz sobre o LDR estava bem alta. Na imagem abaixo você pode ver o teste que fiz na placa com o multímetro:

img04_arduino_utilizando_o_sensor_microondas_rcwl-0516_nodemcu_esp8266_wemos_d1_r2_pir_movimento

Em seguida, tampei o LDR por completo e a leitura no multímetro marcou 1.36V. Ou seja, total ausência de luz na superfície do LDR e a tensão aumentou e ultrapassou os 0.7V exigidos para que OUT seja ativado quando detectar movimento:

img04_arduino_utilizando_o_sensor_microondas_rcwl-0516_nodemcu_esp8266_wemos_d1_r2_pir_movimento

Mas vejamos a seguinte situação:

Com bastante claridade sobre a superfície do LDR o multímetro marcou 0,03V, logo, para que a saída do sensor assuma nível alto, é necessário que esteja bem escuro. Mas será que é possível alterar a tensão em cima do LDR, de forma que possamos “adiantar” o acionamento da saída mesmo que ainda não esteja escuro?

A resposta para a pergunta acima é SIM, e para isso, basta usarmos a marcação R-CDS do sensor.

A marcação R-CDS é utilizada para que possamos ajustar a tensão em cima do LDR (CDS). Nesta marcação, deve ser soldado um resistor SMD para alterar a tensão no LDR. Dependendo do valor de resistor que soldarmos nesta marcação, a tensão no LDR poderá ser aumentada e com isso, mesmo que ainda não esteja escuro, o valor mínimo de 0.7V para ativação da saída poderá ser alcançado.

Sem tampar ou fazer sombra no LDR e com a mesma intensidade de claridade, consegui aumentar a tensão nele, apenas inserindo uma resistência de 400KΩ (2 X 200KΩ) na marcação R-CDS:

img04_arduino_utilizando_o_sensor_microondas_rcwl-0516_nodemcu_esp8266_wemos_d1_r2_pir_movimento

Como eu não tinha resistor SMD, apenas soldei dois fios nos contatos do R-CDS e fiz a ligação do resistor usando a protoboard. Note que a resistência de 400KΩ fez a tensão no LDR aumentar para 0.05V. Logo, o que fiz, foi “adiantar” em pouquíssimos 0,02V o acionamento do OUT em função do LDR. Portanto, sem um resistor em R-CDS a tensão no LDR (mediante as condições em que eu estava testando) seria de 0,03V. Com a resistência de 400KΩ em R-CDS a tensão no LDR foi aumentada de 0,03V para 0,05V.

Com o LDR totalmente no escuro e utilizando os 400KΩ de resistência, a leitura no multímetro foi de 2.66V:

img07_arduino_utilizando_o_sensor_microondas_rcwl-0516_nodemcu_esp8266_wemos_d1_r2_pir_movimento

Em seguida, coloquei apenas um resistor de 200KΩ e o resultado foi:

img08_arduino_utilizando_o_sensor_microondas_rcwl-0516_nodemcu_esp8266_wemos_d1_r2_pir_movimento

Veja que a tensão subiu para 0,10V e adiantou um pouco mais para que o LDR alcance 0.7V de tensão e coloque OUT em nível alto.

Com o LDR totalmente no escuro e utilizando os 200KΩ de resistência, a leitura no multímetro foi de 2.87V:

img09_arduino_utilizando_o_sensor_microondas_rcwl-0516_nodemcu_esp8266_wemos_d1_r2_pir_movimento

Veja que a leitura também aumenta com o LDR no escuro. Antes, com o LDR tampado e sem nenhum resistor soldado ao R-CDS, a leitura era de 1,36V e agora com estas resistências que usei, a leitura aumentou consideravelmente quando o LDR está no escuro.

Para finalizar os testes no R-CDS, adicionei um resistor de 10KΩ e fiz a medição:

img10_arduino_utilizando_o_sensor_microondas_rcwl-0516_nodemcu_esp8266_wemos_d1_r2_pir_movimento

Veja que o aumento da tensão no LDR foi bem alto e ficou a poucos volts do valor mínimo (0.7V) para mudar o estado de OUT quando houver detecção de movimento.

Com o LDR totalmente no escuro e utilizando os 10KΩ de resistência, a leitura no multímetro foi de 3.42V:

img11_arduino_utilizando_o_sensor_microondas_rcwl-0516_nodemcu_esp8266_wemos_d1_r2_pir_movimento

Logo, é correto afirmar:

Se tratando do Sensor RCWL-0516, quanto menor a resistência aplicada a marcação R-CDS, maior será a tensão no LDR.

O R-CDS é um ótimo recurso para situações onde seja necessário usar o LDR e atingir os 0.7V mesmo que haja claridade em sua superfície.

E: conforme dito antes, esta marcação (CDS / cadmium sulfide) é utilizada para soldar um LDR no sensor.

De posse das informações a respeito do Sensor RCWL-0516, já podemos partir para os testes dele junto a plataformas embarcadas. O teste constitui em acionar um buzzer sempre que o sensor detectar movimento. Lembrando que você pode utilizá-lo para acionar vários tipos de saídas como, por exemplo, um módulo relé para acionamento de uma lâmpada.

Para demonstrar o funcionamento do RCWL-0516 utilizei o Arduino Mega 2560 R3, contudo, vou deixar disponível mais abaixo o esquema de ligação e código para o NodeMCU e Wemos D1 R2.

Abaixo está a lista dos itens necessários para esta prática:

Arduino MEGA 2560 R3 com Cabo USB A/B
Sensor Microondas RCWL-0516 (Detector) de Movimento
Buzzer 5V
Cabo Jumper Macho-Macho
Cabo Jumper Macho-Fêmea
Protoboard

Caso queira utilizar o NodeMCU ou Wemos D1 R2:

NodeMCU ESP8266
Wemos D1 R2

Abaixo está o esquema de ligação para esta prática:

img12_arduino_utilizando_o_sensor_microondas_rcwl-0516_nodemcu_esp8266_wemos_d1_r2_pir_movimento

Download do esquema de ligação para NodeMCU / Wemos D1 R2

Feito o esquema de ligação, basta implementar as instruções para o funcionamento.

O código para testes está abaixo, basta copiar o mesmo, colar na IDE, salvar e carregar:

Download do Código para NodeMCU / Wemos D1 R2

Após o carregamento do código abra o monitor serial na IDE do Arduino e veja que a informação de “NENHUM MOVIMENTO DETECTADO” ou “MOVIMENTO DETECTADO” está sendo mostrada. Lembre-se de mudar o baud do monitor serial de 9600 para 115200 caso esteja utilizando o NodeMCU ou Wemos D1 R2 e as informações não estejam sendo mostradas no monitor.

Caso esteja sendo mostrada a informação de “NENHUM MOVIMENTO DETECTADO”, faça algum movimento com os braços ou caminhe pelo cômodo e veja que a saída do sensor será ativada e consequentemente o buzzer será acionado e emitirá um sinal sonoro. Se nenhum novo movimento for detectador pelo sensor no espaço de 2 segundos, após este tempo o buzzer será desligado. Após um novo movimento o buzzer será acionado.

Dependendo da distância que estiver do sensor, apenas um movimento de braço não será o suficiente para ativá-lo.

O fabricante informa que não dever ser colocado nenhum metal na frente do sensor e na parte de trás é necessário dar o espaçamento de pelo menos 1 centímetro da superfície metálica. Além disso, ele orienta que ao utilizar vários sensores microondas em um mesmo ambiente, é necessário dar o espaçamento de pelo menos 1 metro entre eles.

Este é um sensor bem interessante e de baixo custo que poder ser bastante explorado em projetos com plataformas embarcadas.

A medida que eu for obtendo mais informações sobre ele, vou atualizando esta postagem.

Gostou desta prática? Então deixa seu comentário, dúvida ou sugestão aí embaixo!

Loja online: https://www.masterwalkershop.com.br
Fan page no Facebook: https://www.facebook.com/masterwalkershop

Nos ajude a espalhar conhecimento clicando no botão de compartilhar (f Like) que está mais abaixo.

Obrigado e até a próxima!

Seu feedback é muito importante! Que tal dar uma nota para esta postagem?! Faça sua avaliação aqui embaixo.



Postagem anterior:
Próxima postagem:
Postagem feita por

Formado em Engenharia da Computação, Técnico em Eletroeletrônica, Fundador e Diretor da MasterWalker Electronic Shop. Se preocupa com o aprendizado dos seus clientes e daqueles interessados em aprender sobre Arduino e plataformas embarcadas em geral.

Existem 19 comentários para esta postagem
  1. Rui às 13:49

    Como posso montar um Arduino para controlar a máquina de eletrólise que produz o cloro para uma piscina. Pelo sensor de condutividade pois tem uma relação direta com o cloro livre? Tem alguma proposta? Obrigado cumprimentos

  2. Ali Khan às 15:58

    I want to decrease the range to 30cm. Is it possible? if yes then how. I follow Russian video available at youtube but radar sensor stopped sensing if you change antenna resistor.

    • Euler Oliveira Autor às 19:55

      Hello Ali Khan.

      Thanks for the comment!

      The minimum detection distance is 5 meters.

  3. Yvonne de Vries às 05:54

    Dear sir,

    Thank you for your instruction.
    I have placed the sensor on a wooden surface, but I noticed that it doesn’t work properly when one of the sides (front or back) is covered by the underground. When I place the sensor in a breadboard and the front and back are not covered, but in the open air, the sensor works great. I want to build the sensor in a case, but then I have this problem. Do you know if this is through what I suggest?
    Thank you.

  4. Gerson às 19:11

    Euler, muito obrigado. Seu texto é bastante esclarecedor. Sabe me dizer se tem uma maneira de limitar o raio de detecção. Vi na documentação que é omnidirecional e gostaria de saber se é possível alterar isso, por exemplo reduzindo para um angulo de 180 graus.

    • Euler Oliveira Autor às 20:01

      Olá Gerson.

      Agradeço pelo comentário!

      Tem um cliente da nossa loja que adquiriu este sensor e para tornar o a detecção direcional, ele envolveu o sensor em uma caixa de matal (ele não mencionou qual metal) e deixou somente um furo apontado para a direção em que ele queria que houvesse detecção.

  5. Rodrigo Moraes às 01:54

    Bom dia Euler,

    Gostaria de saber se esse sensor tem a capacidade de detectar a posição de onde o ser humano foi detectado. Existe alguma forma de saber por exemplo se a detecção ocorreu da esquerda, direita ou centro e a distância a partir do sensor?

    Obrigado pelo artigo!

    • Euler Oliveira Autor às 08:55

      Olá Rodrigo.

      Agradeço pelo comentário!

      O sensor não tem esta capacidade, pois o mesmo detecta o movimento e não a posição / sentido em que ocorreu o movimento.

  6. Manolo às 08:04

    Muy bien. Efectivamente el mejor y mas completo análisis sobre este sensor de la Red. Gracias por compartirlo.
    Tan solo una duda, el condensador en TM-C debe ser ( cerámico o electrolítico )

    Muy agradecido por todo.

    • Euler Oliveira Autor às 08:30

      Hola Manolo.

      Agradezco el reconocimiento.

      El condensador a ser utilizado es cerámico.

  7. Alexandre Augusto da Silveira Leone às 03:47

    Muito bom mesmo. Melhor do que todos os outros que vi em toda a internet do universo conhecido. Sensacional mesmo.

  8. Julio Gouy às 16:17

    Olá Euler, muito bom o seu trabalho. Gostaria de compartilhar um comportamento que descobri neste sensor, ele detecta movimento caso um controle remoto seja acionado nas proximidades. Como estes controles trabalham em uma faixa de 38KHz não me parece lógico porque isso acontece, mas pude verificar este comportamento em meu lab.

    • Euler Oliveira Autor às 07:38

      Olá Julio Gouy.

      Agradeço pelo comentário!

      Assim que sobrar um tempo aqui eu vou testar este cenário e ver se realmente há esta interferência e como pode ser solucionada.

    • Euler Oliveira Autor às 13:42

      Hello ankit.

      This sensor works only in digital mode.

      To change the detection distance you must weld an SMD resistor in the R-GN marking. See in the text the part where I talk about R-GN.

    • Tiago às 17:29

      Tudo bem Euler? Qual sensor você me indicaria para utilizar no início de uma escada para acionar a iluminação dos degraus? Estou testando o pir mas está ocorrendo falsos acionamentos, estou pensando no Rcwl-0516, porém com a abrangência de 5 metros está me preocupando, pois não quero detecção longe.

  9. Ian Paterson às 17:15

    The rcwl-0516 module I find very interesting, I have one under Arduino control for test purposes. I am particularly interested in making the detection directional. ( for remote photographic control) I wonder how the sensitivity will change if placed in a dish style antenna. Will have to experiment and see what the results I find.
    I see various estimations on the frequency of operation, ~ 3 Ghz seems to be most accurate, though 5Ghz has also been mentioned. Anyone looked at the output on a Spectrum Analyzer?
    That would establish it accurately and possibly make directional sensitivity easier to comprehend.
    Thank you for the excellent work on the module, I found it very informative. (using Bing to translate 🙂 )