Para este experimento foi utilizado o sensor de vazão HS05, igual o da figura abaixo.
Como este sensor e a maioria dos outros sensores de vazão não possuem datasheet, o calculo poi feito por aproximação. Foram realizados diversos testes e calculado quantos pulsos eram precisos para passar 500 ml. Após isso foi dividido pulso/ml, para saber quantos ml passavam por pulsos. Com isso, foi possível verificar que em cada pulso passava 0.93 ml.
O Figura abaixo ilustra o esquemático do projeto.
Como no software utilizado não tinha um sensor de vazão para ilustrar, foi colocado somente os cabos na direita da imagem. Onde o vermelho é o 5 volts, o rosa é o sinal e o preto o terra.
Como testes foi simulado o tanque de combustível de um carro, que tem capacidade de 30 litros, então quando o sensor de vazão marcar 26 litros ou mais ele aciona o led vermelho. O display LCD foi utilizado para marcar a vazão e os pulsos.
A Figura abaixo ilustra um exemplo do LCD.
Código utilizado:
#include <LiquidCrystal.h>
// inicialização do display LCD
LiquidCrystal lcd(12, 11, 7, 6, 5, 4);
short int Conta_Pulso;
short int Tanque_Vazio = 0;
void setup()
{
Serial.begin(9600); //Inicia a serial com um baud rate de 9600
pinMode(2, INPUT);
pinMode(8, OUTPUT);
attachInterrupt(0, incpulso, RISING); //Configura o pino 2(Interrupção 0) para trabalhar como interrupção
Serial.println("\n\nInicio da execucao do Software\n\n"); //Imprime Inicio na serial
}
void loop ()
{
Serial.print(Tanque_Vazio);
Serial.print(" ml - ");
Serial.print(Conta_Pulso);
Serial.println(" pulsos");
if(Tanque_Vazio >= 2600)
digitalWrite (8, HIGH);
lcd.begin(16, 2);
lcd.setCursor(1,0);
lcd.print("Combust.: ");
lcd.print(Tanque_Vazio);
lcd.print("ml");
lcd.setCursor(1,1);
lcd.print("Pulsos: ");
lcd.setCursor(8,1);
lcd.print(Conta_Pulso);
delay (250);
}
void incpulso ()
{
Conta_Pulso++;
Tanque_Vazio = Conta_Pulso * 0.93;
}
Projeto desenvolvido por Guilherme Hollweg.