วัดการไหลของของเหลวหรือปริมาณการใช้ เป็นสิ่งสำคัญในบางกรณีและสำหรับสิ่งนี้คุณต้องมีเครื่องวัดการไหล ตัวอย่างเช่นหากคุณติดตาม Formula 1 คุณจะรู้ว่า FIA บังคับให้ทีมต่างๆใช้เครื่องวัดการไหลในเครื่องยนต์เพื่อตรวจจับปริมาณการใช้ที่แต่ละทีมทำในรถของพวกเขาและหลีกเลี่ยงกับดักที่เป็นไปได้โดยการฉีดไหลมากขึ้นเพื่อให้ได้มากขึ้น กำลังเครื่องยนต์ในบางครั้งหรือวิธีการใช้น้ำมันในการเผาไหม้เครื่องยนต์ ...
แต่นอก F1 คุณอาจสนใจที่จะมีอุปกรณ์เหล่านี้เพื่อให้ทราบว่าระบบมีการใช้น้ำหรือของเหลวอื่น ๆ เท่าใดหรือกำหนดอัตราการไหลของท่อที่ดึงออกมาจากถังเพื่อกำหนดเวลาที่จะใช้ ระบบชลประทานในสวนอัตโนมัติ ฯลฯ การใช้งานองค์ประกอบเหล่านี้มีมากมายคุณสามารถกำหนดขีด จำกัด ด้วยตัวคุณเอง
Flowmeter หรือเครื่องวัดการไหล
คุณควรรู้ได้อย่างไร กระแส คือปริมาณของเหลวหรือของไหลที่ไหลเวียนผ่านท่อหรือต้นขั้วต่อหนึ่งหน่วยเวลา มีหน่วยวัดเป็นหน่วยปริมาตรหารด้วยหน่วยเวลาเช่นลิตรต่อนาทีลิตรต่อชั่วโมงลูกบาศก์เมตรต่อชั่วโมงลูกบาศก์เมตรต่อวินาทีเป็นต้น (ลิตร / นาที, ลิตร / ชม., ม. / ชม., ... )
เครื่องวัดการไหลคืออะไร?
El เครื่องวัดการไหลหรือเครื่องวัดของไหล เป็นอุปกรณ์ที่สามารถวัดปริมาณการไหลที่ไหลผ่านท่อได้ มีหลายรุ่นและผู้ผลิตที่สามารถรวมเข้ากับ Arduino ได้อย่างง่ายดาย อัตราการไหลนี้จะขึ้นอยู่กับปัจจัยหลายประการเช่นส่วนของท่อและแรงดันจ่าย
ด้วยการควบคุมพารามิเตอร์ทั้งสองนี้และด้วยเครื่องวัดการไหลที่วัดการไหลคุณสามารถมีระบบควบคุมที่ซับซ้อนสำหรับของเหลวได้ มีประโยชน์มากสำหรับระบบอัตโนมัติในบ้านหรือโครงการอิเล็กทรอนิกส์และอุตสาหกรรมอื่น ๆ สำหรับโครงการบ้านผู้ผลิตมี รุ่นที่รู้จักกันดีเช่น YF-S201, FS300A, FS400Aฯลฯ
ประเภทมิเตอร์
ในตลาดคุณจะพบ หลากหลายชนิด ของเครื่องวัดการไหลหรือเครื่องวัดการไหลขึ้นอยู่กับการใช้งานที่คุณให้ไว้และงบประมาณที่คุณต้องการลงทุน นอกจากนี้บางส่วนมีความเฉพาะเจาะจงสำหรับของเหลวเช่นน้ำน้ำมันเชื้อเพลิงน้ำมันอื่น ๆ มีความแม่นยำมากกว่าหรือน้อยกว่าโดยมีราคาตั้งแต่ไม่กี่ยูโรไปจนถึงหลายพันยูโรในบางประเภทที่ก้าวหน้ามากในระดับอุตสาหกรรม:
- เครื่องวัดการไหลแบบเครื่องกล: เป็นมิเตอร์ทั่วไปที่ทุกคนมีในบ้านเพื่อวัดค่าน้ำที่พวกเขาใช้ในหน่วยเมตร การไหลจะเปลี่ยนกังหันที่เคลื่อนเพลาที่เชื่อมต่อกับตัวนับเชิงกลที่สะสมการอ่าน เป็นกลไกในกรณีนี้ไม่สามารถรวมเข้ากับ Arduino ได้
- เครื่องวัดการไหลแบบอัลตราโซนิก- ใช้กันอย่างแพร่หลายในอุตสาหกรรม แต่มีราคาแพงมากสำหรับใช้ในบ้าน คุณสามารถวัดอัตราการไหลตามเวลาที่อัลตร้าซาวด์ผ่านของเหลวที่จะวัดได้
- มิเตอร์แม่เหล็กไฟฟ้า: มักใช้ในอุตสาหกรรมสำหรับท่อขนาดไม่เกิน 40 นิ้วและแรงดันสูง มีราคาแพงมากและใช้ระบบแม่เหล็กไฟฟ้าในการวัด
- เครื่องวัดการไหลของกังหันอิเล็กทรอนิกส์: ต้นทุนต่ำและแม่นยำมาก นี่คือสิ่งที่คุณสามารถรวมเข้ากับ Arduino ของคุณได้อย่างง่ายดายและใช้สำหรับสภาพแวดล้อมภายในบ้านด้วย พวกเขาใช้กังหันที่มีใบมีดที่หมุนเมื่อของไหลไหลผ่านและเซ็นเซอร์ Hall effect จะคำนวณการไหลตาม RPM ที่ไปถึงในเทิร์น ปัญหาคือการล่วงล้ำมีแรงดันตกสูงและมีการเสื่อมสภาพในส่วนต่างๆจึงอยู่ได้ไม่นาน ...
เนื่องจากเรามีความสนใจในด้านอิเล็กทรอนิกส์เรากำลังจะศึกษาต่อไป ...
Flowmeters สำหรับ Arduino และหาซื้อได้ที่ไหน
ลอส เครื่องวัดการไหลประเภทอิเล็กทรอนิกส์ที่ใช้ใน Arduinoเช่นเดียวกับ YF-S201, YF-S401, FS300A และ FS400A พวกเขามีตัวเรือนพลาสติกและโรเตอร์ที่มีใบมีดอยู่ข้างในดังที่ฉันได้กล่าวไว้ก่อนหน้านี้ แม่เหล็กที่ยึดกับโรเตอร์และการหมุนโดยผลกระทบของฮอลล์จะกำหนดการไหลหรือปริมาณการใช้ที่กำลังวัดอยู่ตลอดเวลา เอาต์พุตของเซ็นเซอร์จะเป็นคลื่นสี่เหลี่ยมที่มีความถี่เป็นสัดส่วนกับการไหลผ่าน
ปัจจัยการแปลง K ที่เรียกว่าระหว่างความถี่ (Hz) และการไหล (l / min) ขึ้นอยู่กับพารามิเตอร์ที่ผู้ผลิตกำหนดให้กับเซ็นเซอร์ดังนั้นจึงไม่เหมือนกันสำหรับทุกคน ใน เอกสารข้อมูลหรือข้อมูลรุ่น ที่คุณซื้อจะมีค่าเหล่านี้เพื่อให้คุณสามารถใช้ในรหัส Arduino ได้ ความแม่นยำจะไม่เหมือนกันแม้ว่าโดยทั่วไปแล้วสิ่งเหล่านี้สำหรับ Arduino มักจะแตกต่างกันระหว่าง 10% ด้านบนหรือด้านล่างตามการไหลของกระแส
ลอส รุ่นที่แนะนำ เสียง:
- วายเอฟ-S201: มีการเชื่อมต่อสำหรับท่อ 1/4″ เพื่อวัดการไหลระหว่าง 0.3 ถึง 6 ลิตรต่อนาที ความดันสูงสุดที่ทนได้คือ 0.8 MPa โดยมีอุณหภูมิของเหลวสูงสุดถึง80ºC แรงดันไฟฟ้าทำงานระหว่าง 5-18v.
- วายเอฟ-S401: ในกรณีนี้การเชื่อมต่อกับท่อคือ 1/2″ แม้ว่าคุณจะสามารถใช้ตัวแปลงได้ตลอดเวลา การไหลจะวัดได้ตั้งแต่ 1 ถึง 30 ลิตร / นาทีโดยมีแรงดันสูงถึง 1.75 MPa และอุณหภูมิของของเหลวสูงถึง80ºC อย่างไรก็ตามแรงดันไฟฟ้ายังคงอยู่ที่ 5-18v
- FS300A: แรงดันไฟฟ้าเดียวกันและอุณหภูมิสูงสุดเดียวกันกับก่อนหน้านี้ ในกรณีนี้สำหรับท่อ 3/4″ โดยมีอัตราการไหลสูงสุด 1 ถึง 60 ลิตร / นาทีและแรงดัน 1.2 MPa
- ผลิตภัณฑ์ที่ไม่พบ: มันยังรักษาแรงดันไฟฟ้าและอุณหภูมิสูงสุดตามทางเลือกอื่น ๆ อีกทั้งการไหลและความดันสูงสุดจะเหมือนกับ FS300A สิ่งเดียวที่แตกต่างกันคือหลอดมีขนาด 1 นิ้ว
คุณต้องเลือกสิ่งที่คุณสนใจที่สุดสำหรับโครงการของคุณ ...
บูรณาการกับ Arduino: ตัวอย่างที่ใช้ได้จริง
La การเชื่อมต่อเครื่องวัดการไหลของคุณนั้นง่ายมาก. โดยปกติแล้วจะมีสายเคเบิล 3 เส้นสายหนึ่งสำหรับการรวบรวมข้อมูลเกี่ยวกับการไหลและอีกสองสายสำหรับการจ่ายไฟ ข้อมูลสามารถเชื่อมต่อกับอินพุต Arduino ที่เหมาะกับคุณที่สุดจากนั้นตั้งโปรแกรมรหัสร่าง และตัวกำลังหนึ่งคือ 5V และอีกตัวหนึ่งเป็น GND และนั่นก็เพียงพอแล้วที่จะเริ่มทำงาน
แต่เพื่อให้มีฟังก์ชันบางอย่างก่อนอื่นคุณต้องสร้างไฟล์ รหัสใน Arduino IDE. วิธีการใช้เซ็นเซอร์การไหลนี้มีมากมายและวิธีการตั้งโปรแกรมแม้ว่าคุณจะมีที่นี่ก็ตาม ตัวอย่างที่ใช้งานได้จริงและเรียบง่าย เพื่อให้คุณสามารถเริ่มดูว่ามันทำงานอย่างไร:
const int sensorPin = 2; const int measureInterval = 2500; volatile int pulseConter; // Si vas a usar el YF-S201, como en este caso, es 7.5. //Pero si vas a usar otro como el FS300A debes sustituir el valor por 5.5, o 3.5 en el FS400A, etc. const float factorK = 7.5; void ISRCountPulse() { pulseConter++; } float GetFrequency() { pulseConter = 0; interrupts(); delay(measureInterval); noInterrupts(); return (float)pulseConter * 1000 / measureInterval; } void setup() { Serial.begin(9600); attachInterrupt(digitalPinToInterrupt(sensorPin), ISRCountPulse, RISING); } void loop() { // Con esto se obtiene la frecuencia en Hz float frequency = GetFrequency(); // Y con esto se calcula el caudal en litros por minuto float flow_Lmin = frequency / factorK; Serial.print("Frecuencia obtenida: "); Serial.print(frequency, 0); Serial.print(" (Hz)\tCaudal: "); Serial.print(flow_Lmin, 3); Serial.println(" (l/min)"); }
และถ้าคุณต้องการ ได้รับการบริโภคจากนั้นคุณสามารถใช้รหัสอื่นนี้หรือรวมทั้งสองอย่างเพื่อให้มีทั้งสองอย่าง ... สำหรับการบริโภคการไหลที่ทำได้จะต้องรวมเข้ากับเวลา:
const int sensorPin = 2; const int measureInterval = 2500; volatile int pulseConter; //Para el YF-S201 es 7.5, pero recuerda que lo debes modificar al factor k de tu modelo const float factorK = 7.5; float volume = 0; long t0 = 0; void ISRCountPulse() { pulseConter++; } float GetFrequency() { pulseConter = 0; interrupts(); delay(measureInterval); noInterrupts(); return (float)pulseConter * 1000 / measureInterval; } void SumVolume(float dV) { volume += dV / 60 * (millis() - t0) / 1000.0; t0 = millis(); } void setup() { Serial.begin(9600); attachInterrupt(digitalPinToInterrupt(sensorPin), ISRCountPulse, RISING); t0 = millis(); } void loop() { // Obtención del afrecuencia float frequency = GetFrequency(); //Calcular el caudal en litros por minuto float flow_Lmin = frequency / factorK; SumVolume(flow_Lmin); Serial.print(" El caudal es de: "); Serial.print(flow_Lmin, 3); Serial.print(" (l/min)\tConsumo:"); Serial.print(volume, 1); Serial.println(" (L)"); }
คุณรู้อยู่แล้วว่าขึ้นอยู่กับสิ่งที่คุณต้องการคุณต้องแก้ไขรหัสนี้นอกจากนี้สิ่งสำคัญมากที่จะต้องใส่ ปัจจัย K ของรุ่นที่คุณซื้อหรือจะไม่ใช้การวัดจริง อย่าลืม!