สารบัญ:

DIY Arduino Battery Capacity Tester - V1.0: 12 ขั้นตอน (พร้อมรูปภาพ)
DIY Arduino Battery Capacity Tester - V1.0: 12 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: DIY Arduino Battery Capacity Tester - V1.0: 12 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: DIY Arduino Battery Capacity Tester - V1.0: 12 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: Arduino Multimeter V1.0 | DIY Arduino Project | Voltage, Resistance, Continuity tester and more 2024, พฤศจิกายน
Anonim
Image
Image
DIY Arduino เครื่องทดสอบความจุแบตเตอรี่ - V1.0
DIY Arduino เครื่องทดสอบความจุแบตเตอรี่ - V1.0

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

อัพเดทเมื่อ 30.10.2019

คุณสามารถดูเวอร์ชันใหม่ของฉัน

เมื่อไม่กี่สัปดาห์ก่อน ฉันได้เริ่มโครงการจากพื้นฐานแล้ว เวอร์ชันนี้เป็นเวอร์ชันที่เรียบง่ายจริงๆ ซึ่งอิงจากกฎของโอห์ม ความแม่นยำของตัวทดสอบจะไม่สมบูรณ์แบบ 100% แต่ให้ผลลัพธ์ที่สมเหตุสมผลที่สามารถใช้ได้ และเมื่อเปรียบเทียบกับแบตเตอรี่อื่น คุณจึงสามารถระบุเซลล์ที่ดีในแบตเตอรี่เก่าได้อย่างง่ายดาย ระหว่างที่ฉันทำงาน ฉันพบว่ามีหลายสิ่งหลายอย่างที่สามารถปรับปรุงได้ ในอนาคตฉันจะพยายามที่จะใช้สิ่งเหล่านั้น แต่สำหรับตอนนี้ ฉันพอใจกับมันแล้ว ฉันหวังว่าผู้ทดสอบตัวน้อยนี้จะมีประโยชน์ ดังนั้นฉันจึงแบ่งปันกับทุกคน หมายเหตุ: โปรดทิ้งแบตเตอรี่ที่เสื่อมสภาพอย่างเหมาะสม ข้อจำกัดความรับผิดชอบ: โปรดทราบว่าคุณกำลังทำงานกับ Li -แบตเตอรี่ไอออนที่ระเบิดได้สูงและอันตราย ข้าพเจ้าจะไม่รับผิดชอบต่อการสูญเสียทรัพย์สิน ความเสียหาย หรือการสูญเสียชีวิตหากเป็นกรณีนี้ บทแนะนำนี้เขียนขึ้นสำหรับผู้ที่มีความรู้เกี่ยวกับเทคโนโลยีลิเธียมไอออนแบบชาร์จไฟได้ โปรดอย่าพยายามทำเช่นนี้หากคุณเป็นมือใหม่ อยู่อย่างปลอดภัย.

ขั้นตอนที่ 1: อะไหล่และเครื่องมือที่จำเป็น:

อะไหล่ที่ต้องการ:1. Arduino Nano (เกียร์เบสท์ / Banggood)2. 0.96 OLED แสดงผล (Amazon / Banggood)3. MOSFET - IRLZ44 (Amazon)4. Resistors (4 x 10K, 1/4W) (Amazon / Banggood)5. Power Resistor (10R, 10W) (Amazon)6. ขั้วต่อแบบสกรู (3 Nos) (Amazon / Banggood)7. Buzzer (Amazon / Banggood)8. Prototype Board (Amazon / Banggood)9. 18650 แบตเตอรี่ Holder (Amazon)

10. 18650 แบตเตอรี่ (GearBest / Banggood)11. Spacers (Amazon / Banggood) เครื่องมือที่จำเป็น:1. ลวด เครื่องตัด / Stripper (Gear Best)2. เตารีดบัดกรี (Amazon / Banggood) เครื่องมือที่ใช้: IMAX Balance Charger (Gearbest / Banggood)

ปืนวัดอุณหภูมิอินฟราเรด (Amazon /Gearbest)

ขั้นตอนที่ 2: แผนผังและการทำงาน

แผนผังและการทำงาน
แผนผังและการทำงาน
แผนผังและการทำงาน
แผนผังและการทำงาน

แผนผัง:

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

