Sensor de Fluxo de Água para Arduino 1-30 l/min

Aplicação e funcionamento: O sensor de fluxo de água é um dispositivo indicado para realizar a verificação do consumo de água de uma residência e, por meio dessa informação,...

Aplicação e funcionamento:

O sensor de fluxo de água é um dispositivo indicado para realizar a verificação do consumo de água de uma residência e, por meio dessa informação, é possível aplicar para os mais diversos fins.

O sensor de fluxo de água trabalha com uma turbina, no seu interior existe um tipo de hélice que ao receber o atrito da água gira, junto a esta hélice temos fixado um íman, e paralelamente ao íman temos um sensor de efeito Hall, esse sensor detecta cada volta dada pelo íman.

Para aplicação prática é necessário a utilização do sensor de fluxo de água em conjunto com uma plataforma de prototipagem, o Arduino, por exemplo, utilizando as portas digitais.
No teste prático abaixo, será realizada a contagem do volume e da velocidade do fluxo da água que estarão passando pelo sensor.

 

Teste prático:

 

Produtos utilizados no teste:

arduino-mega-2560sensor-de-fluxo-de-agua-para-arduino

Sensor de Fluxo de Água

Display LCD 16×2

Arduino Mega

Jumpers

– Resistores

Protoboard

 

Montagem Física (Hardware):

A montagem é simples, basta seguir as orientações da imagem abaixo:

esquema-sensor-de-fluxo-de-agua-para-arduino

 

Funcionamento do Programa (Software):

Nosso software tem a função de realizar a leitura da quantidade de pulsos recebidos pelo sensor de fluxo de água, bem como o intervalo de tempo entre eles, e deste modo calcular através da frequência, a quantidade em litros por minuto, bem como a quantidade total. Além disso, ele tem a função de apresentar as informações no display.                     

Código para teste: Download AQUI

 /*********************************
 ***Autor: Leonardo Dalla Porta****
 ***********02/08/2014*************
 *************Atenção**************
 ***O Codigo esta livre para uso,**
 *desde que seja mantida sua fonte*
 ********e seu autor.**************
 ********Faça um bom uso***********
 ******Att. Equipe UsinaInfo*******
 *********************************/
 
#include <LiquidCrystal.h>
 
float vazao; //Variável para armazenar o valor em L/min
float media = 0; //Variável para fazer a média
int contaPulso; //Variável para a quantidade de pulsos
int i = 0; //Variável para segundos
int Min = 00; //Variável para minutos
float Litros = 0; //Variável para Quantidade de agua
float MiliLitros = 0; //Variavel para Conversão
 
 
LiquidCrystal lcd(8, 7, 6, 5, 4, 3);
 
 
void setup()
{
 Serial.begin(9600);
 
 lcd.begin(16, 2);
 lcd.setCursor( 0, 0);
 lcd.print("Sensoriamento de");
 lcd.setCursor( 0, 1);
 lcd.print(" fluxo de Agua ");
 delay(3000);
 lcd.clear();
 
 pinMode(2, INPUT);
 attachInterrupt(0, incpulso, RISING); //Configura o pino 2(Interrupção 0) interrupção
}
 
 
void loop ()
{
 contaPulso = 0;//Zera a variável
 sei(); //Habilita interrupção
 delay (1000); //Aguarda 1 segundo
 cli(); //Desabilita interrupção
 
 vazao = contaPulso / 5.5; //Converte para L/min
 media = media + vazao; //Soma a vazão para o calculo da media
 i++;
 lcd.setCursor(0, 0);
 lcd.print(vazao); //Escreve no display o valor da vazão
 lcd.print(" L/min "); //Escreve L/min
 lcd.setCursor(0, 1);
 lcd.print(Min);
 lcd.print(":"); //Escreve :
 lcd.print(i); //Escreve a contagem i (segundos)
 lcd.print("Min "); //Escreve :
 MiliLitros = vazao / 60;
 Litros = Litros + MiliLitros;
 lcd.print(Litros);
 lcd.print("L ");
 
 // Neste conjunto de linhas fizemos a média das leituras obtidas a cada 1 minuto
 if (i == 60)
 {
 Min++;
 lcd.print(Min);
 
 if (Min >= 60)
 {
 Min = 0;
 }
 media = media / 60; //faz a média
 Serial.print("nMedia por minuto = "); //Imprime a frase Media por minuto =
 Serial.print(media); //Imprime o valor da media
 Serial.println(" L/min - "); //Imprime L/min
 media = 0; //Zera a variável media para uma nova contagem
 i = 0; //Zera a variável i para uma nova contagem
 }
 
}
 
 
void incpulso ()
{
 contaPulso++; //Incrementa a variável de pulsos
}

Conclusões:

O sensor de fluxo de água é um ótimo dispositivo para você estar aplicando em sua residência. Sua comunicação é simples e seu tamanho reduzido torna mais prático a aplicação em qualquer lugar da casa. Para utilização é necessário alguns adaptadores que podem ser encontrados em qualquer loja de ferragens e materiais hidráulicos. As informações oferecidas pelo sensor são confiáveis e de grande importância para monitorar a quantia de água que esta passando por determinado local, a finalidade de aplicação vai depender da sua necessidade.

 

