สารบัญ:

Tiny V/A Meter พร้อม INA219: 9 ขั้นตอน (พร้อมรูปภาพ)
Tiny V/A Meter พร้อม INA219: 9 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Tiny V/A Meter พร้อม INA219: 9 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Tiny V/A Meter พร้อม INA219: 9 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: INA219 Current & Power Module: Arduino Tryout 2024, พฤศจิกายน
Anonim
Image
Image
มิเตอร์ V/A จิ๋วพร้อม INA219
มิเตอร์ V/A จิ๋วพร้อม INA219
มิเตอร์ V/A จิ๋วพร้อม INA219
มิเตอร์ V/A จิ๋วพร้อม INA219
มิเตอร์ V/A จิ๋วพร้อม INA219
มิเตอร์ V/A จิ๋วพร้อม INA219

เบื่อกับการเสียบปลั๊กมัลติมิเตอร์ใหม่เมื่อคุณต้องการวัดทั้งแรงดันและกระแสในโครงการขนาดเล็กใช่หรือไม่ Tiny V/A meter เป็นอุปกรณ์ที่คุณต้องการ!

ไม่มีอะไรใหม่เกี่ยวกับเซ็นเซอร์กระแสไฟด้านสูง INA219 มีโครงการดีๆ มากมายที่ใช้ความสามารถในการวัดทั้งกระแสและแรงดันในการโหลด เดิมทีฉันได้รับแรงบันดาลใจจากยูทูบเบอร์ Julian Ilett และวิดีโอ "10 นาที Arduino Project - INA219 Current Sensor" ของเขา แต่ฉันต้องการเครื่องวัดขนาดกะทัดรัดที่มีอินเทอร์เฟซเรียบง่ายและเคสที่พิมพ์ 3 มิติ ดังนั้นฉันจึงตัดสินใจทำเอง

เกี่ยวกับเซ็นเซอร์ INA219:

INA219 สามารถวัด ±3.2A ด้วยความละเอียด 0.1mA ทำได้โดยการวัดแรงดันตกคร่อมตัวต้านทาน 0.1 โอห์มบน PCB ดังนั้นเซ็นเซอร์จะแนะนำแรงดันไฟฟ้าตกที่น้อยมาก แต่มีเพียง 320 mV ในกรณีที่เลวร้ายที่สุด (3.2A) ตัวอย่างเช่นที่ 100 mA การดรอปเป็นเพียง 10 mV หากต้องการ คุณสามารถเปลี่ยนตัวต้านทานเพื่อให้ได้ช่วงหรือความละเอียดที่สูงขึ้นได้ ในขณะเดียวกัน เซ็นเซอร์ยังวัดแรงดันบัสด้วยความละเอียด 4 mV จากประสบการณ์ของผม การอ่านค่าแรงดันไฟฟ้านั้นแม่นยำมาก ความแม่นยำของการอ่านค่าปัจจุบันขึ้นอยู่กับความต้านทานที่แท้จริงของตัวต้านทานของคุณ โดยทั่วไปแล้วจะมีความอดทน 1% (แต่ไม่แน่ใจว่าคุณควรเชื่อถือบอร์ด eBay ราคาถูก) ฉันเชื่อว่าควรปรับเทียบผลลัพธ์ได้หากคุณทราบค่าที่แม่นยำของตัวต้านทาน แต่ฉันไม่ได้เจาะลึกไปกว่านั้นเพราะความแม่นยำนั้นดีเพียงพอสำหรับความต้องการของฉัน เซ็นเซอร์มีการตั้งค่าเกนที่แตกต่างกัน - สิ่งเหล่านี้จะไม่ส่งผลต่อความละเอียด แต่ช่วยลดสัญญาณรบกวนในช่วงต่ำ

คุณสมบัติของ Tiny V/A Meter:

  • สามารถใช้พลังงานจาก USB หรือจากแหล่งพลังงาน

    • เมื่อจ่ายจาก USB แหล่งจ่ายอินพุตสามารถอยู่ในช่วงตั้งแต่ 0 - 26V กระแสไฟรั่วของเซ็นเซอร์เท่านั้นที่ส่งผลต่อกำลังไฟฟ้าเข้า ดีถ้าคุณต้องการตรวจสอบความจุของแบตเตอรี่
    • เมื่อจ่ายไฟจากอินพุตสามารถอยู่ในช่วงตั้งแต่ 4 - 15V (ข้อจำกัดของตัวควบคุมแรงดันไฟฟ้า Arduino)
    • ตรวจพบอินพุตที่เลือกเมื่อบูตหรือเปลี่ยนแปลง และจะแสดงข้อความช่วงต่อผู้ใช้
  • สามารถแสดงแรงดัน กระแสไฟ และ mAh ได้พร้อมกัน
  • mAh สามารถรีเซ็ตได้
  • อินเทอร์เฟซปุ่มเดียวด้วยการกดสั้น/ยาว
  • เลือกช่วง INA219: 26V / 3.2A, 26V / 1A หรือ 16V / 0.4A
  • เลือกอัตราการสุ่มตัวอย่าง 100, 200, 500 หรือ 1,000 มิลลิวินาที
  • เปิด/ปิดโหมดสลีปของเซ็นเซอร์เพื่อลดกระแสไฟรั่วในเซ็นเซอร์
  • การตั้งค่าจะถูกเก็บไว้ใน EEPROM และโหลดซ้ำเมื่อบูต
  • อินเทอร์เฟซแบบอนุกรม

    • พิมพ์ผลลัพธ์บนซีเรียล สามารถใช้สำหรับการบันทึก
    • เปลี่ยนการตั้งค่าด้วยคำสั่งซีเรียล

เสบียง

1x Arduino Nano - ตัวอย่าง Arduino Nano eBay

1x INA219 บอร์ดเซ็นเซอร์ - INA219 บอร์ดเซ็นเซอร์สีม่วง eBay ตัวอย่าง

1x OLED 0.96" I2C 128X64 4-pin - OLED 0.96" ตัวอย่าง eBay I2C สีฟ้า

1x TTP223 Capacitive Touch Switch - TTP223 ปุ่มสัมผัสแบบ Capacative PCB eBay ตัวอย่าง

1x ปลั๊กแจ็คพาวเวอร์ซัพพลายสำหรับตัวเมีย - รูแจ็คพาวเวอร์พาวเวอร์ตัวเมียเมาท์ eBay example

1x แจ็คพาวเวอร์ซัพพลายชาย - แจ็คพาวเวอร์ชายพร้อมขั้วสกรู ตัวอย่าง eBay หรือแจ็คพาวเวอร์ชายพร้อมเทอร์มินัลแบบกด ตัวอย่าง eBay

1x สวิตช์สไลด์ 2 ตำแหน่ง 6 ขา - สวิตช์สไลด์ 6 ขา ตัวอย่าง eBay

สายไฟ

ขั้วต่อตัวผู้ 5 พิน 1x (อุปกรณ์เสริม) - หัวต่อพินตัวผู้ 2.54 ตัวอย่าง eBay

ขั้วต่อตัวเมีย 1x 5 พิน (อุปกรณ์เสริม) - ชุดขั้วต่อ Dupont ตัวอย่าง eBay หรือขั้วต่อแถวเดี่ยว 2.54 5 พิน eBay ตัวอย่าง

ท่อหดความร้อน (อุปกรณ์เสริม)

เครื่องมือ:

หัวแร้ง

เครื่องพิมพ์ 3 มิติ (หากต้องการเคสที่พิมพ์ 3 มิติ)

ปืนกาว

ขั้นตอนที่ 1: แผนผัง

แผนผัง
แผนผัง
แผนผัง
แผนผัง

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

คำอธิบาย

จอแสดงผล OLED และเซ็นเซอร์ INA219 ต่างก็ใช้ I2C ดังนั้นจึงต้องมีการเชื่อมต่อ SDA และ SCL กับ A4 และ A5

เอาต์พุตของเซ็นเซอร์สัมผัสแบบ Capacitive เราจะเชื่อมต่อกับ D2 สำหรับอินพุต

สวิตช์สไลด์มี 6 พิน - สองแถว 3 พิน หนึ่งแถวจะใช้เพื่อเชื่อมต่ออินพุตพลังงานกับ Vin บน Arduino อีกแถวจะเชื่อมต่อ D6 กับกราวด์ ด้วยการใช้ pull-up ภายในบน D6 Arduino จะสามารถดูว่าเชื่อมต่อกับ Vin หรือไม่

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

ขั้นตอนที่ 2: การพิมพ์เคส

การพิมพ์เคส
การพิมพ์เคส
การพิมพ์เคส
การพิมพ์เคส

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

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

ไม่มีเครื่องพิมพ์ 3 มิติ?

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

