วัดแรงดันแบตเตอรี่ลิเธียมไอออน (ความจุที่เหลืออยู่)


14

สิ่งที่ฉันกำลังทำงานกับ:ฉันกำลังใช้งานบอร์ด Arduino ของตัวเอง (ในแง่ที่ว่าฉันใช้ Arduino bootloader และเครื่องมือแก้ไขรหัส) ที่ 3.3V และใช้พลังงานจากแบตเตอรี่ลิเธียมไอออนซึ่งเป็น USB ที่ชาร์จโดยไมโครชิพที่สอดคล้องกัน เครื่องชาร์จ IC

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

ฉันทำอะไรลงไป:

  • (แก้ไข: ปรับปรุงค่าตัวต้านทานและเพิ่มสวิตช์ P-MOSFET ตามคำแนะนำของ @stevenvh และ @ Jonny)

  • ฉันเชื่อมต่อตัวแบ่งแรงดันไฟฟ้าจากแบตเตอรี่ V_plus ด้วย "ส่วน" ที่ใหญ่กว่าไปที่ขาอ่านอะนาล็อก (เช่น ADC) บนชิพ Arduino / Atmega

  • ตัวหารคือ 33 KOhm-to-10 KOhm ดังนั้นอนุญาตให้ทำการวัดได้สูงสุด 4.1 โวลต์ของแบตเตอรี่ Li-ion จากไมโครคอนโทรลเลอร์ 3.3V ระดับของฉัน

  • นอกจากนี้การใช้หมุด I / O ตัวใดตัวหนึ่งเชื่อมต่อกับ MOSFET แบบ n-channel ฉันสามารถสลับกระแสผ่านตัวหารได้ก็ต่อเมื่อฉันต้องการการวัด

  • นี่คือแผนผังคร่าวๆ (อัปเดตเป็นครั้งที่สองตามคำแนะนำของ @stevenvh และ @Nick):

ป้อนคำอธิบายรูปภาพที่นี่

คำถามของฉัน:

  • การตั้งค่าปัจจุบันของฉันเป็นอย่างไร

  • ข้อ จำกัด เพียงอย่างเดียวของฉันคือ: (1) ฉันต้องการวัดความจุของแบตเตอรี่อย่างคร่าวๆตามการอ่านแรงดันไฟฟ้าตามที่อธิบายไว้ข้างต้น (2) ฉันต้องการป้องกันตัวแบ่งแรงดันไฟฟ้าจากการรบกวนการอ่านการชาร์จแบตเตอรี่ของ IC ของฉัน (ในการตั้งค่าดั้งเดิมของฉันบางครั้งตัวแบ่งทำให้ IC ผิดพลาดในการแสดงตนแม้เมื่อแบตเตอรี่ขาด


1
"ฉันใช้ค่าตัวต้านทานขนาดใหญ่" ขาอินพุตอาจมีกระแสรั่วไหลค่ากรณีที่แย่ที่สุดโดยทั่วไปคือ 1 uA ด้วยกระแสต่ำผ่านตัวแบ่งนี้อาจบิดเบือนการอ่าน
stevenvh

ดังนั้นฉันต้องการกระแสต่ำผ่านตัวแบ่ง แต่สูงพอที่อย่างน้อยก็จะมีลำดับความสำคัญสูงกว่ากระแสรั่วไหลสูงสุด
boardbite

หรือใช้ FET เพื่อเปิดและปิดตัวแบ่งเช่นฉันแนะนำในคำตอบนี้สำหรับคำถามที่คล้ายกัน
stevenvh

เมื่อใช้ FET แทน "สถานะ" ของตัวแบ่งคุณคิดว่าวิธีนี้อาจช่วยแก้ปัญหาการอ่านสถานะแบตเตอรี่ของเครื่องชาร์จ IC ผิดพลาดได้หรือไม่? (BTW ช่างเป็นเรื่องบังเอิญที่คน ๆ นั้นโพสต์คำถามในวันนี้ด้วย!)
boardbite

1
คุณมี FET ผิดที่ผิดด้าน หากคุณปิดสวิตช์นี้แรงดันไฟฟ้าเต็มจะอยู่ที่ขาอินพุตเนื่องจาก R1 จะไม่ดึงกระแสไฟ คุณต้องใช้ P-MOSFET ที่ด้านสูงเพื่อที่จะปิดสวิตช์จะดึงหมุด I / O ลงกราวด์
stevenvh

คำตอบ:


12

ป้อนคำอธิบายรูปภาพที่นี่

สิ่งนี้ดูเหมือนจะคล้ายกับแผนผังของ Nick อาจจะไม่ว่างเมื่อเขาโพสต์ :-)

เหตุผลแรกที่คุณไม่สามารถใช้ N-FET ที่ด้านสูง: มันต้องการแรงดันเกตที่สูงกว่าแหล่งที่มาสองสามโวลต์และ 4.2 V คือทั้งหมดที่คุณมีไม่มีอะไรที่สูงกว่า

ฉันมีค่าที่สูงขึ้นสำหรับการดึงขึ้นแม้ว่าค่า 100 kΩก็จะทำเช่นกัน 10 kΩจะทำให้เกิดกระแสเกินที่ไม่จำเป็น 400 µA เมื่อคุณวัด ไม่ใช่จุดจบของโลก แต่เป็น 1 ตัวต้านทานในทั้งสองกรณีดังนั้นทำไมไม่ใช้ค่าที่สูงกว่า