การออกแบบนั้นง่ายมากซึ่งใช้ Arduino Nano ใช้จอแสดงผล OLED เพื่อแสดงพารามิเตอร์ของแบตเตอรี่3 ขั้วสกรูใช้สำหรับเชื่อมต่อแบตเตอรี่และความต้านทานโหลด ออดใช้สำหรับการแจ้งเตือนต่างๆ วงจรแบ่งแรงดันไฟฟ้าสองวงจรใช้เพื่อตรวจสอบแรงดันไฟฟ้าข้ามความต้านทานโหลด หน้าที่ของ MOSFET คือการเชื่อมต่อหรือตัดการเชื่อมต่อความต้านทานโหลดกับแบตเตอรี่

การทำงาน:

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

ขั้นตอนที่ 3: การวัดแรงดัน กระแส และความจุ

การวัดแรงดัน

เราต้องหาแรงดันไฟฟ้าข้ามตัวต้านทานโหลด แรงดันไฟฟ้าวัดโดยใช้วงจรแบ่งแรงดันสองวงจร ประกอบด้วยตัวต้านทานสองตัวที่มีค่าตัวละ 10k เอาต์พุตจากตัวแบ่งเชื่อมต่อกับ Arduino analog pin A0 และ A1

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

การวัดกระแส:

กระแส (I) = แรงดันไฟ (V) - แรงดันตกคร่อม MOSFET / ความต้านทาน (R)

หมายเหตุ: ฉันถือว่าแรงดันตกคร่อม MOSFET นั้นเล็กน้อย

ที่นี่ V = แรงดันตกคร่อมตัวต้านทานโหลดและ R = 10 โอห์ม

ผลลัพธ์ที่ได้อยู่ในหน่วยแอมแปร์ คูณ 1,000 เพื่อแปลงเป็นมิลลิแอมแปร์

ดังนั้นกระแสไฟสูงสุด = 4.2 / 10 = 0.42A = 420mA

การวัดความจุ:

ประจุที่เก็บไว้ (Q) = ปัจจุบัน (I) x เวลา (T)

เราได้คำนวณกระแสแล้ว สิ่งเดียวที่ไม่ทราบในสมการข้างต้นคือเวลา ฟังก์ชัน millis() ใน Arduino สามารถใช้วัดเวลาที่ผ่านไปได้

ขั้นตอนที่ 4: การเลือกโหลดตัวต้านทาน

การเลือกตัวต้านทานโหลด
การเลือกตัวต้านทานโหลด

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

ความต้านทาน (R) = แรงดันแบตเตอรี่สูงสุด / กระแสไฟที่คายประจุ = 4.2 /0.5 = 8.4 Ohm

ตัวต้านทานจำเป็นต้องกระจายพลังงานเล็กน้อย ดังนั้นขนาดจึงมีความสำคัญในกรณีนี้

ความร้อนกระจาย = I^2 x R = 0.5^2 x 8.4 =2.1 Watt

โดยการรักษาระยะขอบไว้ คุณสามารถเลือก 5W หากต้องการความปลอดภัยมากขึ้น ให้ใช้ 10W

ฉันใช้ตัวต้านทาน 10 โอห์ม 10W แทน 8.4 โอห์มเพราะมันอยู่ในสต็อกของฉันในเวลานั้น

ขั้นตอนที่ 5: เลือก MOSFET

การเลือก MOSFET
การเลือก MOSFET

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

ฉันใช้กำลังระดับลอจิก n-channel MOSFET-IRLZ44 L แสดงว่าเป็น MOSFET ระดับตรรกะ MOSFET ระดับลอจิกหมายความว่าได้รับการออกแบบให้เปิดใช้งานอย่างเต็มที่จากระดับลอจิกของไมโครคอนโทรลเลอร์ MOSFET มาตรฐาน (ซีรีย์ IRF เป็นต้น) ได้รับการออกแบบมาให้ทำงานตั้งแต่ 10V

หากคุณใช้ MOSFET ซีรีส์ IRF จะไม่สามารถเปิดได้เต็มที่โดยใช้ 5V จาก Arduino ฉันหมายความว่า MOSFET จะไม่รับกระแสไฟที่กำหนด ในการปรับ MOSFET เหล่านี้ คุณต้องมีวงจรเพิ่มเติมเพื่อเพิ่มแรงดันเกต

ดังนั้นฉันจะแนะนำให้ใช้ MOSFET ระดับตรรกะ ไม่จำเป็นต้องเป็น IRLZ44 คุณสามารถใช้ MOSFET อื่นได้เช่นกัน

ขั้นตอนที่ 6: จอแสดงผล OLED

