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!