ขั้นตอนที่ 3: การประกอบฝาปิด

การประกอบฝา
การประกอบฝา
การประกอบฝา
การประกอบฝา
การประกอบฝา
การประกอบฝา
การประกอบฝา
การประกอบฝา

ฝาถือหน้าจอ OLED และปุ่มสัมผัสแบบ capacitive บัดกรีสายไฟบนส่วนประกอบก่อนที่จะติดกาวด้วยปืนกาว ระวังหน้าจอ OLED - บางครั้งกระจกจะเอียงบน PCB ดังนั้นจัดตำแหน่งนั้นก่อนที่จะติดกาวให้เข้าที่ หากคุณมีขั้วต่อ 5 พินให้เพิ่มเข้ากับสายไฟ หากคุณไม่ทำ คุณยังสามารถต่อหน้าจอ & ปุ่มกับ Arduino ได้โดยตรง แต่จะใช้งานยากกว่าเล็กน้อย

ขั้นตอนที่ 4: การประกอบกล่องหลัก

การประกอบกล่องหลัก
การประกอบกล่องหลัก
การประกอบกล่องหลัก
การประกอบกล่องหลัก

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

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

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

อย่าเพิ่งปิดคดี! เป็นการดีที่สุดที่จะทดสอบว่าทุกอย่างใช้งานได้ดีก่อน

ขั้นตอนที่ 5: การเขียนโปรแกรม Arduino

การเขียนโปรแกรม Arduino
การเขียนโปรแกรม Arduino

หากคุณยังไม่ได้ติดตั้ง Arduino IDE ให้โหลดจาก arduino.cc

คุณต้องติดตั้งสองไลบรารี U8g2 และ Adafruit INA219 ด้วย ทั้งสองมีอยู่ในตัวจัดการห้องสมุด สำหรับ Adafruit INA219 ให้ตรวจสอบว่าคุณได้รับเวอร์ชัน 1.0.5 - เวอร์ชันที่ใหม่กว่าต้องการไลบรารีและหน่วยความจำแฟลชเพิ่มเติม แต่ไม่มีฟังก์ชันเพิ่มเติมใดๆ ในขณะนี้

ถัดไปรับซอร์สโค้ดที่แนบมาในคำแนะนำนี้ (Tiny-VA-Meter.ino และ FlashMem.h) หรือรับเวอร์ชันล่าสุดจาก GitHub Tiny-VA-Meter Git ของฉัน ตอนนี้เปิด Tiny-VA-Meter.ino ด้วย Arduino IDE

เชื่อมต่อ Tiny V/A Meter กับคอมพิวเตอร์ของคุณด้วยสาย USB

จากเครื่องมือให้เลือกบอร์ด: "Arduino Nano", โปรเซสเซอร์: "ATmega328P" และพอร์ตที่ถูกต้อง คุณอาจต้องเปลี่ยนโปรเซสเซอร์เป็น "ATmega328P (ตัวโหลดรุ่นเก่า)" ขึ้นอยู่กับ Arduino ของคุณ หากคุณมีข้อผิดพลาดในการสื่อสารให้ลอง

กดปุ่มอัปโหลดและรอจนกว่าจะเสร็จสิ้น

ขั้นตอนที่ 6: ทดสอบว่าทุกอย่างกำลังทำงาน

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

1. จากพลังงาน USB จอแสดงผลจะสว่างขึ้นและแสดงการอ่าน (โดยไม่คำนึงถึงตำแหน่งสวิตช์สไลด์)

2. ตรวจสอบว่าคุณสามารถเปลี่ยนเมนูได้โดยแตะที่ปุ่ม

3. จ่ายไฟให้กับอินพุตและตรวจสอบว่ามิเตอร์แสดงแรงดันไฟฟ้าที่ถูกต้องหรือไม่

4. ลองเลื่อนสวิตช์สไลด์และตรวจสอบว่ามิเตอร์แสดงข้อความช่วงหรือไม่

5. ตอนนี้คุณสามารถลองตั้งค่าสวิตช์สไลด์เป็นกำลังไฟเข้าและถอด USB ออก มิเตอร์ควรยังคงทำงาน

6. ในที่สุด คุณควรจะสามารถเชื่อมต่อโหลดหรืออุปกรณ์กับเอาต์พุต และตรวจสอบว่าเซ็นเซอร์กำลังอ่านการวาดปัจจุบัน

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

