วงจรวัดการไหลของน้ำแบบดิจิตอลอย่างง่ายโดยใช้ Arduino

ลองใช้เครื่องมือของเราเพื่อกำจัดปัญหา





ในโพสต์นี้เราจะสร้างเครื่องวัดการไหลของน้ำแบบดิจิตอลโดยใช้ Arduino และจอ LCD 16 x 2 เราจะดูเซ็นเซอร์การไหลของน้ำ YF-S201 โครงสร้างและการทำงานและวิธีการเชื่อมต่อกับ Arduino เพื่อดึงการอ่านที่มีประโยชน์

โครงการที่นำเสนอสามารถวัดอัตราการไหลของน้ำเป็นลิตร / นาทีและการไหลของน้ำทั้งหมดเป็นลิตร



มาดูเซ็นเซอร์การไหลของน้ำ YF-S201 กัน

ภาพประกอบของ YF-S201:

YF-S201 คือ ตาม Hall Effect เซ็นเซอร์น้ำ มีสามขั้ว 5V (แรงดันใช้งานเล็กน้อย), GND และเอาต์พุต + 5V เป็นสายสีแดงสายสีดำคือ GND และสายสีเหลืองจะถูกส่งออก



เซ็นเซอร์ให้ความถี่ตามสัดส่วนโดยตรงกับการไหลของน้ำ เซ็นเซอร์ YF-S201 สามารถวัดได้ตั้งแต่ 1 ลิตร / นาทีถึง 30 ลิตร / นาที แรงดันน้ำควรน้อยกว่าหรือเท่ากับ 1.75 MPa

น้ำสามารถฉีดจากปลายด้านหนึ่งและน้ำไหลผ่านอีกด้านหนึ่ง

เซ็นเซอร์อาจวางไว้หลังวาล์วประตูหลักของถังหากคุณต้องการวัดการไหลของน้ำในเครือข่ายของท่อน้ำหรือคุณสามารถวางไว้หน้าก๊อกน้ำเพื่อวัดการไหลของน้ำของก๊อกเดียว

ตำแหน่งของเซ็นเซอร์สามารถอยู่ที่ใดก็ได้ตามความต้องการของผู้ใช้ แต่ต้องใช้ความระมัดระวังเพื่อหลีกเลี่ยงการรั่วไหลของน้ำ

เซ็นเซอร์มี แม่เหล็กและเซ็นเซอร์ Hall Effect หากเราดูที่ด้านข้างของเซ็นเซอร์การไหลของน้ำเราจะเห็นกังหันพลาสติกในเส้นทางการไหลของน้ำ

แม่เหล็กรูปทรงกลมฝังอยู่ที่กึ่งกลางของกังหันและเซ็นเซอร์ Hall Effect ถูกปิดผนึกและป้องกันความชื้นและวางไว้เหนือแม่เหล็ก เซ็นเซอร์ Hall Effect สร้างพัลส์สำหรับทุกการปฏิวัติของกังหัน

รูปคลื่นการไหลของน้ำใน Serial Plotter

เราสามารถเห็นพัลส์ที่สร้างขึ้นโดยเซ็นเซอร์การไหลของน้ำบนพล็อตเตอร์อนุกรมของ arduino IDE ที่แสดงด้านล่าง (ใช้ Arduino Single channel Oscilloscope)

เราเป่าอากาศผ่านเซ็นเซอร์ไปยัง หมุนกังหัน เป็นการทดสอบและรูปคลื่นที่สร้างขึ้นจะแสดงไว้ด้านบน รูปคลื่นที่หนาแน่นขึ้นทางด้านซ้ายแสดงถึงความถี่ที่สูงขึ้นและการหมุนของกังหันที่เร็วขึ้นรูปคลื่นที่มีความหนาแน่นน้อยกว่าทางด้านขวามือแสดงถึงในทางกลับกัน

การไหลของน้ำที่สม่ำเสมอให้เอาต์พุตความถี่ที่สม่ำเสมอ

เราต้อง แปลงความถี่ เป็นลิตร / นาที ในการทำเช่นนี้ผู้ผลิตได้กำหนดสูตร:

อัตราการไหลของน้ำ (ลิตร / นาที) = ความถี่ / 7.5

ดังนั้นเราจำเป็นต้องวัดความถี่ที่สร้างขึ้นและใช้สูตรข้างต้นในโค้ดโปรแกรม

ข้อมูลจำเพาะทางเทคนิคของ YF-S201:

·ความแม่นยำ: +/- 10% หากคุณต้องการความแม่นยำที่ดีขึ้นเราจำเป็นต้องปรับเทียบ

·อุณหภูมิในการทำงาน: -25 ถึง + 80 องศาเซลเซียส

·ความชื้นในการทำงาน: 35% ถึง 80% RH

·รอบการส่งออก: 50% +/- 10%

·แรงดันน้ำสูงสุด: 1.75 MPa

·พัลส์ต่อลิตร: 450

·การดึงกระแสสูงสุด: 15 mA ที่ 5V

สรุปได้ว่าเซ็นเซอร์การไหลของน้ำ YF-S201

ตอนนี้เราจะย้ายไปที่แผนผัง

แผนภาพ:

ขาเอาต์พุตของเซ็นเซอร์การไหลของน้ำเชื่อมต่อกับ A0 ของ Arduino ใช้ โพเทนชิออมิเตอร์ 10K สำหรับปรับความคมชัดของการแสดงผล ต่อสาย Arduino และ จอ LCD ตามแผนภาพด้านบน

รหัสโปรแกรม:

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

ต้นแบบของผู้แต่ง:

“ L / Min” ระบุอัตราการไหลของน้ำในปัจจุบันและ“ Total” แสดงถึงปริมาณน้ำทั้งหมดที่ไหลตั้งแต่เปิดวงจร

คุณยังสามารถไหลของเหลวใด ๆ ที่มีค่าความหนืดใกล้กับน้ำ

หากคุณมีคำถามใด ๆ เกี่ยวกับเครื่องวัดการไหลของน้ำดิจิตอลโดยใช้ Arduino อย่าลังเลที่จะแสดงความคิดเห็นในส่วนความคิดเห็นคุณอาจได้รับคำตอบอย่างรวดเร็ว




คู่ของ: จอยสติ๊กควบคุม 2.4 GHz RC Car โดยใช้ Arduino ถัดไป: สร้าง Buck Converter โดยใช้ Arduino