快速解答
若要使用 YF-S201 測量水流速率,請將其三條線分別連接到 Arduino 的 5V、GND 和一個數位腳位,然後讀取脈衝輸出,並使用感測器的校正係數將其轉換為每分鐘公升數。
為什麼 YF-S201 適用於流量測量
YF-S201 是一款霍爾效應流量計,每當感測器本體內的轉子轉動時,便會輸出一個數位脈衝。脈衝頻率與流量成正比,因此任何能夠計數中斷的微控制器都能輕鬆讀取。它適用於 DC 5-18V,因此與 Arduino 的 5V 電源供應搭配良好。
一個取捨:此感測器僅適用於乾淨水源。顆粒或碎屑可能會卡住轉子,因此如果水源不夠清澈,請務必使用前置過濾器。此外,出廠校正係數(通常約為每公升 7.5 個脈衝)僅為近似值;為求最佳精確度,您應透過測量已知體積的水來進行校正。
如何使用 YF-S201 測量流量
- 將感測器接線至 Arduino: 將 YF-S201 的紅線連接到 Arduino 的 5V,黑線連接到 GND,黃線連接到數位腳位 2(或任何支援中斷的腳位)。此感測器耗電約 15 mA,因此 Arduino 的 5V 腳位可直接供電。 常見錯誤:在您的開發板上使用了不支援中斷的腳位。在 Arduino Uno 上,只有腳位 2 和 3 可搭配 attachInterrupt() 使用。
- 上傳脈衝計數程式碼: 開啟 Arduino IDE,編寫一個將中斷附加到感測器腳位的程式碼。在中斷服務常式中,遞增一個 volatile 計數器變數。在 loop() 中,將固定時間間隔(例如 1 秒)內的脈衝計數除以感測器的校正係數(通常為每公升 7.5 個脈衝),即可計算出以 L/min 為單位的流量。 檢查點:請務必為計數器變數使用 'volatile' 關鍵字,否則編譯器可能會將其最佳化掉,導致讀數不穩定。
- 校正以獲得精確讀數: 將已知體積的水(例如 1 公升)流經感測器,並計算總脈衝數。將脈衝數除以體積,即可得到實際校正係數。然後更新程式碼中的係數。對於 YF-S201,該係數通常介於每公升 6.5 至 8.5 個脈衝之間。 常見錯誤:假設出廠係數是精確的。校正可將精確度提升 10-20%。
- 測試並解讀輸出: 開啟序列埠監控視窗(9600 鮑率),並讓水流經感測器。您應該會看到流量讀數每秒更新一次。將讀數與已知流量(例如使用量杯和碼錶測量)進行比較,以驗證校正。 如果沒有看到任何脈衝,請檢查接線極性。此感測器對極性敏感:反接 5V 和 GND 可能會損壞它。
本指南使用的產品
-
0-30L/pm 水流感測器 DC 5-18V 流量計霍爾效應模組 YF-S201: 0-30L/pm 水流感測器 DC 5-18V 流量計霍爾效應模組 YF-S201 其 0-30 L/min 範圍涵蓋一般家庭流量,且霍爾效應輸出可直接搭配 Arduino 數位腳位使用,無需額外元件。
0-30L/pm 水流感測器 DC 5-18V 流量計霍爾效應模組 YF-S201
