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.