Circuit digital de mesurador de cabal digital simple amb Arduino

Proveu El Nostre Instrument Per Eliminar Problemes





En aquest post construirem un mesurador de cabal digital amb Arduino i pantalla LCD de 16 x 2. Anem a fer una ullada al sensor de cabal d’aigua YF-S201, la seva construcció i funcionament i la forma de relacionar-nos amb Arduino per extreure algunes lectures útils.

El projecte proposat pot mesurar la velocitat del cabal d’aigua en litres / minut i el cabal total d’aigua en litres.



Vegem el sensor de cabal d’aigua YF-S201.

Il·lustració de YF-S201:

YF-S201 és un Basat en l’efecte Hall sensor d'aigua. Té tres terminals 5V (tensió nominal de treball), GND i sortida. El + 5V és filferro de color vermell, el negre és GND i el groc surt.



El sensor emet freqüència directament proporcional al cabal d’aigua. El sensor YF-S201 pot mesurar des d’1 litre / minut fins a 30 litres / minut. La pressió de l’aigua ha de ser inferior o igual a 1,75 MPa.

L’aigua es pot injectar des d’un extrem i l’aigua flueix per l’altre extrem.

El sensor es pot col·locar després de la vàlvula principal del tanc si voleu mesurar el cabal d’aigua en una xarxa de canonades d’aigua o bé podeu col·locar-lo just abans d’una aixeta d’aigua per mesurar el cabal d’aigua d’una sola aixeta.

La col·locació del sensor es pot fer a qualsevol lloc segons les necessitats de l’usuari, però s’ha de tenir precaució per evitar fuites d’aigua.

El sensor té un imant i sensor d'efecte Hall si fem una ullada als costats del sensor de cabal d’aigua, podem presenciar una turbina de plàstic en el recorregut del cabal d’aigua.

Un imant de forma rodona està incrustat al centre de la turbina i el sensor d’efecte Hall està segellat i protegit de la humitat i situat sobre l’imant. El sensor Hall Effect produeix un impuls per cada revolució de la turbina.

Forma d'ona de flux d'aigua al traçador en sèrie

Podem veure els polsos generats pel sensor de flux d’aigua en el traçador en sèrie d’IDE arduino, que es mostra a continuació (mitjançant l’oscil·loscopi monocanal Arduino).

Hem bufat aire a través del sensor cap a fa girar la turbina com a prova i la forma d'ona generada es mostra a la part superior. La forma d'ona més densa del costat esquerre representa una freqüència més alta i una rotació més ràpida de la turbina, la forma d'ona menys densa del costat dret significa el contrari.

Un cabal d’aigua constant proporciona una sortida de freqüència constant.

Hem de convertir la freqüència en escala litre / minut. Per fer-ho, el fabricant ha donat una fórmula:

Cabal d’aigua (litres / min) = freqüència / 7,5

Per tant, hem de mesurar la freqüència generada i aplicar la fórmula anterior al codi del programa.

Especificacions tècniques de YF-S201:

· Precisió: +/- 10%, si necessiteu una precisió millor, cal calibrar-lo.

· Temperatura de treball: -25 a + 80 graus centígrads.

· Humitat de treball: 35% a 80% HR.

· Cicle de treball de sortida: 50% +/- 10%.

· Pressió màxima de l’aigua: 1,75 MPa.

· Pulses per Litre: 450.

· Corrent màxim de corrent: 15 mA a 5V

Això conclou el sensor de cabal d’aigua YF-S201.

Passem ara a l’esquema.

Diagrama esquemàtic:

El pin de sortida del sensor de cabal d’aigua està connectat a A0 d’Arduino. Utilitzar el Potenciòmetre de 10K per ajustar el contrast de la pantalla. Connecteu l'Arduino i Pantalla LCD segons el diagrama anterior.

Codi del 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-----//

Prototip de l'autor:

El 'L / Min' indica el cabal d'aigua actual i el 'Total' indica el total d'aigua que ha fluït des que el circuit s'ha activat.

També podeu fer fluir qualsevol líquid que tingui un valor de viscositat proper a l’aigua.

Si teniu cap pregunta sobre aquest mesurador de cabal digital amb Arduino, no dubteu a expressar-ho a la secció de comentaris, és possible que rebeu una resposta ràpida.




Anterior: Joystick controlat per un cotxe RC de 2,4 GHz amb Arduino Següent: Feu aquest convertidor Buck amb Arduino