Olla boa galera...
Estou com um pequeno problema que nao sei resolver na programaçao de um sensor de fluxo de agua...
Esse codigo que irei passar é para apenas 1 sensor... ele calcula a vazao e o total.
Só que adicionei mais um sensor no circuito.. e no caso ele teria o trabalho de subtrair o valor total do primeiro, apenas o que ele ja somou do que passa pelo primeiro sensor...
E nao sei como modificar meu codigo para tal funçao... se caso alguem saiba mudar direitinho e tbm a ordem na hr de mostra no LCD16x2 q estou usando para este projeto..
Agradeço desde ja XD
o codigo segue a baixo>>>
#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
short int i=0; //Variável para contagem
float Litros = 0; //Variável para Quantidade de agua
float MiliLitros = 0; //Variavel para Conversão
LiquidCrystal lcd(12, 11, 6, 5, 4, 2);
void setup()
{
Serial.begin(9600);
lcd.begin(16, 2);
lcd.setCursor( 0, 0);
lcd.println("Sensoriamento de");
lcd.setCursor( 0, 1);
lcd.println(" fluxo de Agua ");
delay(3000);
lcd.clear();
pinMode(9, 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.clear();
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(i); //Escreve a contagem i (segundos)
lcd.print("s "); //Escreve s indicando que está em segundos
MiliLitros = vazao/60;
Litros = Litros + MiliLitros;
lcd.print(Litros);
lcd.println("L ");
// Neste conjunto de linhas fizemos a média das leituras obtidas a cada 1 minuto
if(i==60)
{
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
// Você pode imprimir no display também na minha opinião
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
}
Tags:
Não sei se da certo, ou se vc ja tentou.
Tira a função void loop() e usa void sensor1() e void sensor2()
e faz o acionamento dentro de cada estrutura separadamente junto com a amostragem do LCD
assim o LCD vai mostrar o valor do sensor lido na hora.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por