Autor: Leonardo Dalla Porta

Categorias
Projetos
31 Número de Comentários
  • JOSE MARCOS
    17 julho 2016 at 18:59
    Enviar Resposta

    Olá, sou iniciante no arduino e eu utilizei um sensor de fluxo de água e o esquema elétrico com o sketch postado nesse tópico, no entanto, quando ligo a placa arduino uno na usb, o sensor já começa a contagem mesmo com rotação zero e seu se eu sopro no sensor para ter uma rotação mais alta não faz diferença. O que pode estar acontecendo? Se alguém puder me ajudar agradeço.

  • David
    26 julho 2016 at 08:28
    Enviar Resposta

    Olá. É o seu projecto muito bem. Eu tenho uma pergunta para você. Se em vez de usar um sensor de fluxo 1/2 I utilizar um sensor de fluxo 3/4 (modelo FS300A) Devo fazer as correções no código de programação?

    Muito obrigado.

    David Rodriguez

    educatica2@gmail.com

    • Ana Paula de Oliveira
      29 julho 2016 at 17:08
      Enviar Resposta

      Sim, o código utilizado pode ser o mesmo … somente será necessária alguma alteração caso o projeto seja alterado de alguma maneira.
      Att Equipe Usinainfo

  • HELIO SATO
    18 agosto 2016 at 17:53
    Enviar Resposta

    Olá, sou leigo no assunto, seria possivel instalar um sensor de fluxo de água, junto com um registro de água eletrico, para que quando o volume de consumo de água de casa chegasse a 10 m3, o registro fosse desligado para que cortasse a passagem de água e eu pudesse religar caso quisesse ?

    • Equipe Usinainfo
      19 agosto 2016 at 19:21
      Enviar Resposta

      Boa Tarde Helio, é possível sim. Vai depender somente do esquema de instalação do seu projeto e do código utilizado para o funcionamento do mesmo.
      Att Equipe Usinainfo

  • Vinicius teodosio
    1 setembro 2016 at 16:12
    Enviar Resposta

    Boa tarde, gostaria de saber qual o valor do resistor utilizado.

    Ótimo conteúdo, parabéns.

    Vinicius Teodosio

    • Equipe Usinainfo
      1 setembro 2016 at 18:47
      Enviar Resposta
      • Miguel alt
        16 outubro 2016 at 00:16
        Enviar Resposta

        Olá
        Gostaria de entender do que se trata o pequeno quadrado azul ao lado do lcd

        Agradeço desde já

        Miguel Alt

        • Equipe Usinainfo
          21 outubro 2016 at 17:08
          Enviar Resposta

          Boa Tarde ! O componente azul presente no projeto é um trimpot e tem a função de regular o contraste do display, tornando-se fundamental em seu projeto e podendo ser substituído por um potenciômetro. Em determinados casos usa-se um resistor para diminuir o brilho da luz de fundo, porém a utilização do mesmo não se torna obrigatória para o seu projeto.
          Att Equipe Usinainfo

  • Lucas Moraes
    2 dezembro 2016 at 13:38
    Enviar Resposta

    Olá, eu comprei um sensor de vazão de 0,3 a 6L/min, gostaria de saber qual é a relação de pulsos e quantidade de litros, pois neste é de 5.5 e neste meu sensor não está funcionando. Se puderem me responder o mais breve possível eu ficaria muito agradecido.

  • Stephanie santos
    19 janeiro 2017 at 01:52
    Enviar Resposta

    Olá Leonardo Dalla,

    Gostei muito do seu projeto, porém estou com uma duvida, na imagem da montagem Física é usado o arduino UNO e um display de LCD, qual é o nome do componente azul que esta localizado do lado esquerdo do display, por gentileza.

    • Equipe Usinainfo
      23 janeiro 2017 at 13:29
      Enviar Resposta

      Olá, O componente azul presente no projeto é um trimpot e tem a função de regular o contraste do display, tornando-se fundamental em seu projeto e podendo ser substituído por um potenciômetro.
      Att Equipe Usinainfo

  • MARCOS CHAPRÃO
    20 fevereiro 2017 at 03:34
    Enviar Resposta

    Olá, gostaria de saber como faço para ler 3 sensores, como ficaria o código.

    Desde já agradeço.

    • Equipe Usinainfo
      9 março 2017 at 14:56
      Enviar Resposta

      Bom dia!
      A leitura de 3 sensores vai precisar de uma alteração física de seu projeto já que terá que escolher outros pinos para
      conexão de seus sensores e terá que adaptar o código adicionando novas variáveis e novos comandos ao seu código fonte.
      Att Equipe Usinainfo

  • Stephanie santos
    22 fevereiro 2017 at 14:24
    Enviar Resposta

    Bom dia,

    Eu tentei reproduzir o projeto, porém não estou conseguindo ligar o display com o sensor.
    Acredito que seja por causa da potencia do Resistor, posso estar usando um que não potente o suficiente, Qual a potencia do resistor que foi utilizado no projeto.

  • Pedro Rela
    17 março 2017 at 01:47
    Enviar Resposta

    Boa noite!

    não estou conseguindo rodar o codigo juntamente com um LCD 16×2 via I2C.
    Tudo funciona perfeitamente utilizando o monitor serial, mas quando coloco para “aparecer” qualquer tipo de informação no LCD o arduino simplesmente para de funcionar… Ele coleta o primeiro dado, apresenta no monitor serial, e depois para…

    você saberia dizer se este tipo de interrupção interfere com a comunicação I2C?

    obrigado!

    • Equipe Usinainfo
      17 março 2017 at 20:06
      Enviar Resposta

      Boa tarde! O código não foi desenvolvido para ser utilizado com display I2C,
      você realizou o ajuste no código para adaptação?

  • Daniel
    23 março 2017 at 14:32
    Enviar Resposta

    Bom dia,

    Com esse sensor, qual a máxima taxa de amostragem que ele é capaz de fornecer?
    Observei que nesse código ele disponibiliza uma medição a cada 1 segundo. É possível obter mais amostras por segundo?

    • Equipe Usinainfo
      24 março 2017 at 11:55
      Enviar Resposta

      Bom dia.
      A maior taxa de amostragem vai depender do seu código e do limite que irá definir previamente.
      O código pode ser alterado como desejado com o intuito de aumentar e diminuir precisão, vale
      cuidar somente para não exceder a sua capacidade.
      Att Equipe Usinainfo

  • Marcelo
    23 março 2017 at 16:50
    Enviar Resposta

    Boa tarde
    Gostaria de colocar um medidor de fluxo de agua de 1 polegada, teria que alterar e se alterar onde na programação ?
    Obrigado

    • Equipe Usinainfo
      27 março 2017 at 19:57
      Enviar Resposta

      Boa tarde!
      A princípio a bitola do cano não interfere na programação do equipamento,
      porém vale ressaltar que o mesmo precisará de um adaptador e a pressão que
      flui pelo sistema deve respeitar a igualdade de x ≤ 1.75MPa.

      Att Equipe Usinainfo

  • gUILHERME
    6 abril 2017 at 18:02
    Enviar Resposta

    Boa tarde, tenho dúvida em relação a constante para conversão de L/M, ela sofrerá variações se a pressão do sistema mudar? o projeto que desejo é ligar ela na rede de água residêncial, e aos finais de semana a pressão sempre decai, obrigado!

    • Equipe Usinainfo
      17 abril 2017 at 12:16
      Enviar Resposta

      Bom dia! A pressão da água que flui pelo cano do sensor não é fator de ajuste junto ao código,
      vale somente respeitar o nível máximo da pressão que o equipamento suporta.
      Att Equipe Usinainfo

  • Diego
    20 maio 2017 at 04:37
    Enviar Resposta

    Preciso ligar dois sensores deste em um Arduíno. é Possível? Não estou conseguindo. Todos só funcionam na porta digital dois do Arduíno.

    • Equipe Usinainfo
      22 maio 2017 at 14:08
      Enviar Resposta

      Bom dia Diego!
      A instalação de dois sensores de fluxo será possível somente com a adaptação do código para mais de um equipamento,
      pois este projeto foi desenvolvido somente para utilização de um sensor.
      Att Equipe Usinainfo

  • Nelson
    6 junho 2017 at 20:33
    Enviar Resposta

    Olá, na primeira etapa do texto fala que foi utilizado um arduíno Mega, mas no esquema de ligação temos um arduíno uno. Pode-se utilizar um arduíno uno então?

    • Equipe Usinainfo
      7 junho 2017 at 20:23
      Enviar Resposta

      Boa tarde!
      Este código e este esquema de ligação podem ser utilizados com Arduino UNO sem problema.

  • Nelson
    8 junho 2017 at 00:15
    Enviar Resposta

    Obrigado! Excelente site. Recomendo a todos os amigos. Mais uma dúvida: Como foi feita a conexão dos jumpers com as entradas no display? Foi feita alguma solda? Ou apenas “encostou”o jumper no orifício e conectou na protoboard? Obrigado!

    • Equipe Usinainfo
      12 junho 2017 at 19:10
      Enviar Resposta

      Boa tarde!
      Para o desenvolvimento deste projeto, foi soldados junto ao display uma barra de pinos, o simples contato do jumper não assegura a funcionalidade do projeto.
      Att Equipe Usinainfo

  • Nelson
    11 junho 2017 at 01:34
    Enviar Resposta

    Obrigado pela resposta! Mais uma coisa: Qual o valor do resistor usado? Parabéns pelo site!

    • Equipe Usinainfo
      12 junho 2017 at 19:46
      Enviar Resposta

      Olá Nelson, você pode utilizar um resistor de aproximadamente 100 Ohms.
      Att

    Enviar Resposta

    *

    *

    Sobre nós

    Hoje a Usinainfo é um dos maiores ecommerces de Ferramentas, Peças para Eletrônica, Componentes Eletrônicos, Sensores e Arduino do Brasil, contando com uma grande diversidade de produtos na linha de eletrônica.

    Sugestões

    Artigos Relacionados