สารบัญ:

UltraSonic Liquid Level Controller: 6 ขั้นตอน (พร้อมรูปภาพ)
UltraSonic Liquid Level Controller: 6 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: UltraSonic Liquid Level Controller: 6 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: UltraSonic Liquid Level Controller: 6 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: Sustainable Living: Water Level Monitoring With Ultrasonic Sensor, Blynk And ChatGPT Generated Code 2024, กรกฎาคม
Anonim
ตัวควบคุมระดับของเหลว UltraSonic
ตัวควบคุมระดับของเหลว UltraSonic

บทนำอย่างที่คุณอาจทราบ อิหร่านมีสภาพอากาศแห้ง และขาดแคลนน้ำในประเทศของฉัน บางครั้งโดยเฉพาะในฤดูร้อนจะเห็นได้ว่ารัฐบาลมีการตัดน้ำ อพาร์ตเมนต์ส่วนใหญ่มีถังเก็บน้ำ มีถังเก็บน้ำ 1500 ลิตรในอพาร์ตเมนต์ของเราซึ่งให้น้ำ นอกจากนี้ยังมียูนิตพักอาศัย 12 ยูนิตในอพาร์ตเมนต์ของเรา ส่งผลให้คาดว่าถังน้ำมันจะว่างเปล่าในเร็วๆ นี้ มีเครื่องสูบน้ำติดถังส่งน้ำเข้าอาคาร เมื่อใดก็ตามที่ถังว่างเปล่า ปั๊มจะทำงานโดยไม่มีน้ำ สถานการณ์นี้ทำให้อุณหภูมิของมอเตอร์เพิ่มขึ้น และในระหว่างนั้นก็อาจทำให้ปั๊มเสียได้ ไม่นานมานี้ ปั๊มนี้เกิดขัดข้องเป็นครั้งที่สองสำหรับเรา และหลังจากเปิดมอเตอร์ เราพบว่าสายไฟขดลวดไหม้ หลังจากที่เราเปลี่ยนปั๊ม เพื่อป้องกันปัญหานี้อีกครั้ง ฉันตัดสินใจสร้างตัวควบคุมระดับน้ำ ฉันวางแผนที่จะสร้างวงจรเพื่อตัดการจ่ายไฟของปั๊มเมื่อใดก็ตามที่น้ำต่ำกว่าขีดจำกัดต่ำในถัง ปั๊มจะไม่ทำงานจนกว่าน้ำจะขึ้นถึงขีดจำกัดสูง หลังจากผ่านขีด จำกัด สูงแล้ววงจรจะเชื่อมต่อแหล่งจ่ายไฟอีกครั้ง ในตอนแรกฉันค้นหาทางอินเทอร์เน็ตเพื่อดูว่าฉันสามารถหาวงจรที่เหมาะสมได้หรือไม่ อย่างไรก็ตาม ฉันไม่พบสิ่งที่เหมาะสม มีตัวบ่งชี้น้ำที่ใช้ Arduino แต่ไม่สามารถแก้ปัญหาของฉันได้ ด้วยเหตุนี้ ฉันจึงตัดสินใจออกแบบตัวควบคุมระดับน้ำของฉัน แพ็คเกจแบบครบวงจรพร้อมส่วนต่อประสานผู้ใช้แบบกราฟิกที่ตรงไปตรงมาเพื่อตั้งค่าพารามิเตอร์ นอกจากนี้ ฉันพยายามพิจารณามาตรฐาน EMC เพื่อให้แน่ใจว่าอุปกรณ์ใช้งานได้ในสถานการณ์ต่างๆ

ขั้นตอนที่ 1: หลักการ

หลักการ
หลักการ

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

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

ขั้นตอนที่ 2: เซนเซอร์ พาวเวอร์ซัพพลาย และคอนโทรลเลอร์

เซนเซอร์ พาวเวอร์ซัพพลาย และคอนโทรลเลอร์
เซนเซอร์ พาวเวอร์ซัพพลาย และคอนโทรลเลอร์
เซนเซอร์ พาวเวอร์ซัพพลาย และคอนโทรลเลอร์
เซนเซอร์ พาวเวอร์ซัพพลาย และคอนโทรลเลอร์
เซนเซอร์ พาวเวอร์ซัพพลาย และคอนโทรลเลอร์
เซนเซอร์ พาวเวอร์ซัพพลาย และคอนโทรลเลอร์
เซนเซอร์ พาวเวอร์ซัพพลาย และคอนโทรลเลอร์
เซนเซอร์ พาวเวอร์ซัพพลาย และคอนโทรลเลอร์

ฮาร์ดแวร์

สำหรับเซ็นเซอร์ ฉันใช้เซ็นเซอร์อัลตราโซนิกกันน้ำ JSN-SR04T ขั้นตอนการทำงานเหมือนกับ HC-SR04 (echo และ trig pin)

ข้อมูลจำเพาะ:

  • ระยะห่าง: 25 ซม. ถึง 450 ซม.
  • แรงดันใช้งาน: DC 3.0-5.5V
  • ปัจจุบันทำงาน: <8mA
  • ความแม่นยำ: ±1cm
  • ความถี่: 40khz
  • อุณหภูมิในการทำงาน: -20 ~ 70 ℃

โปรดทราบว่าคอนโทรลเลอร์นี้มีข้อจำกัดบางประการ ตัวอย่างเช่น:1- JSN-SR04T ไม่สามารถวัดระยะทางที่ต่ำกว่า 25 ซม. ดังนั้นคุณต้องติดตั้งเซ็นเซอร์เหนือผิวน้ำอย่างน้อย 25 ซม. นอกจากนี้ การวัดระยะทางสูงสุดคือ 4.5M. ดังนั้นเซ็นเซอร์นี้จึงไม่เหมาะกับรถถังขนาดใหญ่ 2- ความแม่นยำคือ 1 ซม. สำหรับเซ็นเซอร์นี้ ด้วยเหตุนี้ ขึ้นอยู่กับขนาดเส้นผ่าศูนย์กลางของถัง ความละเอียดของปริมาตรที่อุปกรณ์จะแสดงสามารถเปลี่ยนแปลงได้ 3- ความเร็วของเสียงอาจแตกต่างกันไปตามอุณหภูมิ ด้วยเหตุนี้ ความแม่นยำจึงอาจได้รับผลกระทบจากภูมิภาคต่างๆ อย่างไรก็ตาม ข้อจำกัดเหล่านี้ไม่สำคัญสำหรับฉัน และความแม่นยำก็เหมาะสม

ผู้ควบคุม

ฉันใช้ STM32F030K6T6 ARM Cortex M0 จาก STMicroelectronics คุณสามารถดูข้อมูลจำเพาะของไมโครคอนโทรลเลอร์นี้ได้ที่นี่

พาวเวอร์ซัพพลาย

ส่วนแรกคือการแปลง 220V/50Hz (ไฟฟ้าอิหร่าน) เป็น 12VDC เพื่อจุดประสงค์นี้ ฉันใช้ HLK-PM12 โมดูลจ่ายไฟแบบสเต็ปดาวน์ ตัวแปลง AC/DC นี้สามารถแปลง 90 ~ 264 VAC เป็น 12VDC ด้วยกระแสไฟขาออก 0.25A

อย่างที่คุณอาจทราบแล้ว โหลดอุปนัยบนรีเลย์อาจทำให้เกิดปัญหาหลายประการกับวงจรและแหล่งจ่ายไฟ และปัญหาในแหล่งจ่ายไฟอาจทำให้เกิดความไม่คงที่ โดยเฉพาะอย่างยิ่งในไมโครคอนโทรลเลอร์ วิธีแก้ไขคือแยกแหล่งจ่ายไฟออก นอกจากนี้ คุณต้องใช้วงจร snubber บนหน้าสัมผัสรีเลย์ มีหลายวิธีในการแยกแหล่งจ่ายไฟ ตัวอย่างเช่น คุณสามารถใช้หม้อแปลงไฟฟ้าที่มีสองเอาต์พุต นอกจากนี้ยังมีตัวแปลง DC/DC แบบแยกออกมาในขนาดเล็กที่สามารถแยกเอาต์พุตออกจากอินพุตได้ ฉันใช้ MINMAX MA03-12S09 เพื่อจุดประสงค์นี้ เป็นตัวแปลง DC/DC 3W พร้อมตัวแยก

ขั้นตอนที่ 3: IC หัวหน้างาน

หัวหน้างานIC
หัวหน้างานIC

ตามหมายเหตุของแอป TI: ตัวควบคุมแรงดันไฟฟ้า (หรือที่เรียกว่าวงจรรวมรีเซ็ต [IC]) เป็นจอภาพแรงดันไฟฟ้าชนิดหนึ่งที่ตรวจสอบแหล่งจ่ายไฟของระบบ ตัวควบคุมแรงดันไฟฟ้ามักใช้กับโปรเซสเซอร์ ตัวควบคุมแรงดันไฟฟ้า และซีเควนเซอร์ โดยทั่วไปซึ่งจำเป็นต้องมีการตรวจจับแรงดันหรือกระแสไฟฟ้า หัวหน้างานตรวจสอบรางแรงดันไฟฟ้าเพื่อให้แน่ใจว่าเปิดเครื่อง ตรวจจับความผิดปกติ และสื่อสารกับโปรเซสเซอร์แบบฝังเพื่อให้แน่ใจว่าระบบมีสุขภาพสมบูรณ์ คุณสามารถค้นหาบันทึกย่อของแอปนี้ได้ที่นี่ แม้ว่าไมโครคอนโทรลเลอร์ STM32 จะมีตัวควบคุมในตัว เช่น การเปิดเครื่องมอนิเตอร์อุปทาน แต่ฉันใช้ชิปผู้ควบคุมภายนอกเพื่อให้แน่ใจว่าทุกอย่างจะทำงานได้ดี ในกรณีของฉัน ฉันใช้ TL7705 จาก TI คุณสามารถดูคำอธิบายได้จากเว็บไซต์ Texas Instruments สำหรับ IC ด้านล่างนี้: TL77xxA ตระกูลของตัวควบคุมแรงดันไฟฟ้าของวงจรรวมได้รับการออกแบบมาโดยเฉพาะสำหรับใช้เป็นตัวควบคุมการรีเซ็ตในระบบไมโครคอมพิวเตอร์และไมโครโปรเซสเซอร์ ผู้ควบคุมแรงดันไฟจ่ายจะตรวจสอบแหล่งจ่ายสำหรับสภาวะแรงดันไฟต่ำที่อินพุต SENSE ในระหว่างการเปิดเครื่อง เอาต์พุต RESET จะทำงาน (ต่ำ) เมื่อ VCC บรรลุค่าที่เข้าใกล้ 3.6 V ณ จุดนี้ (สมมติว่า SENSE สูงกว่า VIT+) ฟังก์ชันตัวจับเวลาการหน่วงเวลาจะเปิดใช้งานการหน่วงเวลา หลังจากนั้นจะส่งสัญญาณออก RESET และ RESET(ไม่) ไม่ทำงาน (สูงและต่ำตามลำดับ) เมื่อเกิดสภาวะแรงดันไฟต่ำระหว่างการทำงานปกติ RESET และ RESET(NOT) จะเริ่มทำงาน

