جدول المحتويات:

Arduino LTC6804 BMS - الجزء 2: لوحة التوازن: 5 خطوات
Arduino LTC6804 BMS - الجزء 2: لوحة التوازن: 5 خطوات

فيديو: Arduino LTC6804 BMS - الجزء 2: لوحة التوازن: 5 خطوات

فيديو: Arduino LTC6804 BMS - الجزء 2: لوحة التوازن: 5 خطوات
فيديو: Bluetooth - Arduino BMS Part 2 2024, يوليو
Anonim
Arduino LTC6804 BMS - الجزء 2: لوحة التوازن
Arduino LTC6804 BMS - الجزء 2: لوحة التوازن

الجزء 1 هنا

يشتمل نظام إدارة البطارية (BMS) على وظائف لاستشعار معلمات حزمة البطارية المهمة بما في ذلك جهد الخلية وتيار البطارية ودرجات حرارة الخلية وما إلى ذلك. إذا كان أي منها خارج النطاق المحدد مسبقًا ، فيمكن فصل الحزمة عن حمولتها أو شاحنها ، أو يمكن اتخاذ إجراء آخر مناسب. في مشروع سابق (https://www.instructables.com/id/Arduino-LTC6804-Battery-Management-System/) ناقشت تصميم BMS الخاص بي ، والذي يعتمد على تقنية Linear Technology LTC6804 Multicell Battery Monitor ومتحكم Arduino. يوسع هذا المشروع مشروع BMS عن طريق إضافة موازنة حزمة البطارية.

يتم إنشاء حزم البطاريات من خلايا فردية في تكوينات متوازية و / أو متسلسلة. على سبيل المثال ، سيتم إنشاء حزمة 8p12s باستخدام 12 مجموعة متصلة بالسلسلة من 8 خلايا متصلة بشكل متوازي. سيكون هناك إجمالي 96 خلية في الحزمة. للحصول على أفضل أداء ، يجب أن تحتوي جميع الخلايا البالغ عددها 96 على خصائص متطابقة بشكل وثيق ، ومع ذلك ، سيكون هناك دائمًا بعض الاختلاف بين الخلايا. على سبيل المثال ، قد يكون لبعض الخلايا سعة أقل من الخلايا الأخرى. عندما يتم شحن العبوة ، ستصل الخلايا ذات السعة المنخفضة إلى أقصى جهد آمن لها قبل بقية العبوة. سيكتشف نظام إدارة المباني هذا الجهد العالي ويقطع المزيد من الشحن. ستكون النتيجة أن الكثير من العبوة غير مشحون بالكامل عندما يقطع BMS الشحن بسبب الجهد العالي للخلية الأضعف. يمكن أن تحدث ديناميكية مماثلة أثناء التفريغ ، عندما لا تستطيع الخلايا ذات السعة العالية التفريغ تمامًا لأن BMS يفصل الحمل عندما تصل أضعف بطارية إلى حد الجهد المنخفض. وبالتالي فإن العبوة جيدة مثل أضعف بطارياتها ، مثل أن تكون السلسلة قوية مثل أضعف حلقاتها.

أحد الحلول لهذه المشكلة هو استخدام لوحة التوازن. في حين أن هناك العديد من الاستراتيجيات لتحقيق التوازن في العبوة ، فإن أبسط لوحات التوازن "السلبية" مصممة للتخلص من بعض شحنات الخلايا ذات الجهد العالي عندما تقترب العبوة من الشحن الكامل. بينما يتم إهدار بعض الطاقة ، يمكن للحزمة ككل تخزين المزيد من الطاقة. يتم النزيف عن طريق تبديد بعض الطاقة من خلال مجموعة مقاومة / مفتاح يتحكم فيها متحكم دقيق. يصف هذا التوجيه نظام موازنة سلبي متوافق مع اردوينو / LTC6804 BMS من مشروع سابق.

اللوازم

يمكنك طلب Balance Board PCB من PCBWays هنا:

www.pcbway.com/project/shareproject/Balance_board_for_Arduino_BMS.html

الخطوة 1: نظرية العملية

نظرية التشغيل
نظرية التشغيل

تناقش الصفحة 62 من ورقة البيانات LTC6804 موازنة الخلايا. هناك خياران: 1) استخدام MOSFETS الداخلي للقناة N لتسييل التيار من الخلايا العالية ، أو 2) باستخدام MOSFETS الداخلية للتحكم في المفاتيح الخارجية التي تحمل تيار النزف. أستخدم الخيار الثاني لأنني أستطيع تصميم دائرة التسييل الخاصة بي للتعامل مع تيار أعلى مما يمكن القيام به باستخدام المفاتيح الداخلية.

