MÓDULO SENSOR DE CHUVA: DETECTANDO LIQUIDO

Neste tutorial vamos ensinar a utilizar o sensor de chuva com arduino para projetos que precisam da detecção de água. Antes de mais nada utilizaremos um sensor de chuva para atuar na detecção de partículas liquidas.

kit robotica educacional com Arduino ESP ou Microbit

O  que é o módulo sensor de chuva?

Este sensor como todos os outros trabalha com os conceitos físicos.

— Funcionamento

Precipuamente, o sensor de chuva usa da reflexão e refração da luz infravermelha para seu funcionamento que como por exemplo em um para-brisa a propriedade de reflexão é aplicada a ele e o sensor de chuva inicia seu trabalho. Quando há a presença de partículas de chuva no para-brisa o recebimento da luz infravermelho diminui, ou seja, quando há presença de algum líquido, a quantidade de luz recebida pelo sensor diminui, alterando a leitura desse infravermelho do sensor. Então, o sensor de chuva consegue detectar essa diferença na reflexão.

 

– Os terminais deste sensor são:

  • VCC(+) – Tensão de entrada, entre 3,3 a 5 volts
  • GND(-) – O pino de O V do módulo, conectado ao GND do Arduino ou fonte
  • Saida Analogica(A0) – Pino de saída analogica (retorna o valor da intensidade do som captado)
  • Saída Digital(D0)– Pino de saída digital (retorna HIGH ou LOW)

Módulo do sensor de chuva

Mãos à obra — Configurando um sensor de chuva

Componentes Necessários

– Montando o projeto:

A princípio vamos utilizar os jumpers que vem com a placa sensora  para conectar ela ao módulo de leitura. Já os jumpers não possuem distinção, ou seja, podem ser conectados de ambos os lados. Ligue ao módulo de leitura.  Conectaremos o VCC do módulo no 5V do arduino, o GND do módulo no negativo(-) da protoboard e o pino D0 do módulo no pino digital 3 do arduino. Na protoboard vamos conectar o LED sendo que a perna menor do LED será conectada ao negativo(-) da protoboard e a perna maior no resistor de 150ohms.  Por outro lado, a outra extremidade do resistor este será conectada ao pino digital 12 do arduino. Enfim, o GND do arduino ao negativo(-) da protoboard para assim fechar o circuito. Veja o circuito abaixo:

Diagrama de montagem do sensor de chuva

– Programando o Arduino:

Agora vamos conectar o arduino no computador e abrir a IDE arduino.  Escreva o programa abaixo na IDE e compile o programa para o seu arduino.

Antes de carregar o programa, você precisa selecionar qual porta você deseja usar para fazer o carregamento do seu programa no Arduino (upload). Dentro do Arduino IDE, clique no menu Ferramentas (tools) e abra o submenu Porta(Port). Clique na porta que seu Arduino está conectado, tal como COM3 ou COM4. Geralmente aparece o nome da placa Arduino : “COM3 (Arduino/Genuino Uno)”.

#define pinoLed 12 //PINO DIGITAL UTILIZADO PELO LED
#define pinoSensor 3 //PINO DIGITAL UTILIZADO PELO SENSOR

int lersensor = 0;// DECLARA UMA VARIAVEL CHAMADA lersensor E ATRIBUA A ELA O VALOR 0

void setup(){
  pinMode(pinoSensor, INPUT); //DEFINE O PINO COMO ENTRADA
  pinMode(pinoLed, OUTPUT); //DEFINE O PINO COMO SAÍDA
}

void loop(){
 lersensor = digitalRead(pinoSensor);
  if(lersensor == LOW){ //SE A LEITURA DO PINO FOR IGUAL A LOW, FAZ
      digitalWrite(pinoLed, HIGH); //ACENDE O LED
  }else//SENÃO, FAZ
  {
    digitalWrite(pinoLed, LOW); //APAGA O LED
  }

Enfim, quando tudo estiver correto o sensor de chuva ficará constantemente em nível lógico alto (HIGH) enquanto a placa sensora estiver seca. Quando ela começa a receber pingos, o nível lógico vai para baixo (LOW). Caso queira ou aja necessidade também é possível realizar a leitura analógica dos valores lidos e assim poder agir gradativamente conforme a chuva.

ATENÇÃO: não esqueça de definir a placa e a porta que esta utilizando para carregar o programa.

 

Imagem do circuito do sensor de chuva funcionando

Como resultado temos que ao detectar uma quantidade de líquido pre-determinado, ajustando a sensibilidade no potenciômetro(trimpot), o LED acenderá.

Potenciômetro do sensor para a regulação de sensibilidade

 

Entendendo a fundo:

Software

— Definições e variáveis utilizadas no projeto do sensor de chuva com arduino

A instrução #define apenas associa as portas dos pinos do arduino a nomes referente aos componentes conectados nestes pinos. Logo depois as variáveis declaradas com o tipo int são atribuídas a elas valores escolhidos pelo programador.

#define pinoLed 12 //PINO DIGITAL UTILIZADO PELO LED
#define pinoSensor 3 //PINO DIGITAL UTILIZADO PELO SENSOR

int lersensor = 0;// DECLARA UMA VARIÁVEL CHAMADA "lersensor" E ATRIBUI-LHE O VALOR "0"

— Função Setup – Definindo pinos do sensor de chuva com arduino

A função setup é aquela que ira rodar apenas uma vez quando nosso programa for iniciado. Ela é do tipo void, ou seja, não tem retorno e também não tem parâmetros de entrada. A função pinMode define que o pino do sensor será uma entrada e o pino do led será uma saída.

void setup(){
  pinMode(pinoSensor, INPUT); //DEFINE O PINO COMO ENTRADA
  pinMode(pinoLed, OUTPUT); //DEFINE O PINO COMO SAÍDA
}

— Função Loop – Leitura do nosso sensor de chuva com arduino e Estruturas de decisão

Em analogia, a função loop ao contrário da setup roda tudo que estiver dentro dela varias vezes em um loop constante até que seja reiniciado ou parado o programa. Na variável lersensor será atribuído a leitura do pino digital 3 que está o sensor. Logo apos, temos a estrutura de decisão if. Primeiramente, caso a variável lersensor seja igual ao nível logico baixo, já que o sensor não está detectando a luz infravermelha, então será executado a função no if. Em contrapartida, se a variável lersensor for igual ao nível logico alto significa que o sensor está detectando a luz infravermelha e que a condição dentro do if é falsa, então não possui liquido sobre o sensor. Assim sendo, será executado o else.

A função digitalWrite irá escrever no pino digital 12 onde está o LED (declarado anteriormente como saída), nível logico alto ou nível logico baixo dependendo se a condição dentro dos parenteses da estrutura de decisão if for verdadeira ou falsa.

void loop(){
 lersensor = digitalRead(pinoSensor);
  if(lersensor == LOW){ //SE A LEITURA DO PINO FOR IGUAL A LOW, FAZ
      digitalWrite(pinoLed, HIGH); //ACENDE O LED
  }else//SENÃO, FAZ
  {
    digitalWrite(pinoLed, LOW); //APAGA O LED
  }

Hardware

Trimpot:

No módulo de leitura existe um potenciômetro(trimpot) para o ajustar de quando o sensor entenderá como chuva ou seco. Dependendo da intensidade da chuva que você pretende sentir.

 

Considerações finais:

Neste tutorial mostramos como funciona e como utilizar o sensor de chuva. Semelhantemente a ele tem o sensor de umidade, esperamos que você continue nos acompanhando e sinta-se à vontade para nos dar sugestões, críticas ou elogios. Lembre-se de deixar suas dúvidas nos comentários abaixo.