จอแสดงผล OLED
จอแสดงผล OLED

เพื่อแสดงแรงดันแบตเตอรี่ กระแสไฟออก และความจุ ฉันใช้จอแสดงผล OLED ขนาด 0.96 มีความละเอียด 128x64 และใช้บัส I2C เพื่อสื่อสารกับ Arduino หมุด SCL (A5), SDA (A4) ใน Arduino Uno ใช้สำหรับ การสื่อสาร.

ฉันใช้ไลบรารี U8glib เพื่อแสดงพารามิเตอร์ ก่อนอื่นคุณต้องดาวน์โหลดไลบรารี U8glib จากนั้นติดตั้ง

หากคุณต้องการเริ่มต้นใช้งานจอแสดงผล OLED และ Arduino คลิกที่นี่

การเชื่อมต่อควรเป็นดังนี้

Arduino OLED

5V -Vcc

GND GND

A4-- SDA

A5-- SCL

ขั้นตอนที่ 7: Buzzer สำหรับคำเตือน

Buzzer สำหรับคำเตือน
Buzzer สำหรับคำเตือน
Buzzer สำหรับคำเตือน
Buzzer สำหรับคำเตือน

ในการให้การเตือนหรือการเตือนที่แตกต่างกัน จะใช้เสียง piezo การเตือนที่แตกต่างกันคือ

1. แบตเตอรี่ แรงดันต่ำ

2.แบตเตอรี่ไฟฟ้าแรงสูง

3. ไม่มีแบตเตอรี่

ออดมีขั้วสองขั้ว ขั้วที่ยาวกว่าเป็นบวกและขาที่สั้นกว่าเป็นลบ สติกเกอร์บนออดใหม่ยังมีเครื่องหมาย " + " เพื่อระบุขั้วบวกด้วย

การเชื่อมต่อควรเป็นดังนี้

Arduino Buzzer

D9 ขั้วบวก

GND ขั้วลบ

ใน Arduino Sketch ฉันใช้ฟังก์ชัน beep() แยกกัน ซึ่งส่งสัญญาณ PWM ไปยังออด รอสักครู่แล้วปิด จากนั้นมีดีเลย์อีกเล็กน้อย ดังนั้นจึงส่งเสียงบี๊บหนึ่งครั้ง

ขั้นตอนที่ 8: การสร้างวงจร

การทำวงจร
การทำวงจร
การทำวงจร
การทำวงจร
การทำวงจร
การทำวงจร

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

ฉันใช้บอร์ดต้นแบบขนาด 7 ซม. X 5 ซม.

การติดตั้งนาโน: ก่อนอื่นให้ตัดพินส่วนหัวของตัวเมียสองแถวโดยแต่ละอันมี 15 พิน ฉันใช้ก้ามแนวทแยงเพื่อตัดส่วนหัว จากนั้นประสานหมุดส่วนหัว ตรวจสอบให้แน่ใจว่าระยะห่างระหว่างรางทั้งสองนั้นพอดีกับ Arduino nano

การติดตั้งจอแสดงผล OLED: ตัดส่วนหัวของผู้หญิงด้วย 4 พิน แล้วบัดกรีตามภาพ

การติดตั้งขั้วต่อและส่วนประกอบ: บัดกรีส่วนประกอบที่เหลือตามภาพ

การเดินสาย: ทำการเดินสายตามแผนผัง ฉันใช้สายสีเพื่อทำการเดินสาย เพื่อให้สามารถระบุได้ง่าย

ขั้นตอนที่ 9: การติดตั้ง Standoffs

การติดตั้ง Standoffs
การติดตั้ง Standoffs
การติดตั้ง Standoffs
การติดตั้ง Standoffs
การติดตั้ง Standoffs
การติดตั้ง Standoffs

หลังจากบัดกรีและเดินสายแล้ว ให้ติดตั้งแท่นรองที่มุมทั้ง 4 มุม จะช่วยให้ข้อต่อบัดกรีและสายไฟมีระยะห่างจากพื้นเพียงพอ

ขั้นตอนที่ 10: ซอฟต์แวร์

ซอฟต์แวร์
ซอฟต์แวร์
ซอฟต์แวร์
ซอฟต์แวร์

ซอฟต์แวร์ทำงานดังต่อไปนี้

1. วัดแรงดันไฟ

นำตัวอย่าง ADC จำนวน 100 ตัวอย่าง มาบวกกันและหาค่าเฉลี่ยผลลัพธ์ ซึ่งทำเพื่อลดเสียงรบกวน

