ระดับของถังเก็บน้ำพร้อมไมโครคอนโทรลเลอร์


24

ฉันจะวัดระดับของถังเก็บน้ำด้วยไมโครคอนโทรลเลอร์ได้อย่างไร


1
นี่ไม่ใช่สิ่งที่ควรค่าสำหรับคำตอบ แต่เพื่อนของฉันทำสิ่งนี้เพื่อโครงการศิลปะเมื่อสองสามปีก่อน ใครก็ตามที่สนใจฉันยินดีที่จะแนะนำคุณและฉันมั่นใจว่าเขายินดีที่จะอธิบายว่าเขาทำได้อย่างไร โครงการของเขาอยู่ที่นี่: unixarts.com/sealevel.html สิ่งนี้รวมทั้งปั๊มและเซ็นเซอร์และต้องการความแม่นยำเพียงพอในการวนลูปขึ้นและลงโดยไม่เอียงมากเกินไป
cyphunk

7
เมื่อไมโครคอนโทรลเลอร์หยุดทำงาน - มันอยู่ใต้น้ำ
John U

คำตอบ:


23

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

ในธีม 'การเดินทางในระดับที่เฉพาะเจาะจง' คุณจะได้รับสวิตช์เช่นนี้ - โดยทั่วไปการลอยจะมีสวิตช์การตรวจจับทัศนคติบางอย่าง เมื่อระดับน้ำต่ำกว่าระดับน้ำจะลอยอยู่ด้านข้างและสวิตช์จะ 'ปิด' ในขณะที่เพิ่มระดับจะบังคับให้มีการลอยอยู่ในแนวตั้งดังนั้น 'เปิด' เหล่านี้มักจะใช้สำหรับปั๊มหลุม พวกมันค่อนข้างน่าเชื่อถือและจัดการได้ง่ายแม้ว่าคุณจะต้องระมัดระวังในการยึดให้ถูกต้องและคุณต้องแน่ใจว่าไม่มีสิ่งใดเข้ามาขวางได้

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

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

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


15

ฉันรู้ว่าหนังสือที่กำลังจะออกเร็ว ๆ นี้Practical Arduinoมีโครงการเซ็นเซอร์ความลึกของถังเก็บน้ำซึ่งใช้ตัวแปลงสัญญาณแรงดันดิฟเฟอเรนเชียลเพื่อวัดแรงดันน้ำที่ด้านล่างของถังและจากการคำนวณว่าถังเต็ม

Schematics อยู่ที่ลิงค์ด้านบนพร้อมกับลิงค์ไปยังซอร์สโค้ดบน GitHub

(การเปิดเผยอย่างเต็มรูปแบบ: ฉันไม่มีความสัมพันธ์กับหนังสือ แต่ได้พบผู้เขียนหนึ่งในสองครั้งที่แฮ็กเกอร์สเปซของเรา)


11

วิธีที่ฉันชอบ แต่ยังไม่ได้ลองคือใส่แผ่นฉนวนสองแผ่นลงในของเหลว ไม่มีการควบแน่น, ไฟฟ้า, การมีส่วนร่วม ....... พวกเขาสร้างแผ่นของหมวก และถูกใช้ในออสซิลเลเตอร์บางประเภท (เลือกได้ถึงคุณ) เนื่องจากน้ำเป็นมาตรวัดที่ดี frquency ขึ้นอยู่กับปริมาณน้ำระหว่างแผ่นเปลือกโลกอย่างมาก กำหนดความถี่เพื่อให้ได้ความลึก

คุณอาจได้รับผลลัพธ์ที่คล้ายกันโดยใช้สัญญาณ ac และวัดกระแสผ่านหมวก


ใจมันขึ้นอยู่กับค่าคงที่ dialectric ของของเหลว การตรวจจับ capacitive ใช้สำหรับตรวจจับว่ามี / ไม่มีมากกว่าระดับเว้นแต่ว่าฉันเข้าใจผิด ดูเหมือนว่าทุกวิธีที่ฉันพบนั้นขึ้นอยู่กับแรงโน้มถ่วงที่เฉพาะเจาะจง รถถังที่มีของเหลวเป็นองค์ประกอบที่แปรผันยากที่จะควบคุม
wackyvorlon

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

ฉันสร้างไดนาโมออสซิลเลเตอร์ด้วยขดลวด SMD ชั้นที่เรียบง่ายซึ่งดังก้องด้วยแผ่นฉนวนเช่นรัสรุสที่ได้รับการกำหนดไว้แล้วคลื่นไซน์นั้นยกกำลังสองและบางคนก็นับพัลส์ในเฟิร์มแวร์
ออทิสติก

10

รายละเอียดเพิ่มเติมจะช่วยได้ แต่ฉันคิดว่าวิธีอุลตร้าโซนิคอาจเป็นวิธีที่ง่ายที่สุดมีแนวคิดอยู่แล้ว (ดังนั้นจึงต้องการรายละเอียดเพิ่มเติม: -]) ฉันเหวี่ยงเซ็นเซอร์ระดับสำหรับถังน้ำมันเชื้อเพลิงในห้องใต้ดินของฉันโดยใช้ MaxSonar ultrasonic transducer ฉันเปลี่ยนไปใช้เซ็นเซอร์ Parallax Ping ทันทีที่ฉันจับมือได้ หน่วย MaxSonar ได้พิสูจน์แล้วว่าเป็นความเจ็บปวด ปรากฎว่ามันมีความละเอียดเพียงหนึ่งนิ้ว (2.54 ซม.) ซึ่งเท่ากับเกือบ 7 แกลลอนในรถถังของฉัน ฉันใส่หน่วย MaxSonar ไว้ในฝา PVC ที่ด้านบนของถังชี้ลง (พ้นจากของเหลว)


7

วิธีหนึ่งในการทำเช่นนี้คือวางหลอดไฟที่ด้านล่างของถังชี้ไปที่ด้านบนและโฟโตไดโอดที่ด้านบนของถังหันหน้าไปทาง LED ไฟ LED จะถูกลดทอนโดยน้ำในถังคุณจะต้องทำการทดลองเพื่อกำหนดจำนวน นอกจากนี้ยังเป็นการดีที่สุดที่จะใช้ชุดการวัดอย่างรวดเร็วและหาค่าเฉลี่ยเมื่อใช้วิธีนี้


1
ดูเหมือนว่าความเสี่ยงที่จะผิดพลาดแสงโดยรอบ sloshing ฯลฯ
เจสัน S

7

ฉันใช้เซ็นเซอร์แกนราคาถูกจากร้านฮาร์ดแวร์ในพื้นที่ที่มีทรานซิสเตอร์ภาพถ่าย ด้วยการติดกาวนี้ไปที่ด้านข้างของรถถังมันจะรับรู้เมื่อระดับเพิ่มขึ้นเหนือเซ็นเซอร์และแจ้งเตือนเราถึงสภาพน้ำที่สูง


6

มีหลายวิธีที่น่าแปลกใจในการตรวจสอบระดับ มีเซ็นเซอร์ที่ใช้คลื่นความถี่วิทยุส่งพัลส์ลงคลื่นนำและตรวจจับการสะท้อนออกจากพื้นผิวของของเหลวในถัง มีอัลตร้าซาวด์, ลอย, ท่อ bubbler, ก๊อกแรงดัน ... วิธีการที่ใช้ขึ้นอยู่กับขนาดของถัง, เนื้อหา, สภาพแวดล้อมโดยรอบและปัจจัยอื่น ๆ


4

ฉันประหลาดใจที่โซลูชันอิเล็กทรอนิกส์ที่ซับซ้อนทั้งหมดที่นี่ฉันจะใช้โพเทนชิออมิเตอร์แบบง่าย คอนโทรลเลอร์ไมโครส่วนใหญ่มีอนาล็อก i / p พื้นฐาน

 +V
-----
  |
  |
  /
  \
  /<----------> to analog i/p
  \
  |
  |
-----
 GND

ใช้ลอยวาล์วถังเก็บน้ำมาตรฐาน (อาจมีอยู่แล้ว) ปัญหาที่เหลือคือการเชื่อมต่อลอยไปที่หม้อเพื่อให้ได้วงสวิงสูงสุด (คุณสามารถใช้หม้อเลื่อน)

                  |-|
                  | |
                  |o| <--------Slider pot.
                  |||
                  |||
                   |
                   |  <--------Coupling.
                   |
   ____            |
  (float)----------o-----o  <--Anchor point of float.
   ----

คุณแน่ใจได้อย่างไรว่าหม้อกลับไปที่ตำแหน่งเดิม?

น้ำหนักของลอยจะดึงมันลงเมื่อระดับน้ำลดลง ...
ทีทีที

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

หม้อเลื่อนจำนวนมากอีกต่อไปมีแรงเสียดทานต่ำมาก (ใช้ในเครื่องผสมที่ควบคุมด้วยปลายนิ้วและดีเจเด็ค) ฉันใช้ตัวเลื่อนขนาด 4 "จากกล่องบิตของฉันและทดสอบด้วยถังเก็บน้ำลอยแบบธรรมดามันยังใช้กับถังเก็บน้ำขนาดเล็กในห้องน้ำ! อย่างไรก็ตามฉันจะใช้ตัวต้านทานแบบคงที่ในซีรีย์พร้อมกับหม้อ กางเกงขาสั้นในสภาพแวดล้อมที่เปียกมันเคยชินเกินการส่งออกของพอร์ตควบคุม (หรือวาดปัจจุบันมากเกินไปจาก VREF คงที่) ผมใช้ต้านทาน 10k กับหม้อ 10k ในการตั้งค่าการทดสอบของฉัน..
TTT

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

