SOBRE

LightBlog
Responsive Ads Here

segunda-feira, 26 de janeiro de 2015

#19 Sensor de Controle de Vazão

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.