สำหรับมอสเฟตมีหลายส่วนให้เลือกเนื่องจากความต้องการไม่เข้มงวด คุณสามารถพิจารณาราคาที่ไม่แพงเช่นSi2303สำหรับ P-channel และBSS138สำหรับ N-channel


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

คุณต้องการแนะนำอะไรให้เป็นตัวอย่างของอุปกรณ์ N-Channel MOSFET (ประเภท SMD ที่เหมาะสม) ที่จะใช้ที่นี่? IRF530 มีขนาดใหญ่และไม่ถูกเกินไป (สำหรับ P-Channel ฉันเห็น Si2303 มาใน SMD ดังนั้นจึงได้รับการดูแลแล้ว)
boardbite

1
@Inga - คุณไม่ต้องการกระแสดังนั้นการต้านแบบไม่สำคัญ เพียงแค่ดูที่แรงดันไฟฟ้าของประตูเกต: มันควรจะอยู่ที่ 3.3 V แต่ถึงอย่างนั้นก็ไม่จำเป็นต้องจมกระแสใด ๆ จากนั้นก็มีทางเลือกมากมาย BSS138เป็นหนึ่งในราคาถูกที่สุดที่ฉันสามารถหาและจะทำอย่างดี
stevenvh

7

@Inga นี่เป็นความคิดเห็นมากกว่าคำตอบ แต่ฉันต้องการที่จะโพสต์ภาพดังนั้นฉันโพสต์มันเป็นคำตอบ

ไมโครคอนโทรลเลอร์ของคุณ (uC) ใช้พลังงานพร้อม + 3.3V การระบาย P-MOSFET ที่เสนออาจสูงถึง + 4.1V ขณะที่มันถูกดึงมาสัญญาณลอจิก + 3.3V จะไม่สามารถปิด P-MOSFET ได้อย่างสมบูรณ์ Q6 ในแผนผังด้านล่างเป็นรูปแบบเอาต์พุตของท่อระบายน้ำเปิดซึ่งทนต่อ + 4.1V

C14 ลดความต้านทานซึ่ง A / D ของคุณจะเห็น

ป้อนคำอธิบายรูปภาพที่นี่

[... ] แรงดันแบตเตอรี่ (ความจุที่เหลืออยู่)

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

ทำไมจึงไม่ใช่ N-channel MOSFET เดียวที่ด้านล่างและตัวต้านทานตัวแบ่งสองตัวที่ด้านบน?
[จากความคิดเห็นด้านล่าง]

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

1 ฉันจะใช้ V ccสั้น ๆ แต่การสนทนานี้ใช้กับ V dd , AV cc , AV ddเช่นกัน หากมีข้อสงสัยให้ค้นหาในแผ่นข้อมูลแน่นอน


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

ทำไมจึงไม่มี N Mosfet เดียวทางด้านล่างและตัวต้านทานแบบแบ่งสองตัวที่ด้านบน? ไม่เห็นว่าทำไมจึงจำเป็นต้องใช้ N Mosfet เพื่อขับเคลื่อน P Mosfet
Luis Carlos

1
@Luis ฉันได้แก้ไขคำตอบและเพิ่มการตอบกลับความคิดเห็นของคุณ
Nick Alexeev

4

Ad.A: ฉันคิดว่ามันยุติธรรมพอที่จะใช้ตัวแบ่งแรงดันไฟฟ้าแบบธรรมดาเพื่อตรวจจับแรงดันแบตเตอรี่ แม้ว่าคุณควรเลือกความต้านทานอย่างระมัดระวัง ความต้านทานภายในของปัจจัยการผลิต ADC ของคุณ100kΩตามแผ่นข้อมูล ATmega328 โปรดดู "รูปที่ 23-8 วงจรอินพุตแบบอะนาล็อก" หากตัวแบ่งของคุณมีความต้านทานเทียบเท่ากับอินพุต ADC วงจรอินพุต ADC โดยทั่วไปจะทำตัวเหมือนโหนดอื่นในตัวแบ่ง มันอาจทำให้คุณชดเชยในการอ่าน ADC

การใช้ตัวหารที่มีขนาดสูงสุด10kΩข้ามรางจะต่ำพอที่จะเพิกเฉยต่อความต้านทานอินพุตของ ADC ในขณะที่ใช้เพียง 410µA ถ้ามันมีมากเกินไปสำหรับการใช้งานของคุณคุณสามารถเลือกแนวต้านที่ใหญ่กว่าได้ แต่โปรดจำไว้ว่า ADC นั้นอยู่ที่นั่นและเชื่อมต่อกับ Vcc / 2


คำอธิบายนั้นสมเหตุสมผล แน่นอนว่า 0.4 mA นั้นไม่มากนัก! ฉันแค่พยายามทำตัวเป็นอุดมคติที่สุดเท่าที่จะเป็นไปได้ :) คุณมีการคาดเดาว่าทำไมการมีตัวหารนี้อาจส่งผลต่อการชาร์จ IC ของฉันว่ามีแบตเตอรี่หรือไม่
boardbite

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

ฉันแน่ใจว่าถ้าคุณทำตามความคิดของ stephenh ในการใช้ FET เพื่อเชื่อมต่อ / ยกเลิกการเชื่อมต่อตัวแบ่งเมื่อจำเป็นทุกอย่างจะเป็นไปได้ MOSFET มีความต้านทานที่ไม่สำคัญสำหรับตัวแบ่งของคุณ คุณอาจต้องการ ADC อื่นเพื่อตรวจสอบว่ามีการต่อ USB หรือไม่
จอนนี่ B ดี

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