2. ตรวจสอบสภาพแบตเตอรี่เพื่อแจ้งเตือนหรือเริ่มรอบการคายประจุ

การแจ้งเตือน

i) Low-V!: หากแรงดันแบตเตอรี่ต่ำกว่าระดับการคายประจุต่ำสุด (2.9V สำหรับ Li Ion)

ii) ไฮ-วี!: หากแรงดันไฟของแบตเตอรี่สูงกว่าสภาวะที่ชาร์จเต็มแล้ว

iii) ไม่มีแบตเตอรี่!: หากที่ใส่แบตเตอรี่ว่างเปล่า

วงจรการปลดปล่อย

หากแรงดันไฟฟ้าของแบตเตอรี่อยู่ภายในแรงดันไฟฟ้าต่ำ (2.9V) และแรงดันไฟฟ้าสูง (4.3V) วงจรการคายประจุจะเริ่มขึ้น ให้คำนวณกระแสไฟและความจุตามที่อธิบายไว้ก่อนหน้านี้

3. แสดงพารามิเตอร์บน OLED

4. การบันทึกข้อมูลบนจอภาพแบบอนุกรม

ดาวน์โหลดรหัส Arduino ที่แนบมาด้านล่าง

ขั้นตอนที่ 11: การส่งออกข้อมูลอนุกรมและพล็อตบนแผ่นงาน Excel

การส่งออกข้อมูลอนุกรมและพล็อตบนแผ่นงาน Excel
การส่งออกข้อมูลอนุกรมและพล็อตบนแผ่นงาน Excel
การส่งออกข้อมูลอนุกรมและพล็อตบนแผ่นงาน Excel
การส่งออกข้อมูลอนุกรมและพล็อตบนแผ่นงาน Excel

ในการทดสอบวงจร อันดับแรก ฉันชาร์จแบตเตอรี่ Samsung 18650 ที่ดีโดยใช้ที่ชาร์จ IMAX ของฉัน จากนั้นใส่แบตเตอรี่ลงในเครื่องทดสอบใหม่ของฉัน ในการวิเคราะห์กระบวนการคายประจุทั้งหมด ฉันส่งออกข้อมูลอนุกรมไปยังสเปรดชีต จากนั้นฉันก็พลอตกราฟการคายประจุ ผลลัพธ์ที่ได้นั้นยอดเยี่ยมจริงๆ ฉันใช้ซอฟต์แวร์ชื่อ PLX-DAQ เพื่อทำสิ่งนี้ คุณสามารถดาวน์โหลดได้ที่นี่

คุณสามารถอ่านบทช่วยสอนนี้เพื่อเรียนรู้วิธีใช้ PLX-DAQ มันง่ายมาก

หมายเหตุ: ใช้งานได้ใน Windows เท่านั้น

ขั้นตอนที่ 12: บทสรุป

บทสรุป
บทสรุป
บทสรุป
บทสรุป

หลังจากการทดสอบไม่กี่ครั้ง ฉันสรุปได้ว่าผลการทดสอบค่อนข้างสมเหตุสมผล ผลลัพธ์ที่ได้คือ 50 ถึง 70mAh จากผลการทดสอบความจุของแบตเตอรี่ของแบรนด์ โดยการใช้ปืนวัดอุณหภูมิอินฟราเรด ฉันวัดอุณหภูมิที่เพิ่มขึ้นในตัวต้านทานโหลดด้วย ค่าสูงสุดคือ 51 องศาเซลเซียส

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

ดังนั้นในเวอร์ชันต่อๆ ไปของฉัน ฉันจะพยายามแก้ปัญหาการมาของชอร์ตด้านบนใน V1.0

เครดิต: ฉันต้องการให้เครดิตกับ Adam Welch ซึ่งโครงการบน YouTube เป็นแรงบันดาลใจให้ฉันเริ่มโครงการนี้ คุณสามารถดูวิดีโอ YouTube ของเขาได้

โปรดแนะนำการปรับปรุงใด ๆ เพิ่มความคิดเห็นหากมีข้อผิดพลาดหรือข้อผิดพลาด

หวังว่าบทช่วยสอนของฉันจะเป็นประโยชน์ หากคุณชอบอย่าลืมแชร์:)

สมัครสมาชิกโครงการ DIY เพิ่มเติม ขอบคุณ.

แนะนำ: