Sensor de Fluxo de Água: Medindo a vazão com Arduino
O Sensor de Fluxo de Água 1/2″ – YF-S201 é um dispositivo usado para medir o volume ou a massa em fluxo de um gás, ou líquido que passa por uma turbina. Neste tutorial aprenderemos como usá-lo e visualizaremos como este pequeno componente funciona.
O que é o Sensor de Fluxo de Água?
Este componente, como todos os outros sensores, trabalha com os conceitos físicos.
– Funcionamento
Portanto, o Sensor de Fluxo de Água possui como componentes o sensor hall, a vedação externa, a turbina, um imã e a carcaça para juntar todos esses componentes como na imagem abaixo:
Imagem interna do sensor de vazão de água
Como podemos observar quando a água flui através da entrada até a turbina, esta gira e a velocidade muda conforme o fluxo de água aumenta ou diminui e enquanto as turbinas estão exercendo seu trabalho, o imã e o sensor de efeito Hall realiza a leitura e emite um sinal de pulso, respectivamente. Mas como assim? Bom, a leitura da vazão funciona da seguinte forma. Quando a água passa pela turbina, ela gira e detecta a quantia de voltas dadas. A leitura desses dados se faz pelo ímã, o qual possui um polo norte e um polo sul, posicionado em uma das pás da turbina, e o sensor de efeito hall de forma paralela envia o sinal digital para o microcontrolador e por fim a água sai pelo outro lado.
Ps: Quanto maior a intensidade da água por minuto maior será a contagem de pulsos.
– Os terminais deste sensor de vazão são:
- VCC(vermelho) – Tensão de entrada, entre 3,3 a 5 volts
- GND(preto) – O pino de O V do módulo, conectado ao GND do Arduino ou fonte
- Saída Digital(amarelo) – Pino de saída digital de contagem de pulsos por minuto
Mãos à obra — Configurando um Sensor de Fluxo de Água
Componentes Necessários
– Montando o projeto com Sensor de vazão de água
Primeiramente, conecte o terminal preto do sensor de fluxo no GND do Arduino e o terminal vermelho no 5V do Arduino e conecte o terminal amarelo será conectado no pino digital D2, como mostra o diagrama abaixo:
– Programando o Arduino para usar o Sensor de fluxo de água
Agora, que já montamos nosso projeto, 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.
Para isso, 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). Em seguida, clique na porta que seu Arduino está conectado, tal como COM3 ou COM4. Geralmente aparece o nome da placa Arduino : “COM3 (Arduino/Genuino Uno)”.
int contaPulso; //Variável para a quantidade de pulsos void setup(){ Serial.begin(9600); pinMode(2,INPUT); attachInterrupt(0,incpulso,RISING); //Configura o pino 2(Interrupção 0)interrupção } void loop(){ sei(); //Habilita interrupção delay(1000); cli(); //Desablilita interrupção if(contaPulso>0){ Serial.print("Contagem de Pulsos"); Serial.println(contaPulso); } else{ Serial.println("Sem pulsos"); } contaPulso = 0; } void incpulso(){ contaPulso++; //Incrementa a variável de pulsos }
– Testando o funcionamento do Sensor de vazão de água
Enfim, caso tudo estiver correto o resultado será igual à imagem abaixo.
Dessa forma, visualizamos o sensor funcionando através do monitor serial já que nos inicializamos ele com a função Serial.begin(9600) basta clicar na lupa no canto direito superior da IDE Arduino como na imagem abaixo:
Entendendo a fundo
Software
– Definições e variáveis utilizadas no projeto
Primeiramente, nesta instrução declaramos uma variável para podermos usá-la em nosso programa. Neste caso, a variável que declaramos é do tipo int, ou seja, possui dois bytes de memória disponível para ela.
int contaPulso; //Variável para a quantidade de pulsos
– Função Setup – Definindo pinos
Em seguida. a função setup é aquela que roda apenas uma vez no início do programa. Está função é do tipo void, ou seja, não tem retorno e também não tem parâmetros de entrada.
Nesta função, Serial.begin inicializa a comunicação serial da placa arduino com o computador. Em seguida, o comando pinMode define o que será entrada e o que será saída na nossa programação. E por fim o comando attachInterrupt define o pino de leitura como interrupção do Arduino no programa.
Serial.begin(9600); pinMode(2,INPUT); attachInterrupt(0,incpulso,RISING); //Configura o pino 2(Interrupção 0)interrupção
– Função Loop – Leitura do nosso Sensor de Fluxo de Água e Estruturas de decisão
Enfim, 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. A função if define uma condição para que o Arduino execute as funções dentro dele, caso a condição for verdadeira, ou seja, a variável declarada anteriormente tiver o valor maior que 0, o Arduino executa tudo o que esta nos colchetes do if. Senso assim, irá imprimir no serial monitor o texto “Contagem de Pulsos” e depois o valor que está atribuído a variável contaPulso. Entretanto, caso a condição do if seja falsa o que esta nos colchetes do else que será executado, o seja, irá imprimir no serial monitor o texto “Sem pulsos”. Logo depois, a variável contaPulso recebe o valor 0. Toda vez que houver interrupção, ou seja, houver a mudança de estado de 0V (0) para 5V(1) a função void incpulso será executada, já que na função attachInterrupt(0,incpulso,RISING) nos definimos isso. Assim será adicionado +1 a variável contaPulso.
sei(); //Habilita interrupção delay(1000); cli(); //Desablilita interrupção if(contaPulso>0){ Serial.print("Contagem de Pulsos"); Serial.println(contaPulso); } else{ Serial.println("Sem pulsos"); } contaPulso = 0; } void incpulso(){ contaPulso++; //Incrementa a variável de pulsos
Considerações finais:
Por fim, neste tutorial mostramos como funciona e como utilizar o sensor de fluxo de água. 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.
Estudante de Engenharia Elétrica – IFES, Técnico em Eletrotécnica. Interesse por IoT, Robótica e Sistemas embarcados. Aprecia e deseja desenvolver-se nas tecnologias e suas composições.
2 Comments
Deixe uma pergunta, sugestão ou elogio! Estamos ansiosos para ter ouvir!Cancelar resposta
Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.
qual a biblioteca do programa
Olá, como faço para a vazão aparecer no LCD Nokia Azul 5110?