在這篇文章中,我們將使用 Arduino 和 16 x 2 LCD顯示屏構(gòu)建一個(gè)數(shù)字水流量計(jì)。我們將看看YF-S201水流量傳感器,其結(jié)構(gòu)和工作原理以及如何與Arduino接口以提取一些有用的讀數(shù)。
擬議的項(xiàng)目可以測(cè)量以升/分鐘為單位的水流量和以升為單位的總水流量。
讓我們來(lái)看看YF-S201水流量傳感器。
YF-S201是一款基于霍爾效應(yīng)的水傳感器。它具有三個(gè)端子5V(標(biāo)稱(chēng)工作電壓),GND和輸出。+5V為紅色線(xiàn),黑色為接地線(xiàn),黃色為輸出。
傳感器發(fā)出的頻率與水流量成正比。YF-S201傳感器的測(cè)量范圍從1升/分鐘到30升/分鐘。水壓應(yīng)小于或等于1.75MPa。
水可以從一端注入,水流過(guò)另一端。
傳感器可以放置在罐體的主閘閥之后;如果要測(cè)量水管網(wǎng)絡(luò)中的水流量,或者可以放置在水龍頭之前以測(cè)量單個(gè)水龍頭的水流量。
傳感器的位置可以根據(jù)用戶(hù)的需要放在任何地方,但必須注意避免漏水。
傳感器具有磁鐵和霍爾效應(yīng)傳感器;如果我們看一下水流傳感器的側(cè)面,我們可以看到水流路徑中的塑料渦輪機(jī)。
一個(gè)圓形磁鐵嵌入在渦輪機(jī)的中心,霍爾效應(yīng)傳感器被密封并防止潮濕,并放置在磁鐵上方。霍爾效應(yīng)傳感器為渦輪機(jī)的每一圈產(chǎn)生一個(gè)脈沖。
串行繪圖儀上的水流波形
我們可以看到水流量傳感器在arduino IDE的串行繪圖儀上產(chǎn)生的脈沖,如下所示(使用Arduino單通道示波器)。
我們將空氣吹過(guò)傳感器以旋轉(zhuǎn)渦輪機(jī)作為測(cè)試,生成的波形如上所示。左側(cè)密度較高的波形表示渦輪機(jī)的頻率更高,旋轉(zhuǎn)速度更快,右側(cè)密度較低的波形表示反之亦然。
一致的水流提供一致的頻率輸出。
我們必須將頻率轉(zhuǎn)換為升/分鐘刻度。為此,制造商給出了一個(gè)公式:
水流量(升/分鐘)= 頻率 / 7.5
因此,我們需要測(cè)量生成的頻率并在程序代碼中應(yīng)用上述公式。
YF-S201技術(shù)規(guī)格:
·精度:+/- 10%,如果您需要更好的精度,我們需要校準(zhǔn)。
·工作溫度:-25至+ 80攝氏度。
·工作濕度:35% 至 80% 相對(duì)濕度。
·輸出占空比:50% +/- 10%。
·最大水壓:1.75兆帕。
·每升豆類(lèi):450。
·最大電流消耗:15V 時(shí)為 5 mA
YF-S201水流量傳感器到此結(jié)束。
現(xiàn)在讓我們轉(zhuǎn)到原理圖。
示意圖:
水流量傳感器的輸出引腳連接到 Arduino 的 A0。使用 10K 電位計(jì)調(diào)整顯示對(duì)比度。按照上圖連接Arduino和LCD顯示屏。
程序代碼:
//-----Program Developed by R.Girish-----//
#include 《LiquidCrystal.h》
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.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-----//
“L/Min”表示當(dāng)前水流量,“總計(jì)”表示自電路打開(kāi)以來(lái)的總流量。
您還可以流動(dòng)粘度值接近水的任何液體。
-
流量計(jì)
+關(guān)注
關(guān)注
10文章
1508瀏覽量
53892 -
Arduino
+關(guān)注
關(guān)注
188文章
6477瀏覽量
187823 -
LCD顯示屏
+關(guān)注
關(guān)注
1文章
91瀏覽量
13457
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
智能家居系統(tǒng)中的水流量計(jì)設(shè)計(jì)
為什么STC89C52水流量計(jì)不能顯示?
一種適用于造紙廠(chǎng)污水管道流量測(cè)量的化學(xué)污水流量計(jì)的電路設(shè)計(jì)方法
基于51單片機(jī)的水流量計(jì)流量報(bào)警器設(shè)計(jì)
51單片機(jī)的水流量計(jì)流量報(bào)警器設(shè)計(jì)源代碼分享
水流量計(jì)檢定控制系統(tǒng)原理及設(shè)計(jì)
![<b class='flag-5'>水流量計(jì)</b>檢定控制系統(tǒng)原理及設(shè)計(jì)](https://file1.elecfans.com//web2/M00/A5/80/wKgZomUMOLiALdpKAACjThK8EGY005.jpg)
水流量計(jì)選型_水流量計(jì)的種類(lèi)
![<b class='flag-5'>水流量計(jì)</b>選型_<b class='flag-5'>水流量計(jì)</b>的種類(lèi)](https://file.elecfans.com/web1/M00/AE/ED/o4YBAF3fNiKAfK7WAADaWgQ9QmE353.jpg)
評(píng)論