تتوفر MOSFETS الداخلية من خلال المسامير S1-S12 بينما يتم الوصول إلى الخلايا نفسها باستخدام المسامير C0-C12. تُظهر الصورة أعلاه واحدة من 12 دائرة تسييل متطابقة. عند تشغيل Q1 ، سيتدفق التيار من C1 إلى الأرض عبر R5 ، مما يؤدي إلى تبديد بعض الشحنة في الخلية 1. لقد اخترت مقاومة 6 أوم ، 1 وات ، والتي يجب أن تكون قادرة على التعامل مع عدة ملي أمبير من تيار النزيف.. هناك تمت إضافة مؤشر LED حتى يتمكن المستخدم من رؤية الخلايا التي تتوازن في أي وقت.

يتم التحكم في المسامير S1-S12 بواسطة CFGR4 وأول 4 بتات من مجموعات تسجيل CFGR5 (انظر الصفحتين 51 و 53 من ورقة البيانات LTC6804). تم تعيين مجموعات التسجيل هذه في كود Arduino (الذي تمت مناقشته أدناه) في وظيفة Balance_cfg.

الخطوة 2: التخطيطي

تخطيطي
تخطيطي

تم تصميم الرسم التخطيطي للوحة التوازن BMS باستخدام Eagle CAD. إنه واضح ومباشر إلى حد ما. توجد دائرة تسييل واحدة لكل قطعة سلسلة حزمة بطارية. يتم التحكم في المفاتيح بواسطة إشارات من LTC6804 عبر رأس JP2. يتدفق تيار النزف من حزمة البطارية عبر الرأس JP1. لاحظ أن تيار التسييل يتدفق إلى الجزء التالي من حزمة البطارية السفلية ، على سبيل المثال ، يتدفق C9 إلى C8 ، وما إلى ذلك. يتم وضع رمز درع Arduino Uno على التخطيطي لتخطيط PCB الموضح في الخطوة 3. يتم توفير صورة عالية الدقة في ملف مضغوط. فيما يلي قائمة الأجزاء (لسبب ما لا تعمل ميزة تحميل ملف Instructables بالنسبة لي….)

وصف أجزاء حزمة الجهاز القيمة الكمية

12 LEDCHIPLED_0805 CHIPLED_0805 LED1، LED2، LED3، LED4، LED5، LED6، LED7، LED8، LED9، LED10، LED11، LED12 LED 12 BSS308PEH6327XTSA1 MOSFET-P SOT23-R Q1، Q2، Q3، Q4، Q5، Q8 ، Q9، Q10، Q11، Q12 P-Channel Mosfet 2 PINHD-1X13_BIG 1X13-BIG JP1، JP2 PIN HEADER 12 16 R-US_R2512 R2512 R5، R7، R9، R11، R13، R15، R17، R19، R21، R23، R25 ، R27 RESISTOR ، الرمز الأمريكي 12 1K R-US_R0805 R0805 R4 ، R6 ، R8 ، R10 ، R12 ، R14 ، R16 ، R18 ، R20 ، R22 ، R24 ، R26 RESISTOR ، الرمز الأمريكي 12200 R-US_R0805 R0805 R1 ، R2 ، R3 ، R28 ، R29 ، R30 ، R31 ، R32 ، R33 ، R34 ، R35 ، R36 RESISTOR ، رمز أمريكي

