สารบัญ:
วีดีโอ: การสร้างเซ็นเซอร์ของเหลวแบบ Capacitive: 8 ขั้นตอน (พร้อมรูปภาพ)
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
สปอนเซอร์ของเหลวแบบ capacitive อาศัยความจริงที่ว่าความจุหรือประจุระหว่างแผ่นโลหะ 2 แผ่นจะเปลี่ยนไป (ในกรณีนี้จะเพิ่มขึ้น) ขึ้นอยู่กับวัสดุที่อยู่ระหว่างกัน ซึ่งช่วยให้เราสามารถสร้างเซ็นเซอร์ระดับที่ปลอดภัยสำหรับใช้กับของเหลวใดๆ ก็ได้ ซึ่งจะใช้ในรถบั๊กกี้ที่มีน้ำมันเบนซิน (เบนซิน) หนึ่งแผ่นติดอยู่กับพื้น อีกอันเชื่อมต่อกับพิน 23 มีตัวต้านทาน 820K ohm จากพิน 22 ถึง 23 เซ็นเซอร์ทำงานโดยการชาร์จตัวเก็บประจุ (ขวดน้ำ) และวัดระยะเวลาที่ใช้ในการระบายผ่านตัวต้านทาน
ขั้นตอนที่ 1: อะไหล่
1. ไม่จำเป็นต้องใช้บอร์ดขนมปังแบบบัดกรี แต่ทำให้ง่ายขึ้นมาก โดยเฉพาะอย่างยิ่งหากคุณวางแผนที่จะเพิ่มสิ่งอื่น ๆ ในภายหลัง 2. Arduino ฉันใช้ Arduino mega แต่ตัวมาตรฐานควรมีพินเพียงพอ 3. การแสดงตัวอักษร LCD 4. อัตราต่อรองและจุดสิ้นสุดบางอย่างรวมถึงลวดและตัวต้านทาน1MΩ 5. คอมพิวเตอร์ที่คุณใช้ในการอ่านคำสั่งของฉันด้วย 6. ความอดทน
ขั้นตอนที่ 2: เชื่อมต่อ LCD และปล่อยให้การสร้างสรรค์ของคุณพูดไปทั่วโลก
เช่นเดียวกับทุกขั้นตอนในคำแนะนำนี้มีหลายวิธีในการทำเช่นนี้ ฉันจะแสดงสิ่งที่ฉันชอบให้คุณดู
จอแอลซีดีของคุณมีแผ่นบัดกรี 16 รู ดังนั้นสิ่งแรกคือติดหมุด หากสิทธิบัตรของคุณ ฉันแนะนำให้ซื้อส่วนหัวแบบนี้ https://www.sparkfun.com/commerce/product_info.php?products_id=117 แต่ถ้าคุณต้องการที่จะทำให้เสร็จเร็วที่สุด (เช่นฉัน) คุณสามารถใช้ลวดได้ ตัดลวดอย่างง่าย 16 ชิ้นที่ขนาดประมาณ 1/2 นิ้ว (13 มม. (ยาวกว่านั้นก็ได้)) จากนั้นประสานเข้ากับบอร์ด
ขั้นตอนที่ 3: เชื่อมต่อ LCD ต่อ
บาป ฉันกำลังใช้อักขระพิเศษ ฉันจะเชื่อมต่อสายไฟทั้งหมด
พิน 1 กราวด์ พิน 2 +5 โวลต์ พิน 3 ปรับคอนทราสต์ พิน 4 RS พิน 5 R/W ไปที่กราวด์ พิน 6-14 ดาต้า พิน 15 แบ็คไลท์ พาวเวอร์พิน 16 แบ็คไลท์ กราวด์
ขั้นตอนที่ 4: สายข้อมูล
ตอนนี้คุณต้องเชื่อมต่อ Arduino กับ LCD ไม่สำคัญว่าคุณใช้พินอะไร แต่ฉันแนะนำให้ทำตามแผนผัง
ขั้นตอนที่ 5: พลัง MahaHaHa
พอร์ต usb บนคอมพิวเตอร์ของคุณมีพลังงานเพียงพอในการรัน Arduino และไฟแบ็คไลท์ ดังนั้นเพียงเชื่อมต่อกราวด์และรางจ่ายไฟบนบอร์ดขนมปังของคุณเข้ากับการจ่ายไฟบนบอร์ด Arduino
ขั้นตอนที่ 6: สร้าง Capacitive Sensor
สำหรับการทดสอบ ฉันใช้ฟอยล์อลูมิเนียมและขวดน้ำพลาสติก มันจะใช้ได้กับภาชนะใดๆ ก็ได้ตราบใดที่ไม่ใช่โลหะ
คุณสามารถใช้ลวดชนิดใดก็ได้ แต่สายที่ไม่หุ้มฉนวนจะให้ประสิทธิภาพต่ำ คุณสามารถใช้ 2 พินใดก็ได้ ฉันเลือก 22 และ 23 เชื่อมต่อด้านหนึ่งกับกราวด์และอีกด้านหนึ่งเข้ากับตัวต้านทานและ 2 พิน I/O
ขั้นตอนที่ 7: การเขียนโปรแกรม
คุณต้องเพิ่มไฟล์ไลบรารี 2 ไฟล์เพื่อให้ทำงานได้ LiquidCrystal.h https://arduino.cc/en/Tutorial/LiquidCrystalCapSense.h https://www.arduino.cc/playground/Main/CapSenseCopy และวางสิ่งนี้ลงใน Arduino 0017 หรือใหม่กว่า // Capacitive Liquid Sensor // Vadim 7 ธันวาคม 2009 #include #include // นี่คือการกำหนดขนาดของ LCD const int numRows = f=4; const int numCols = 20; // ตั้งค่าพินสำหรับ LCD (RS, Enable, data 0-7) LiquidCrystal lcd (53, 52, 51, 50, 49, 48, 47, 46, 45, 44); #define Tempin 0x48 #define Tempout 0x49 CapSense cs_22_23 = CapSense (22, 23); บล็อก uint8_t [8] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}; uint8_t tl[8] = {0x0F, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0F, 0x0F}; uint8_t tr[8] = {0x16, 0x11, 0x11, 0x11, 0x11, 0x11, 0x1D, 0x15}; uint8_t bl[8] = {0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x1F}; uint8_t br[8] = {0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x12, 0x18}; การตั้งค่าเป็นโมฆะ () { lcd.begin (numRows, numCols); lcd.createChar(4, tl); lcd.createChar(5, tr); lcd.createChar(6, bl); lcd.createChar(7, br); lcd.setCursor(18, 0); lcd.print (4, ไบต์); lcd.setCursor(19, 0); lcd.print(5, ไบต์); lcd.setCursor(18, 1); lcd.print(6, ไบต์); lcd.setCursor(19, 1); lcd.print(7, ไบต์); lcd.setCursor(0, 2); lcd.print("เชื้อเพลิง"); lcd.setCursor(0, 3); lcd.print("E"); } void loop() { เชื้อเพลิงยาว; lcd.createChar(2, บล็อก); เริ่มต้นนาน = millis(); เชื้อเพลิง = cs_22_23.capSenseRaw(200); //Temratue สร้างความแตกต่างเล็กน้อย ปล่อยให้มันทำงานเป็นเวลา 5 นาทีก่อนทำการจูน //ปรับตัวเลขนี้เพื่อให้ผลลัพธ์ใกล้เคียงกับศูนย์มากที่สุด เชื้อเพลิง = เชื้อเพลิง - 7200; // จากนั้นเติม conataner // Un-comment และปรับค่านี้เพื่อให้เอาต์พุตเมื่อคอนเทนเนอร์เต็ม // ใกล้เคียงกับ 100 มากที่สุด //เชื้อเพลิง = เชื้อเพลิง / 93; lcd.setCursor(0, 0); lcd.print(" "); lcd.setCursor(0, 0); lcd.print(เชื้อเพลิง); ถ้า (เชื้อเพลิง >= 6) { lcd.setCursor(1, 3); lcd.print(2, ไบต์); } อื่น ๆ { lcd.setCursor (1, 3); lcd.print(" "); } ถ้า (เชื้อเพลิง >= 12) { lcd.setCursor(2, 3); lcd.print(2, ไบต์); } อื่น ๆ { lcd.setCursor(2, 3); lcd.print(" "); } ถ้า (เชื้อเพลิง >= 17) { lcd.setCursor(3, 3); lcd.print(2, ไบต์); } อื่น ๆ { lcd.setCursor(3, 3); lcd.print(" "); } ถ้า (เชื้อเพลิง >= 23) { lcd.setCursor(4, 3); lcd.print(2, ไบต์); } อื่น ๆ { lcd.setCursor (4, 3); lcd.print(" "); } ถ้า (เชื้อเพลิง >= 28) { lcd.setCursor(5, 3); lcd.print(2, ไบต์); } อื่น ๆ { lcd.setCursor(5, 3); lcd.print(" "); } ถ้า (เชื้อเพลิง >= 34) { lcd.setCursor(6, 3); lcd.print(2, ไบต์); } อื่น ๆ { lcd.setCursor(6, 3); lcd.print(" "); } ถ้า (เชื้อเพลิง >= 39) { lcd.setCursor(7, 3); lcd.print(2, ไบต์); } อื่น ๆ { lcd.setCursor(7, 3); lcd.print(" "); } ถ้า (เชื้อเพลิง >= 44) { lcd.setCursor(8, 3); lcd.print(2, ไบต์); } อื่น ๆ { lcd.setCursor(8, 3); lcd.print(" "); } ถ้า (เชื้อเพลิง >= 50) { lcd.setCursor(9, 3); lcd.print(2, ไบต์); } อื่น ๆ { lcd.setCursor(9, 3); lcd.print(" "); } ถ้า (เชื้อเพลิง >= 55) { lcd.setCursor(10, 3); lcd.print(2, ไบต์); } อื่น ๆ { lcd.setCursor(10, 3); lcd.print(" "); } ถ้า (เชื้อเพลิง >= 60) { lcd.setCursor(11, 3); lcd.print(2, ไบต์); } อื่น ๆ { lcd.setCursor (11, 3); lcd.print(" "); } ถ้า (เชื้อเพลิง >= 64) { lcd.setCursor(12, 3); lcd.print(2, ไบต์); } อื่น ๆ { lcd.setCursor (12, 3); lcd.print(" "); } ถ้า (เชื้อเพลิง >= 69) { lcd.setCursor(13, 3); lcd.print(2, ไบต์); } อื่น ๆ { lcd.setCursor (13, 3); lcd.print(" "); } ถ้า (เชื้อเพลิง >= 74) { lcd.setCursor(14, 3); lcd.print(2, ไบต์); } อื่น ๆ { lcd.setCursor (14, 3); lcd.print(" "); } ถ้า (เชื้อเพลิง >= 78) { lcd.setCursor(15, 3); lcd.print(2, ไบต์); } อื่น ๆ { lcd.setCursor(15, 3); lcd.print(" "); } ถ้า (เชื้อเพลิง >= 83) { lcd.setCursor(16, 3); lcd.print(2, ไบต์); } อื่น ๆ { lcd.setCursor (16, 3); lcd.print(" "); } ถ้า (เชื้อเพลิง >= 87) { lcd.setCursor(17, 3); lcd.print(2, ไบต์); } อื่น ๆ { lcd.setCursor (17, 3); lcd.print(" "); } ถ้า (เชื้อเพลิง >= 92) { lcd.setCursor(18, 3); lcd.print(2, ไบต์); } อื่น ๆ { lcd.setCursor(18, 3); lcd.print(" "); } ถ้า (เชื้อเพลิง >= 96) { lcd.setCursor(19, 3); lcd.print ("F"); } อื่น ๆ { lcd.setCursor(19, 3); lcd.print(" "); } ล่าช้า (50); }
ขั้นตอนที่ 8: สิ่งของ
เหมาะอย่างยิ่งสำหรับการวัดของเหลวที่ระเหยได้ แม้จะทำงานภายในถังโพรเพน มีความสุข. ข้อมูลใด ๆ และทั้งหมดมีวัตถุประสงค์เพื่อการศึกษาเท่านั้นและฉันไม่สามารถรับผิดชอบได้หากคุณระเบิดตัวเอง