เซนเซอร์วัดอัตราการไหลของน้ำ Hall Effect Flow Meter YF-S201 ใช้หลักการแปลงการหมุนของใบพัดให้เป็นสัญญาณไฟฟ้า
1.ต่ออุปกรณ์
.png?alt=media&token=331070e8-8573-4b7b-b169-8e74b834b05e)
Hall Effect Flow Meter > Arduino UNO
แดง>5Vดำ>GNDเหลือง>PIN 2
2.ลงโปรแกรม
Copy โค้ดด้านล่าง
Arduino
1volatile int flow_frequency; // Measures flow sensor pulses
2unsigned int l_hour; // Calculated litres/hour
3unsigned char flowsensor = 2; // Sensor Input
4unsigned long currentTime;
5unsigned long cloopTime;
6 void flow () // Interrupt function
7 {
8flow_frequency++;
9 }
10void setup()
11{
12pinMode(flowsensor, INPUT);
13digitalWrite(flowsensor, HIGH); // Optional Internal Pull-Up
14 Serial.begin(9600);
15attachInterrupt(0, flow, RISING); // Setup Interrupt
16sei(); // Enable interrupts
17currentTime = millis();
18cloopTime = currentTime;
19}
20
21void loop ()
22 {
23currentTime = millis();
24 // Every second, calculate and print litres/hour
25 if(currentTime >= (cloopTime + 1000))
26 {
27cloopTime = currentTime; // Updates cloopTime
28 // Pulse frequency (Hz) = 7.5Q, Q is flow rate in L/min.
29l_hour = (flow_frequency * 60 / 7.5); // (Pulse frequency x 60 min) / 7.5Q = flowrate in L/hour
30flow_frequency = 0; // Reset Counter
31Serial.print(l_hour, DEC); // Print litres/hour
32Serial.println(" L/hour");
33}
34}1volatile int flow_frequency; // Measures flow sensor pulses
2unsigned int l_hour; // Calculated litres/hour
3unsigned char flowsensor = 2; // Sensor Input
4unsigned long currentTime;
5unsigned long cloopTime;
6 void flow () // Interrupt function
7 {
8flow_frequency++;
9 }
10void setup()
11{
12pinMode(flowsensor, INPUT);
13digitalWrite(flowsensor, HIGH); // Optional Internal Pull-Up
14 Serial.begin(9600);
15attachInterrupt(0, flow, RISING); // Setup Interrupt
16sei(); // Enable interrupts
17currentTime = millis();
18cloopTime = currentTime;
19}
20
21void loop ()
22 {
23currentTime = millis();
24 // Every second, calculate and print litres/hour
25 if(currentTime >= (cloopTime + 1000))
26 {
27cloopTime = currentTime; // Updates cloopTime
28 // Pulse frequency (Hz) = 7.5Q, Q is flow rate in L/min.
29l_hour = (flow_frequency * 60 / 7.5); // (Pulse frequency x 60 min) / 7.5Q = flowrate in L/hour
30flow_frequency = 0; // Reset Counter
31Serial.print(l_hour, DEC); // Print litres/hour
32Serial.println(" L/hour");
33}
34}
3.ผลลัพธ์
เมื่อมีน้ำไหลผ่านเซนเซอร์ จะแสดงผลเป็นอัตรากาลไหลของน้ำ หน่วยเป็น ลิตร/ชั่วโมง
.png?alt=media&token=aa6dbb07-658d-4557-a7f7-22b98a0337cc)