4

วิธีที่ง่ายที่สุด

วางท่อเล็ก ๆ ไว้ที่มุมถังที่มีเส้นผ่านศูนย์กลางใหญ่กว่าลูกบอลปิงปองเล็กน้อย

วางหลอด LED อินฟราเรดที่ด้านหนึ่งของหลอดและตัวโฟโตเรสเตอร์ที่อยู่ตรงข้ามกับหลอด LED (โดยการเจาะรูในหลอดของมันทึบแสงหรือวางไว้ด้านนอกถ้าโปร่งใส) กาวร้อนชิ้นส่วนไฟฟ้าเพื่อกันน้ำพวกเขาและวางลูกปิงปองลงในหลอด

เมื่อระดับน้ำเพิ่มขึ้นหรือลดลงจนถึงจุดที่ลูกปิงปองแตกลำแสงอินฟาเรดคุณจะรู้ว่ามันกระทบกับระดับที่ต้องการ สิ่งนี้จะทำงานหากคุณต้องการตัวบ่งชี้ระดับแยก (เปิด / ปิด)

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

ง่ายมีประสิทธิภาพและต้องการการสอบเทียบเพียงเล็กน้อยหรือไม่มีเลย



1

อีกวิธีที่ฉลาดกว่า: ใช้ประโยชน์จากการนำความร้อนที่มากขึ้นของน้ำ (ของเหลว) ความคิดคือการมีเซ็นเซอร์อุณหภูมิและวัดความแตกต่างของความร้อนในตัวเองเมื่อจมอยู่ใต้น้ำและเมื่ออยู่ในอากาศฟรี


สิ่งนี้เกิดขึ้นจริงแล้วใน CHCH นิวซีแลนด์ที่ฉันอยู่ แต่ฉันไม่ได้ทำฉันคิดว่ามันอายุประมาณ 20 ปีมีแถวของเทอร์มิสเตอร์หลาย ๆ ตัวที่ด้านนอกของถังดังนั้นมันจึงใช้ได้
ออทิสติก

1

วิธีการแก้ปัญหาอื่น (ไม่มีปุนตั้งใจ);

ใช้โพเทนชิออมิเตอร์ตามที่แนะนำข้างต้น ช่วงการหมุนปกติคือ 270 องศา แนบทุ่นกับโพเทนชิออมิเตอร์โดยใช้แขนบูม (ความยาว = 1 หน่วย)

แขนบูมจะเคลื่อนที่ 90 องศา

ADC บน PIC เป็นขั้นตอน 256 หรือ 1024 ขั้นตอน (ใช่ศูนย์เป็นขั้นตอน)

ฉันจะใช้ 256 ขั้นตอนเพื่อความชัดเจน

270 องศา = 256 ADC ขั้นตอน 270/90 = 3 (หนึ่งในสามของช่วงโพเทนชิออมิเตอร์)
255/3 = 85 ADC ขั้นตอน

โปรแกรมรหัสบางอย่างเพื่อทำเครื่องหมายจุด 0 องศา (ว่างเปล่าถัง) เมื่อกดปุ่ม

สิ่งนี้จะเก็บจุดออฟเซ็ตใน PIC eeprom ตอนนี้โพเทนชิออมิเตอร์ไม่จำเป็นต้องอยู่ที่ศูนย์อย่างแน่นอนเพราะสามารถตั้งค่าจุดสอบเทียบนี้ได้

การใช้ตรีโกณมิติคำนวณตารางการค้นหา (hint: php script) เพื่อให้สอดคล้องกับแต่ละขั้นตอนของ ADC

คำแนะนำ: แต่ละขั้นตอน ADC สอดคล้องกับ 90/85 = 1.0588 องศา

ใช่คุณควรให้ความสนใจมากขึ้นในวิชาคณิตศาสตร์ เสียเวลาเป็นใบ้ไม่สามารถรับผิดชอบได้ในตอนนี้ มีส่วนร่วมของสมอง เรียนรู้ตรีโกณมิติ สอนคนอื่น

ตัวย่อ: ชาวอาหรับเก่าแบกกระสอบเฮย์อย่างหนัก

hypontenuse คือความยาวของแขนบูม ทำให้มันยาว 1 หน่วย ตารางการค้นหาจะแสดงเปอร์เซ็นต์ของความลึกของรถถัง (คูณด้วย 100 แน่นอน)


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.