Sensor de Fluxo de Água YF-S201 com Arduino Uno
Neste tutorial iremos demonstrar como utilizar o sensor de fluxo de Água com o Arduino Uno. Para acompanhar este artigo, iremos necessitar dos seguintes componentes:
| Imagem | Produto | Comprar |
|---|---|---|
|
|
Arduino Uno |
|
|
|
Cabos Jumper Macho-Macho |
|
Sensor Controlo Fluxo de Água 1/2″ YF-S201 |
Sobre o Sensor de Fluxo de Água
Quando a água flui através do rotor, o rotor é enrolado. A sua velocidade muda com uma taxa de fluxo diferente. Em seguida, o rotor magnético faz a reação ao sensor Hall, o sensor de efeito Hall produz o sinal de pulso correspondente. Este sensor é adequado para detectar a taxa de fluxo
- Modelo: YF-S201;
- Caudal de Água: 1 – 30L/min;
- Alta amplitude ≥ 4.6V;
- Baixa amplitude ≤ 0,5V;
- Resistência elétrica 1250V / min;
- Resistência de isolamento ≥ 100MΩ;
- Teste de pressão hidrostática ≤ 2,0Mpa;
- Corrente de operação máxima: 15 mA (DC 5V);
- Gama de tensão de trabalho: DC 5 ~ 18V;
- Capacidade de carga: ≤ 10 mA (DC 5V);
- Temperatura de utilização: ≤ 80°C;
- Faixa de humidade operacional: 35% ~ 90% RH;
- Pressão máxima: 2.0Mpa;
- Temperatura: -25 ~ + 80°C;
- Diâmetro exterior: 20mm;
- Diâmetro de entrada: 9mm;
- Diâmetro da saída: 12mm.

Esquema de Montagem

Código Utilizado
byte statusLed = 13;
byte sensorInterrupt = 0;
byte sensorPin = 2;
float calibrationFactor = 4.5;
volatile byte pulseCount;
float flowRate;
unsigned int flowMilliLitres;
unsigned long totalMilliLitres;
unsigned long oldTime;
void setup()
{
Serial.begin(9600);
pinMode(statusLed, OUTPUT);
digitalWrite(statusLed, HIGH);
pinMode(sensorPin, INPUT);
digitalWrite(sensorPin, HIGH);
pulseCount = 0;
flowRate = 0.0;
flowMilliLitres = 0;
totalMilliLitres = 0;
oldTime = 0;
attachInterrupt(sensorInterrupt, pulseCounter, FALLING);
}
void loop()
{
if ((millis() - oldTime) > 1000)
{
detachInterrupt(sensorInterrupt);
flowRate = ((1000.0 / (millis() - oldTime)) * pulseCount) / calibrationFactor;
oldTime = millis();
flowMilliLitres = (flowRate / 60) * 1000;
totalMilliLitres += flowMilliLitres;
unsigned int frac;
Serial.print("Flow rate: ");
Serial.print(int(flowRate));
Serial.print("L/min");
Serial.print("\t");
Serial.print("Output Liquid Quantity: ");
Serial.print(totalMilliLitres);
Serial.println("mL");
Serial.print("\t"); // Print tab space
Serial.print(totalMilliLitres / 1000);
Serial.print("L");
pulseCount = 0;
attachInterrupt(sensorInterrupt, pulseCounter, FALLING);
}
}
void pulseCounter()
{
pulseCount++;
}
Para mais projetos, percorram o nosso blog, onde podem encontrar vários artigos interessantes relacionados com eletrónica, robótica e muito mais! Visitem também o nosso site, onde encontram tudo para eletrónica e robótica!



