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.
Tags:
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.
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.
Agradeço a todos que me ajudaram e ou tentaram, rs
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por