ขั้นตอนที่ 7: เรียนรู้การนำทางเมนู

เรียนรู้การนำทางเมนู
เรียนรู้การนำทางเมนู

เมื่อเปิดเครื่อง มิเตอร์จะเริ่มด้วยการแสดงช่วงอินพุตที่ใช้ได้ขึ้นอยู่กับตำแหน่งของสวิตช์เลื่อน: "ช่วงอินพุต: 0-26V 3.2A" หรือ "ช่วงอินพุต: 4-15V 3.2A" ข้อความจะแสดงเพียงไม่กี่วินาที แต่คุณสามารถข้ามได้ด้วยการกดสั้นๆ หากเปลี่ยนสวิตช์สไลด์หลังจากบู๊ตแล้ว ข้อความใหม่จะปรากฏขึ้นอีกครั้งเป็นเวลาสองสามวินาที

โดยสังเขปคุณจะนำทางโดยกดสั้น ๆ และเลือกโดยกดแบบยาว (1 วินาที)

เครื่องวัดมี 3 หน้าหลัก: จอแสดงผล V/A, จอแสดงผล V/A/W/Ah & การตั้งค่า การกดปุ่มสั้นๆ จะเป็นการข้ามไปมาระหว่างหน้าเหล่านี้

ในหน้า V/A/W/Ah คุณสามารถรีเซ็ต mAh ได้ด้วยการกดแบบยาว

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

ขั้นตอนที่ 8: การใช้อินเทอร์เฟซแบบอนุกรม

การใช้อินเทอร์เฟซแบบอนุกรม
การใช้อินเทอร์เฟซแบบอนุกรม

เมื่อเชื่อมต่อกับพีซีด้วย USB คุณสามารถใช้ Arduino Serial Monitor (หรือเทอร์มินัลอื่น) เพื่อสื่อสารกับ Tiny V/A Meter ใช้บอดเรต 115200

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

แต่คุณยังสามารถเปลี่ยนการตั้งค่าบน Tiny V/A Meter ได้ด้วยคำสั่งซีเรียล ตรวจสอบให้แน่ใจว่าได้เลือก "ขึ้นบรรทัดใหม่" เป็นการสิ้นสุดบรรทัด

คำสั่งที่ไม่ถูกต้องจะแสดงเมนูช่วยเหลือ:

คำสั่ง:- รีเซ็ต (รีเซ็ต mAh)

- อ่าน (ตอบกลับด้วยผลลัพธ์ล่าสุด)

- บันทึก x (อัตโนมัติ tx ของตัวอย่าง - x สามารถเปิดหรือปิดได้)

- สลีป x (INA219 สลีประหว่างกลุ่มตัวอย่าง - x สามารถเปิดหรือปิดได้)

- รีเฟรช x (ตั้งค่าหน้าจอและอัตราการรีเฟรชแบบอนุกรม x สามารถเป็น 100, 200, 500 หรือ 1000)

- ช่วง x (ตั้งค่าช่วง INA219. x สามารถเป็น 0 สำหรับ 3.2A, 1 สำหรับ 1A หรือ 2 สำหรับ 0.4A)

ตัวอย่างเช่น พิมพ์ "refresh 1000" เพื่อเปลี่ยนอัตราการสุ่มตัวอย่างเป็น 1 วินาที หรือพิมพ์ "ออกจากระบบ" เพื่อปิดใช้งานการส่งสัญญาณอัตโนมัติ มิเตอร์จะตอบกลับด้วย "ตกลง" หากสำเร็จ

ขั้นตอนที่ 9: เสร็จแล้ว

เสร็จแล้ว!
เสร็จแล้ว!
เสร็จแล้ว!
เสร็จแล้ว!

ตอนนี้ใช้มันเพื่อวัดสิ่งที่สนุก:)

ฉันได้ลองเพิ่มคุณสมบัติทั้งหมดที่ฉันพบว่ามีประโยชน์ แต่อย่าลังเลที่จะทำการปรับเปลี่ยนของคุณเอง และโปรดแบ่งปันหากคุณสามารถปรับปรุง Tiny V/A Meter ที่ยอดเยี่ยมได้!

อัปเดต 14/06-2020: เปลี่ยนไดรเวอร์และเพิ่มคุณสมบัติเพิ่มเติม! คู่มือนี้ยังไม่ครอบคลุม แต่คุณสามารถตรวจสอบได้จาก GitHub ของฉัน

แนะนำ: