การใช้งาน Water Flow Sensor กับ Arduino

การใช้งาน Water Flow Sensor กับ Arduino
Water Flow Sensor คือ Sensor ที่ทำหน้าที่ในการวัดอัตราการไหลของของเหลว ที่ไหลผ่านตัวSensorหรือนำค่าที่วัดได้มาคำนวณเป็นปริมาณน้ำก็ได้ครับ  โดยปกติแล้วค่าที่วัดได้จะออกมาเป็นสัญญาณ Pulse(เกือบทุกรุ่นจะเหมือนกัน) โดยปกติแล้วเราจะใช้ขา EXT Interrupt รับค่า เหมือนๆกับ Encoder

ตัวที่นำมาทดลองให้ดูวันนี้จะเป็น Water Flow Sensor SEN-HZ21WA

water-flow-sensor-arduino1

โดยจะมี3 ขา
VCC  (แดง) 12VDC
GROUND (ดำ)
SIGNAL (เหลือง)

อุปกรณ์
1.Arduino NANO
2.Water Flow Sensor SEN-HZ21WA

waterflow-sensor-arduino

ตัวอย่างโปรแกรม Water Flow Sensor กับ Arduino

volatile int flow_frequency;               // Water flow 
unsigned int l_hour,f_val;                 // Water flow  
unsigned long ctTime,flow_val,cloopTime;   // Water flow
void flow () //  Water flow Interrupt function
{
   flow_frequency++;  f_val++;
}
void setup()
{
   Serial.begin(9600);
   attachInterrupt(1, flow, RISING);  sei();   ctTime = millis();  cloopTime = ctTime; // Water flow
}
void loop ()
{
   ctTime = millis();
   if(ctTime >= (cloopTime + 1000))
   {
      cloopTime = ctTime;
      l_hour = (flow_frequency * 60 / 7.5);    
      flow_frequency = 0; 
      Serial.print(l_hour, DEC);     Serial.print(" L/hour");      
   }
   if(f_val>=450){flow_val++;f_val=0;}
   Serial.println(flow_val);Serial.println("L"); 
   
}
Facebook Comments