Neste post vamos construir um medidor de vazão de água digital usando Arduino e display LCD 16 x 2. Estaremos dando uma olhada no sensor de fluxo de água YF-S201, sua construção e funcionamento e como fazer a interface com o Arduino para extrair algumas leituras úteis.
O projeto proposto pode medir a vazão de água em litros / minuto e a vazão total de água em litros.
Vamos dar uma olhada no sensor de fluxo de água YF-S201.
Ilustração de YF-S201:
YF-S201 é um Baseado em efeito Hall sensor de água. Possui três terminais 5V (tensão nominal de trabalho), GND e saída. O + 5V é o fio vermelho, o preto é GND e o amarelo é a saída.
O sensor fornece frequência diretamente proporcional ao fluxo de água. O sensor YF-S201 pode medir de 1 litro / minuto a 30 litros / minuto. A pressão da água deve ser menor ou igual a 1,75 MPa.
A água pode ser injetada de uma extremidade e a água flui pela outra extremidade.
O sensor pode ser colocado após a válvula gaveta principal do tanque se você quiser medir o fluxo de água em uma rede de canos de água ou pode ser colocado antes de uma torneira para medir o fluxo de água de uma única torneira.
A colocação do sensor pode ser em qualquer lugar de acordo com a necessidade do usuário, mas deve-se tomar cuidado para evitar vazamento de água.
O sensor tem um ímã e sensor de efeito Hall se dermos uma olhada nas laterais do sensor de fluxo de água, podemos testemunhar uma turbina de plástico no caminho do fluxo de água.
Um ímã redondo está embutido no centro da turbina e o sensor de efeito Hall é selado e protegido da umidade e colocado acima do ímã. O sensor de efeito Hall produz um pulso para cada revolução da turbina.
Forma de onda do fluxo de água no plotter serial
Podemos ver os pulsos gerados pelo sensor de fluxo de água no plotter serial do IDE arduino, mostrado abaixo (usando o osciloscópio de canal único Arduino).
Nós sopramos ar através do sensor para gire a turbina como um teste e a forma de onda gerada é mostrada acima. A forma de onda mais densa no lado esquerdo representa maior frequência e rotação mais rápida da turbina, a forma de onda menos densa no lado direito significa o vice-versa.
Um fluxo de água consistente fornece saída de frequência consistente.
Temos que converter a frequência na escala de litros / minutos. Para fazer isso, o fabricante forneceu uma fórmula:
Taxa de fluxo de água (litro / min) = frequência / 7,5
Portanto, precisamos medir a frequência gerada e aplicar a fórmula acima no código do programa.
Especificações técnicas de YF-S201:
· Precisão: +/- 10%, se precisar de melhor precisão, precisamos calibrar.
· Temperatura de trabalho: -25 a + 80 graus Celsius.
· Umidade de trabalho: 35% a 80% UR.
· Ciclo de trabalho de saída: 50% +/- 10%.
· Pressão máxima da água: 1,75 MPa.
· Pulsos por litro: 450.
· Consumo máximo de corrente: 15 mA a 5V
Isso conclui o sensor de fluxo de água YF-S201.
Agora vamos passar para o esquema.
Diagrama esquemático:
O pino de saída do sensor de fluxo de água é conectado a A0 do Arduino. Use o Potenciômetro 10K para ajustar o contraste do display. Conecte o Arduino e tela de LCD conforme o diagrama acima.
Código do programa:
//-----Program Developed by R.Girish-----//
#include
LiquidCrystal lcd(12, 11, 5, 4, 3, 2)
int X
int Y
float Time = 0
float frequency = 0
float waterFlow = 0
float total = 0
float LS = 0
const int input = A0
const int test = 9
void setup()
{
Serial.begin(9600)
lcd.begin(16, 2)
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Water Flow Meter')
lcd.setCursor(0,1)
lcd.print('****************')
delay(2000)
pinMode(input,INPUT)
pinMode(test, OUTPUT)
analogWrite(test,100)
}
void loop()
{
X = pulseIn(input, HIGH)
Y = pulseIn(input, LOW)
Time = X + Y
frequency = 1000000/Time
waterFlow = frequency/7.5
LS = waterFlow/60
if(frequency >= 0)
{
if(isinf(frequency))
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('L/Min: 0.00')
lcd.setCursor(0,1)
lcd.print('Total: ')
lcd.print(total)
lcd.print(' L')
}
else
{
total = total + LS
Serial.println(frequency)
lcd.clear()
lcd.setCursor(0,0)
lcd.print('L/Min: ')
lcd.print(waterFlow)
lcd.setCursor(0,1)
lcd.print('Total: ')
lcd.print(total)
lcd.print(' L')
}
}
delay(1000)
}
//-----Program Developed by R.Girish-----//
Protótipo do autor:
O “L / Min” indica a taxa de fluxo de água atual e o “Total” indica o total de água fluida desde que o circuito foi ligado.
Você também pode fluir qualquer líquido cujo valor de viscosidade esteja próximo da água.
Se você tiver alguma dúvida sobre este medidor de vazão de água digital usando Arduino, sinta-se à vontade para expressar na seção de comentários, você pode receber uma resposta rápida.
Anterior: Carro RC controlado por joystick de 2,4 GHz usando Arduino Próximo: Faça este conversor Buck usando o Arduino