Fala galera, tudo beleza? 😀
O post de hoje é sobre um sensorzinho bacana, de fácil implementação com Arduino e uma gama de aplicações. O sensor vazão de água 1/2”. Dá pra aplicar ele em áreas como monitoramento de consumo de água, estações meteorológicas, sistema de irrigação – entre outros, legal né?
O sensor vazão de água 1/2” é composto internamente por um conjunto de pás, que ao serem acionadas pelo fluxo d’água, é realizado a leitura (através da porta digital) quantificando à água que passou pelas “pás” em um determinado intervalo de tempo.
É nisso que nosso código foi focado. Como será visto abaixo. (sem spoilers, Iago).
Lembrando que Vazão = Escoamento(L)/Tempo(min) – S.I ou m³/s
Então vamos ao trabalho:
Material de Suporte:
https://www.arduino.cc/en/Reference/AttachInterrupt
Materiais Utilizados:
1 x Sensor Vazão de Água 1/2″;
1 x Arduino Uno;
Esquema de montagem:
Fio Preto – GND;
Fio Amarelo – Porta Digital (2);
Fio Vermelho – 5V
Obs: No sensor há uma seta indicando, em qual sentido as pás devem girar. Consequentemente, em qual sentido deve ser a entrada e saída de água.
Código comentado:
int Pulso; //Variável para a quantidade de pulsos
int j=0; //Variável para contagem
float vazaoagua; //Variável para armazenar o valor em L/min
float valormedia=0; //Variável para tirar a média a cada 1 minuto
void setup()
{
Serial.begin(9600);
pinMode(2, INPUT);
attachInterrupt(0, incrpulso, RISING); //Configura a porta digital 2, para interrupção
}
void loop ()
{
Pulso = 0; //Começa do 0 variável para contar os giros das pás internas,ek segundos
sei(); //liga interrupção
delay (2000); //Espera 2 segundos
cli(); //Desliga interrupção
vazaoagua = Pulso / 5.5; //Converte para Litros/minuto
valormedia=valormedia+vazaoagua; //Soma a vazão para o calculo da valormedia
j++;
Serial.print(vazaoagua); //Imprime na serial o valor da vazão
Serial.print(" L/minuto - "); //Imprime L/min
if(j==60)
{
valormedia = valormedia/60; //Tira a valormedia dividindo por 60
Serial.print("\n Media por minuto = "); //Imprime a frase valormedia por minuto =
Serial.print(valormedia); //Imprime o valor da valormedia
Serial.println(" Litros/minutos - "); //Imprime L/min
valormedia = 0; //Torna variável valormedia = 0, para uma nova contagem
j=0; //Torna a variável 0,para uma nova contagem
}
}
void incrpulso ()
{
Pulso++;
}
Resultado:
Não percam o próximo post – Aprenda a utilizar o sensor de fogo com Arduino.