الخطوة 3: تخطيط ثنائي الفينيل متعدد الكلور

تخطيط ثنائي الفينيل متعدد الكلور
تخطيط ثنائي الفينيل متعدد الكلور

يتم تحديد التخطيط في الغالب من خلال تصميم نظام BMS الرئيسي الذي تمت مناقشته في تعليمات منفصلة (https://www.instructables.com/id/Arduino-LTC6804-Battery-Management-System/). يجب أن تتطابق الرؤوس JP1 و JP2 مع الرؤوس المتطابقة في BMS. يتم ترتيب Mosfets ومقاومات النزف ومصابيح LED بطريقة منطقية على درع Arduino Uno. تم إنشاء ملفات Gerber باستخدام Eagle CAD وتم إرسال PCBs إلى Sierra Circuits للتصنيع.

الملف المرفق "Gerbers Balance Board.zip.txt" هو في الواقع ملف مضغوط يحتوي على Gerbers. يمكنك فقط حذف جزء.txt من اسم الملف ثم فك ضغطه كملف مضغوط عادي.

أرسل لي رسالة إذا كنت ترغب في الحصول على ثنائي الفينيل متعدد الكلور ، فربما لا يزال لدي القليل منها.

الخطوة 4: تجميع ثنائي الفينيل متعدد الكلور

تم لحام لوحات ثنائي الفينيل متعدد الكلور ذات اللوحة المتوازنة يدويًا باستخدام محطة لحام يتم التحكم في درجة حرارتها من Weller WESD51 مع طرف من سلسلة ETB ET 0.093 "مفك براغي" ولحام 0.3 مم. على الرغم من أن النصائح الصغيرة قد تبدو أفضل للعمل المعقد ، إلا أنها لا تحتفظ بالحرارة وتجعل المهمة أكثر صعوبة. استخدم قلم تدفق لتنظيف وسادات PCB قبل اللحام. 0.3 مم لحام يعمل بشكل جيد لأجزاء SMD لحام اليد. ضع القليل من اللحام على وسادة واحدة ثم ضع الجزء بملاقط أو سكين x-acto وقم بإمساك تلك الوسادة. يمكن بعد ذلك لحام الوسادة المتبقية دون تحريك الجزء. تأكد من عدم الإفراط في تسخين الجزء أو منصات PCB. نظرًا لأن معظم المكونات كبيرة إلى حد ما وفقًا لمعايير SMD ، فإن PCB سهل التجميع إلى حد ما.

الخطوة 5: الكود

الشفرة
الشفرة

يتم توفير كود Arduino الكامل في التعليمات السابقة المرتبطة أعلاه. هنا سوف ألفت انتباهك إلى القسم الذي يتحكم في موازنة الخلايا. كما هو مذكور أعلاه ، يتم التحكم في S1-S12 بواسطة CFGR4 وأول 4 بتات من مجموعات تسجيل CFGR5 على LTC6804 (انظر الصفحتين 51 و 53 من ورقة البيانات LTC6804). تكتشف وظيفة الحلقة الخاصة برمز Arduino الجزء الأعلى من حزمة بطارية الجهد وتضع رقمها في الخلية المتغيرة Max_i. إذا كان جهد cellMax_i أكبر من CELL_BALANCE_THRESHOLD_V ، فإن الكود سوف يستدعي الوظيفة Balance_cfg () ، ويمرر رقم المقطع العالي ، cellMax_i. تعيّن الوظيفة Balance_cfg قيم سجل LTC6804 المناسب. ثم يقوم استدعاء LTC6804_wrcfg بكتابة هذه القيم إلى IC ، وتشغيل دبوس S المرتبط بـ cellMax_i.

موصى به: