Mạch đồng hồ đo lưu lượng nước kỹ thuật số đơn giản sử dụng Arduino

Hãy Thử Công Cụ CủA Chúng Tôi Để LoạI Bỏ Các VấN Đề





Trong bài đăng này, chúng tôi sẽ xây dựng một đồng hồ đo lưu lượng nước kỹ thuật số sử dụng Arduino và màn hình LCD 16 x 2. Chúng ta sẽ xem xét cảm biến lưu lượng nước YF-S201, cấu tạo và hoạt động của nó cũng như cách giao tiếp với Arduino để trích xuất một số bài đọc hữu ích.

Dự án đề xuất có thể đo tốc độ dòng nước tính bằng lít / phút và tổng lưu lượng nước tính bằng lít.



Chúng ta hãy xem xét cảm biến lưu lượng nước YF-S201.

Hình minh họa YF-S201:

YF-S201 là một Hiệu ứng Hall dựa trên cảm biến nước. Nó có ba đầu cuối 5V (điện áp làm việc danh định), GND và đầu ra. + 5V là dây màu đỏ, dây đen là GND và đầu ra màu vàng.



Cảm biến đưa ra tần số tỷ lệ thuận với lưu lượng nước. Cảm biến YF-S201 có thể đo từ 1 lít / phút đến 30 lít / phút. Áp suất nước phải nhỏ hơn hoặc bằng 1,75 MPa.

Nước có thể được bơm vào từ một đầu và nước chảy qua đầu kia.

Cảm biến có thể được đặt sau van cổng chính của bồn chứa nếu bạn muốn đo lưu lượng nước trong mạng lưới đường ống nước hoặc bạn có thể đặt ngay trước vòi nước để đo lưu lượng nước của vòi đơn.

Vị trí của cảm biến có thể ở bất cứ đâu tùy theo nhu cầu của người dùng nhưng phải cẩn thận để tránh rò rỉ nước.

Cảm biến có một nam châm và cảm biến Hiệu ứng Hall Nếu chúng ta nhìn vào các mặt của cảm biến lưu lượng nước, chúng ta có thể chứng kiến ​​một tuabin nhựa trong đường dẫn của dòng nước.

Một nam châm hình tròn được nhúng ở tâm của tuabin và cảm biến Hiệu ứng Hall được niêm phong và bảo vệ khỏi độ ẩm và đặt phía trên nam châm. Cảm biến Hiệu ứng Hall tạo ra một xung cho mỗi vòng quay của tuabin.

Dạng sóng dòng nước trên máy vẽ nối tiếp

Chúng ta có thể thấy các xung được tạo ra bởi cảm biến lưu lượng nước trên máy vẽ nối tiếp của arduino IDE, được hiển thị bên dưới (Sử dụng Máy hiện sóng đơn kênh Arduino).

Chúng tôi đã thổi không khí qua cảm biến để quay tuabin như một thử nghiệm và dạng sóng được tạo ra được hiển thị ở trên. Dạng sóng dày đặc hơn ở phía bên trái biểu thị tần số cao hơn và tốc độ quay của tuabin nhanh hơn, dạng sóng ít dày đặc hơn ở phía bên phải biểu thị ngược lại.

Dòng nước phù hợp cho ra tần số đầu ra nhất quán.

Chúng ta phải chuyển đổi tần số thành thang đo lít / phút. Để làm được điều này, nhà sản xuất đã đưa ra công thức:

Tốc độ dòng nước (lít / phút) = tần số / 7,5

Vì vậy, chúng ta cần đo tần số được tạo ra và áp dụng công thức trên trong mã chương trình.

Thông số kỹ thuật của YF-S201:

· Độ chính xác: +/- 10%, nếu bạn cần độ chính xác tốt hơn, chúng tôi cần hiệu chỉnh.

· Nhiệt độ làm việc: -25 đến + 80 độ C.

· Độ ẩm làm việc: 35% đến 80% RH.

· Chu kỳ nhiệm vụ đầu ra: 50% +/- 10%.

· Áp lực nước tối đa: 1.75 MPa.

· Xung mỗi lít: 450.

· Dòng điện tối đa rút ra: 15 mA ở 5V

Điều đó kết luận về cảm biến lưu lượng nước YF-S201.

Bây giờ chúng ta hãy chuyển sang giản đồ.

Sơ đồ:

Chân đầu ra của cảm biến lưu lượng nước được kết nối với A0 của Arduino. Sử dụng Chiết áp 10K để điều chỉnh độ tương phản màn hình. Nối dây Arduino và Màn hình LCD theo sơ đồ trên.

Mã chương trình:

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

Nguyên mẫu của Tác giả:

“L / Min” cho biết tốc độ dòng nước hiện tại và “Total” cho biết tổng lượng nước đã chảy kể từ khi mạch BẬT.

Bạn cũng có thể chảy bất kỳ chất lỏng nào có giá trị độ nhớt gần với nước.

Nếu bạn có bất kỳ câu hỏi nào liên quan đến thiết bị đo lưu lượng nước kỹ thuật số sử dụng Arduino này, đừng ngại bày tỏ trong phần bình luận, bạn có thể sẽ nhận được phản hồi nhanh chóng.




Trước: Cần điều khiển Xe RC 2,4 GHz sử dụng Arduino Tiếp theo: Tạo bộ chuyển đổi Buck này bằng Arduino