Medição de volume de água utilizando sensor de vazão P/ Arduino (Dúvida)

Olá pessoal, sou iniciante no Arduino e me deparei com algumas dificuldades durante meu projeto de medição de entrada e saída de um volume d'água em um reservatório.

 

Comprei os sensores de fluxo de água de 1/2", utilizo uma placa Arduino UNO.

 

Gostaria de usar 2 sensores desses simultaneamente, um contabilizando o volume de entrada e o outro de saída, calcular a diferença entre eles para saber o valor armazenado.

 

Alguém poderia me dar uma luz, alguma programação parecida ou me indicar uma boa fonte para que eu aprenda como fazer tal programação?

 

desde já agradeço.

 

Exibições: 2853

Responder esta

Respostas a este tópico

Olá Bruno, certamente estes sensores utilizam o Efeito Hall.

Ver aqui mesmo no LAB http://labdegaragem.com/profiles/blogs/tutorial-como-utilizar-o-sen...

Sim, a principio eu utilizei essa programação como base mas eu não tenho a necessidade de medir vazão (L/Min) e sim o Volume (somente Litros) e necessito de 2 sensores e a subtração do valor deles.

Parece mais simples do que esse programa oferece, mas eu realmente não sei como fazer.

De qualquer forma, obrigado!

Oi BH, boa tarde.

A programação deste projeto parece simples,

Para calcular o volume basta identificar o fluxo e multiplicar pelo tempo.

Ex se o fluxo é de 10L/min, em 5 minutos terá 50L entrando.  

No mesmo tempo mede-se a saída.

Sabendo-se qto tinha no tanque, então é só questão de conta

            TanqueAtual  = Tanque Antigo + Entrada - Saída.

mas a medida do fluxo envolvendo 2 sensores de fluxo pode ser mais complexa 

pois terá que usar 2 interrupts.

Você pode usar esta mesma rotina recomendado pelo H, mas usando 2 interrupts  ( o 0 e o 1).


Rui

Pois é, eu já consegui alterar o programinha de forma que ele me informasse o volume de água que passa para 1 sensor

eu adaptei o programa de forma que ele contasse apenas o volume e somasse ao longo do tempo, me exibindo a cada 10 segundos.

float volume; //Variável para armazenar o valor em ml
int contaPulso; //Variável para a quantidade de pulsos
int i=0; //Variável para contagem
float mediatotal= 0; //Média Acumulada
float media= 0; //Média

void setup()
{
Serial.begin(9600); //Inicia a serial com um baud rate de 9600

pinMode(2, INPUT);
attachInterrupt(0, incpulso, RISING); //Configura o pino 2(Interrupção 0) para trabalhar como interrupção
Serial.println("\n\nInicio\n\n"); //Imprime Inicio na serial
}

void loop ()
{
contaPulso = 0; //Zera a variável para contar os giros por segundos
sei(); //Habilita interrupção
delay (1000); //Aguarda 1 segundo
cli(); //Desabilita interrupção

volume = contaPulso * 2.25; //Converte para ml
media=media+volume; //Soma a volume para o calculo da media
mediatotal=media+volume;
i++;

Serial.print(volume); //Imprime na serial o valor da vazão
Serial.print(" ml "); //Imprime ml
Serial.print(i); //Imprime a contagem i (segundos)
Serial.println("s"); //Imprime s indicando que está em segundos

if(i==10)
{
Serial.print("\nPulsos = ");
Serial.print(contaPulso);
Serial.print("\nVolume Total = "); // Imprime a frase Volume Total =
Serial.print(mediatotal); //Imprime o valor da media acumulada
Serial.println(" ml - "); //Imprime ml
i=0;
mediatotal = mediatotal;
}

}

void incpulso ()
{
contaPulso++; //Incrementa a variável de contagem dos pulsos
}

Não mudei os nomes das variáveis, mas até então já consegui fazer funcionar pra 1 sensor

só me falta saber como adicionar o segundo, não manjo muito de arduino, seria só inserir novamente as linhas de comando 

pinMode(2, INPUT);
attachInterrupt(0, incpulso, RISING); //Configura o pino 2(Interrupção 0) para trabalhar como interrupção
Serial.println("\n\nInicio\n\n"); //Imprime Inicio na serial
}

mudando pra 1 pra usar o pino 3?? e depois disso?

Obrigado.

Oi BH, 

complete o resto dos cálculos e teste este code.

http://pastebin.com/hw4QzpKH

Obs:

Evite postar code na área de texto.

Perde a formatação e o tópico fica extenso.

Rui

Ok Rui, testarei esse codigo agora! 

Obrigado

Pronto! usando como base aquilo que me mandou, modificando uma coisinha aqui outra ali, cheguei a isto http://pastebin.com/iKcxaWUB

Funcionou perfeitamente, só me resta inserir mais uma variável que será resultando da subtração de volumetotal_in e volumetotal_out para saber o que está armazenado no tanque.

Obrigado pela ajuda Rui!

Código finalizado e funcionando perfeitamente para um futuro necessitado como eu fui.

http://pastebin.com/4N1CJdfd

Agradeço a todos que me ajudaram e ou tentaram, rs

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço