YF-S201 é um sensor de “fluxo” de água que usa um mecanismo mecânico e eletrônico bem simples para medir o fluxo de água. A detecção da rotação é feita por um sensor de efeito hall, que gera pulsos por rotação.
Aplicações
- Medição de consumo de água;
- Monitoramento de fontes fluviais;
- Sistemas de automação.
Especificações
- Voltagem de trabalho: 4V5 ~ 18V;
- Corrente máxima de trabalho: 15mA;
- Faixa de leitura: 1 ~ 30L/min;
- Pressão da água: ≤ 1.75MPa;
- Diâmetro do sensor: 36mm;
- Diâmetro da entrada/saída: 26mm (1/2″);
- Dimensões: 60x36x34mm;
- Peso: 58g.
Sensor de Fluxo ou Vazão?
Comumente este tipo de sensor está associado a “sensor de fluxo de água”, mas segundo o artigo medição de velocidade e vazão de fluidos, a definição de fluxo está ligada à uma grandeza por unidade de comprimento, área ou volume como por exemplo W/m (potência por unidade de comprimento).

Ao contrário, a vazão ou escoamento é taxa de massa por unidade de tempo, no caso dos líquidos é comum o uso de L/H (litros por hora). Esta mesma definição está disponível no mesmo artigo anteriormente mencionado.
Como funciona um sensor de vazão?
O funcionamento de um sensor de vazão é muito similar a uma roda d’água, a única diferença é há um imã e sensor de efeito hall que gera pulsos quando a “hélice” gira. Para entender melhor, vamos dividir em duas partes.
Parte Mecânica
Como já dito, o sensor é muito similar a uma roda d’água, a única diferença é que possui um pequeno imã de ferrite que indica as rotações para um sensor de efeito hall.

Parte Eletrônica
A vantagem de utilizar o “hall” é que a parte eletrônica fica isolada da parte mecânica e consequentemente da água, ficando indiretamente conectados. Por isso, quando a hélice gira, é gerado uma onda quadrada em que a frequência representa vazão do fluido.

Quanto maior for a vazão, maior será a mudança de estados lógicos, ou seja a frequência vai ser maior, veja uma tabela de exemplo:

YF-S201 Peculiaridades
Anteriormente já foi citado inúmeras características deste sensor, os outros modelos funcionam praticamente o mesmo forma, variando apenas a capacidade de medição. Por isso, a peculiaridade mais marcante será por essência, a carcaça.

Outra coisa muito importante é a instalação do sensor no sentido da vazão de acordo com a posição da seta, caso contrário as medições serão abaixo do esperado.
Dimensões do YF-S201

Como usar o YF-S201 com Arduino
Ao passo que este post é lido é possível entender mais ou menos como terá que ser feito o código no Arduino. Anteriormente, vimos que o sensor é gera um sinal de saída com frequência proporcional a vazão, então basicamente temos que interpretar essa frequência e converter para L/min.
Código
Para obter a “frequência” podemos usar a interrupção do Arduino, dessa forma, é possível contar quantos pulsos ocorreram. Com base na tabela anterior, é possível fazer uma média e assim é possível converter para L/H, após a conversão basta apenas transformar L/H em L/min.
Por isso o código fica bem simples, não necessitando o uso de bibliotecas externas, mas no exemplo a seguir usa nossa biblioteca que “substitui a função delay”, o Waiting Time.
#include <Elcereza_Waiting_Time.h>
#define pin_sensor 2
Waiting_Time t(1);
int count = 0;
void count_pulse(){
++count;
}
void convert_signal(){
count *= 7.46893 * 0.0166667; // Pega "count" e se automultiplica com o valor da média e converte L/H -> L/min
double f = count / 7.46893; // Obtêm a "frequência"
/*
Esses valores acima podem variar ao longo da leitura.
A média é uma forma simples de ajustar a uma unidade
de Hz, ou seja, 1Hz == 7,46893 L/H. No entanto,
se você fizer essa "divisão" para obter quantos
L/H equivalem a 1Hz, verá que cada ponto da tabela
os valores mudam, então isso refletirá nos resultados.
*/
String value = "Vazão: ";
value += String(count);
value += " L/min | Frequência: ";
value += String(f);
value += " Hz";
Serial.println(value);
}
void setup() {
pinMode(pin_sensor, 0);
Serial.begin(115200);
}
void loop() {
if(t.wait(1000, 0))
{
detachInterrupt(0);
convert_signal();
count = 0;
ltime_ms = 0;
attachInterrupt(0, count_pulse, FALLING);
}
}
Diagrama do YF-S201 e Arduino
Embora alguns outras publicações na internet deste mesmo sensor com o Arduino, acabam colocando um resistor em pullup, mas isso não é necessário, visto que há um resistor internamente já fazendo isso. Se possível, coloque um capacitor de desacoplamento 100nf, pois este não há no PCI interna.

Funcionamento
Para o teste foi usado água de torneira de modo que a vazão fosse controlada pelo registro da torneira. Por isso, em alguns momentos a vazão diminui ou aumenta.
Um detalhe bastante importante é que este sensor não é para trabalhar a seco, pois a água trabalha internamente como lubrificante, por isso é fundamental o uso em água.