ขั้นตอนที่ 4: แผงวงจรพิมพ์ (PCB)

แผงวงจรพิมพ์ (PCB)
แผงวงจรพิมพ์ (PCB)
แผงวงจรพิมพ์ (PCB)
แผงวงจรพิมพ์ (PCB)
แผงวงจรพิมพ์ (PCB)
แผงวงจรพิมพ์ (PCB)
แผงวงจรพิมพ์ (PCB)
แผงวงจรพิมพ์ (PCB)

ฉันออกแบบ PCB เป็นสองชิ้น อันแรกคือ LCD PCB ซึ่งเชื่อมต่อกับเมนบอร์ดด้วยสายแพ/สายแบน ส่วนที่สองคือ PCB คอนโทรลเลอร์ บน PCB นี้ ฉันวางพาวเวอร์ซัพพลาย ไมโครคอนโทรลเลอร์ เซ็นเซอร์อัลตราโซนิก และส่วนประกอบที่เกี่ยวข้อง และยังมีส่วนจ่ายไฟที่เป็นรีเลย์ วาริสเตอร์ และวงจรสนูบเบอร์ อย่างที่คุณอาจทราบแล้ว รีเลย์เชิงกล เช่น รีเลย์ที่ฉันใช้ในวงจรอาจขาดได้หากทำงานตลอดเวลา เพื่อแก้ปัญหานี้ ฉันใช้รีเลย์แบบสัมผัสใกล้ชิด (NC) ตามปกติ ดังนั้นในสถานการณ์ปกติ รีเลย์จะไม่ทำงาน และโดยปกติการสัมผัสใกล้ชิดสามารถนำพลังงานไปยังปั๊มได้ เมื่อใดก็ตามที่น้ำต่ำกว่าขีดจำกัดต่ำ รีเลย์จะเปิดขึ้น และจะตัดไฟ ต้องบอกว่านี่คือเหตุผลที่ฉันใช้วงจร snubber บนหน้าสัมผัส NC และ COM เกี่ยวกับความจริงที่ว่าปั๊มมีกำลังสูง ฉันใช้รีเลย์ 220 ตัวที่สองสำหรับปั๊มนั้น และขับด้วยรีเลย์บน PCB

คุณสามารถดาวน์โหลดไฟล์ PCB เช่นไฟล์ Altium PCB และไฟล์ Gerber ได้จาก GitHub ของฉันที่นี่

ขั้นตอนที่ 5: รหัส

Image
Image
การติดตั้งบนถัง
การติดตั้งบนถัง

ฉันใช้ STM32Cube IDE ซึ่งเป็นโซลูชันแบบครบวงจรสำหรับการพัฒนาโค้ดจาก STMicroelectronics มันขึ้นอยู่กับ Eclipse IDE พร้อมคอมไพเลอร์ GCC ARM นอกจากนี้ยังมี STM32CubeMX อยู่ด้วย คุณสามารถหาข้อมูลเพิ่มเติมได้ที่นี่ ตอนแรก ฉันเขียนโค้ดที่รวมข้อมูลจำเพาะของรถถังของเรา (ความสูงและเส้นผ่านศูนย์กลาง) อย่างไรก็ตาม ฉันตัดสินใจเปลี่ยนเป็น GUI เพื่อตั้งค่าพารามิเตอร์ตามข้อกำหนดที่แตกต่างกัน

ขั้นตอนที่ 6: การติดตั้งบน Tank

การติดตั้งบนถัง
การติดตั้งบนถัง
การติดตั้งบนถัง
การติดตั้งบนถัง

ในที่สุดฉันก็ทำกล่องง่าย ๆ เพื่อป้องกัน PCB จากน้ำ นอกจากนี้ ฉันยังทำรูที่ด้านบนของถังเพื่อใส่เซ็นเซอร์ลงไป

แนะนำ: