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

بعد آخر اختبار قدرة البطارية: 6 خطوات
بعد آخر اختبار قدرة البطارية: 6 خطوات

فيديو: بعد آخر اختبار قدرة البطارية: 6 خطوات

فيديو: بعد آخر اختبار قدرة البطارية: 6 خطوات
فيديو: فحص النسبة الحقيقية لصحة بطارية الايفون 🔋⚡️ . . . . #battery #phone #iphone #apple 2024, شهر نوفمبر
Anonim
بعد آخر اختبار قدرة البطارية
بعد آخر اختبار قدرة البطارية
بعد آخر اختبار قدرة البطارية
بعد آخر اختبار قدرة البطارية

لماذا واحد أكثر قدرة اختبار

لقد قرأت الكثير من تعليمات بناء المختبرين المختلفة ولكن لا يبدو أن أيًا منها يناسب احتياجاتي. أردت أن أكون قادرًا أيضًا على اختبار أكثر من مجرد خلايا NiCd / NiMH أو Lion. أردت أن أكون قادرًا على اختبار بطارية أداة الطاقة دون أخذها أولاً. لذلك ، قررت إلقاء نظرة فاحصة على الأمر وتصميم واحد خاص بي. شيء واحد يؤدي إلى شيء آخر وقررت أخيرًا أن أكتب تعليمات بنفسي. قررت أيضًا عدم الخوض في جميع التفاصيل الخاصة بكيفية بناء جهاز الاختبار بالفعل لأن كل شخص يمكنه اتخاذ قرار بشأن خيارات معينة مثل حجم المقاوم الذي يجب استخدامه أو ما إذا كانت هناك حاجة إلى PCB أو أن Veroboard كافٍ وهناك أيضًا الكثير من التعليمات حول كيفية تثبيت النسر أو كيفية صنع ثنائي الفينيل متعدد الكلور. بمعنى آخر ، سأركز على الخطط والرمز وكيفية معايرة المختبر.

الخطوة 1: السجل - الإصدار 1

التاريخ - الإصدار 1
التاريخ - الإصدار 1

أعلاه هو الإصدار الأول مع إضافة دعم الإدخال 10V المذكور أدناه (R12 & R17 & Q11 & Q12).

تم أخذ الإصدار الأول بشكل أو بآخر من تعليمات بواسطة deba168 (لسوء الحظ ، لا يمكنني العثور على تعليماته لتوفير ارتباط). تم إجراء بعض التغييرات الطفيفة فقط. في هذا الإصدار ، كان لدي مقاوم تحميل 10 أوم يتم التحكم فيه بواسطة mosfet. هذا جلب بعض المشاكل بالرغم من ذلك. عند اختبار خلية NiCd أو NiMH ، تم قياس الوقت المطلوب بسهولة بالساعات إن لم يكن أيام. استغرقت بطارية 1500 مللي أمبير أكثر من 12 ساعة (كان التيار 120 مللي أمبير فقط). من ناحية أخرى ، يمكن للإصدار الأول اختبار البطاريات التي تقل عن 10 فولت فقط. ويمكن أن تصل بطارية 9.6 فولت المشحونة بالكامل إلى 11.2 فولت والتي لا يمكن اختبارها بسبب حد 10 فولت. بحاجة لشيء ينبغي القيام به. أولاً ، لقد أضفت للتو بضعة موزفيت ومقاومات لجعل فواصل الجهد قادرة على السماح بأكثر من 10 فولت. لكن هذا من ناحية أخرى أثار مشكلة أخرى. يمكن أن تحتوي البطارية التي تم تحميلها بالكامل بجهد 14.4 فولت على ما يصل إلى 16.8 فولت مع مقاومة 10 أوم يعني وجود تيار 1.68 أمبير وبالطبع تبديد الطاقة من مقاوم الحمل بحوالي 30 وات. لذلك ، مع الجهد المنخفض وقت الاختبار طويل جدًا والجهد العالي الحالي مرتفع جدًا. ومن الواضح أنه لم يكن حلاً مناسباً وهناك حاجة إلى مزيد من التطوير.

الخطوة 2: الإصدار 2

أردت حلاً حيث سيبقى التيار في حدود معينة بغض النظر عن جهد البطارية. كان أحد الحلول هو استخدام PWM ومقاوم واحد فقط ، لكنني فضلت وجود حل بدون تيار نابض أو الحاجة إلى تبديد حرارة mosfet. وهكذا ، قمت بإنشاء حل مع 10 فتحات للجهد ، كل 2 فولت عرض ، باستخدام 10 مقاومات 3.3 أوم و mosfet لكل مقاوم.

الخطوة 3: هذا كيف انتهى الأمر

هذه هي الطريقة التي انتهى بها الأمر
هذه هي الطريقة التي انتهى بها الأمر

التعليقات على الدائرة يمكن للمرء أن يجادل بأن فقدان الجهد على mosfet لا يكاد يذكر لأن مقاومة mosfet منخفضة للغاية ، لكنني تركت اختيار mosfet للقارئ وبالتالي يمكن أن تتجاوز المقاومة 1 أوم حيث تبدأ في شيء. في الإصدار الأول ، سيؤدي اختيار mosfet الصحيح إلى إزالة الحاجة إلى قياس النقطة السفلية ولكن في الإصدار 2 قررت قياس الجهد على مقاوم واحد فقط مما يجعل من المهم الحصول على نقطتي قياس بالفعل. وكان السبب وراء الاختيار هو البساطة في توصيل أسلاك Veroboard. هذا يضيف بعض الخطأ في الدقة لأن الجهد المقاس عبر المقاوم الواحد أصغر بكثير من القياس على جميع المقاومات. فيما يتعلق باختيار المكون ، قررت استخدام ما كنت أمتلكه بالفعل أو ما يمكنني الحصول عليه بسهولة. أدى ذلك إلى اتباع BOM:

  • Arduino Pro Mini 5V! هام! لقد استخدمت إصدار 5V وكل شيء يعتمد عليه
  • شاشة 128x64 I2C OLED
  • 10 × 5 واط 3.3 أوم مقاومات
  • 3 × 2n7000 Mosfets
  • 10 × IRFZ34N Mosfets
  • مقاومات 6 × 10 كيلو أوم
  • مقاومات 2 × 5 كيلو أوم
  • مكثف 16 فولت 680 فائق التوهج
  • 1 مروحة وحدة المعالجة المركزية القديمة

لم أقم بإضافة ما يلي في الخطط

  • مقاومات pullup على خطوط I2C ، والتي لاحظت أنها جعلت الشاشة أكثر ثباتًا
  • خطوط الكهرباء
  • مكثف في خط 5V مما أدى أيضًا إلى استقرار العرض

أثناء الاختبار ، لاحظت أن مقاومات الحمل ستصبح ساخنة جدًا خاصةً إذا كانت جميعها قيد الاستخدام. ارتفعت درجة الحرارة إلى أكثر من 100 درجة مئوية (أي ما يزيد عن 212 درجة فهرنهايت) وإذا كان سيتم إغلاق النظام بأكمله في صندوق ، فيجب توفير نوع من التبريد. المقاومات التي استخدمتها هي 3.3 أوم / 5 واط ويجب أن يحدث الحد الأقصى للتيار بحوالي 2 فولت لكل مقاوم يعطي 2 فولت / 3.3 = 0.61 أمبير مما ينتج عنه 1.21 واط. انتهى بي الأمر بإضافة مروحة بسيطة في الصندوق. في الغالب لأنني صادفت بعض المعجبين القدامى لوحدة المعالجة المركزية.

وظائف تخطيطية

إنه أمر واضح ومباشر. البطارية المراد اختبارها متصلة بسلسلة المقاومات والأرض. نقاط قياس الجهد هي وصلة البطارية والمقاوم الأول. يتم استخدام مقسمات الجهد بعد ذلك لإسقاط الجهد إلى مستوى يناسب Arduino بشكل أفضل. يتم استخدام مخرج رقمي واحد لتحديد نطاق 10V أو 20V للفواصل. يمكن تأريض كل مقاوم في الحمولة بشكل فردي باستخدام mosfets ، والتي يتم تشغيلها مباشرة بواسطة Arduino. وأخيرًا ، يتم توصيل الشاشة بدبابيس Arduino I2C. لا يوجد الكثير ليقال عن التخطيطي J

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

الرمز
الرمز

أعلاه يمكن رؤية الوظيفة التقريبية للكود. دعونا نلقي نظرة فاحصة على الكود ثم (ملفات arduino ino مرفقة). هناك عدد من الوظائف ومن ثم الحلقة الرئيسية.

الحلقة الرئيسية

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

الإجراء الخاص بإظهار النتائج

تقوم وظيفة showResults ببساطة بتعيين الخطوط التي سيتم عرضها على الشاشة وكذلك السلسلة التي سيتم إرسالها إلى الواجهة التسلسلية.

إجراء لقياس الفولتية

في بداية الوظيفة ، يتم قياس Vcc لـ Arduino. من الضروري أن تكون قادرًا على حساب الفولتية المقاسة باستخدام المدخلات التناظرية. ثم يتم قياس جهد البطارية باستخدام نطاق 20 فولت لتتمكن من تحديد النطاق الذي يجب استخدامه. ثم يتم حساب جهد البطارية والجهد المقاوم. تستفيد قياسات جهد البطارية من فئة DividerInput التي تحتوي على طرق للقراءة والجهد لإعطاء القراءة الأولية أو الجهد المحسوب للإدخال التناظري المعني.

إجراء اختيار القيم المستخدمة

في وظيفة selectUsedValues ، يتم تخمين عدد الخلايا ويتم تعيين الحدود العالية والمنخفضة للبطارية لاستخدامها مع إجراء التفريغ. يتم أيضًا وضع علامة على القياس على أنه بدأ ، ويتم تعيين حدود هذا الإجراء في بداية المتغيرات العامة. على الرغم من أنها يمكن أن تكون ثابتة ، ويمكن أيضًا تعريفها داخل الإجراء نظرًا لعدم استخدامها على مستوى العالم. لكن مهلا ، هناك دائمًا شيء يجب تحسينه:)

إجراء لحساب سعة البطارية

تهتم وظيفة التفريغ بحساب سعة البطارية فعليًا. يحصل على الحدود المنخفضة والعالية لجهود البطارية قيد الاختبار كمعلمات. لا يتم استخدام القيمة العالية في هذا الإصدار ، ولكن يتم استخدام القيمة المنخفضة لتحديد وقت إيقاف الاختبار. في بداية الوظيفة ، تم العثور على عدد المقاومات التي يجب استخدامها باستخدام وظيفة تم إنشاؤها لهذا الغرض. تقوم الوظيفة بإرجاع عدد المقاوم وفي نفس الوقت تبدأ في التفريغ وإعادة ضبط العداد. ثم يتم قياس الفولتية واستخدامها مع قيمة المقاوم المعروفة لحساب التيار. الآن بعد أن عرفنا الجهد والتيار والوقت المستغرق منذ آخر قياس ، يمكننا حساب السعة. في نهاية عملية التفريغ ، تتم مقارنة جهد البطارية بالحد المنخفض وإذا كان أقل من الحد تتوقف مرحلة التفريغ ، يتم إغلاق mosfets ويتم وضع علامة على القياس على أنه جاهز.

إجراء لإيجاد عدد المقاومات المراد استخدامها

في وظيفة selectNumOfResistors ، يتم إجراء مقارنة بسيطة للجهد بالقيم المحددة مسبقًا وبناءً على ذلك يتم تحديد عدد المقاومات التي سيتم استخدامها. يتم فتح mosfet المناسب لتخطي بعض المقاومات. يتم تحديد فتحات الجهد بحيث يظل الحد الأقصى للتيار في أي وقت أثناء التفريغ أعلى قليلاً من 600 مللي أمبير (2 فولت / 3.3 أوم = 606 مللي أمبير). ترجع الدالة عدد المقاومات المستخدمة. نظرًا لأن المروحة يتم دفعها من نفس خط mosfet الأول ، فيجب فتحها دائمًا عند استمرار التفريغ.

الخطوة 5: معايرة العداد

معايرة العداد
معايرة العداد

لمعايرة المقياس ، قمت بإنشاء تطبيق آخر (مرفق). يستخدم نفس الجهاز. في البداية ، يتم تعيين قيم مقسم التصحيح على 1000.

const int divCorrectionB10V = 1000 ؛ // معامل تصحيح الفاصل في النطاق 10V const int divCorrectionR10V = 1000 ؛ // معامل تصحيح الفاصل في النطاق 10V const int divCorrectionB20V = 1000 ؛ // معامل تصحيح الفاصل في النطاق 20V const int divCorrectionR20V = 1000 ؛ // معامل تصحيح الحاجز في النطاق 20V

في دالة readVcc () ، يعتمد جهد Vcc الناتج على ضبط القيمة في السطر الأخير من الوظيفة قبل العودة. عادة يمكنك أن تجد في الإنترنت قيمة 1126400L لاستخدامها في الحساب. لقد لاحظت أن النتيجة كانت غير صحيحة.

عملية المعايرة:

  1. قم بتحميل تطبيق القياس على Arduino.
  2. يمكنك أن ترى في Arduino (وفي الإخراج التسلسلي وما إذا كانت المروحة تدور) إذا كان التحميل قيد التشغيل. إذا تم تشغيل مفتاح اختيار نوع البطارية.
  3. اضبط القيمة في readuVCC () للحصول على النتيجة الصحيحة. خذ القيمة التي تعطيها الدالة (وهي بالميليفولت) وقسم القيمة الطويلة معها. سوف تحصل على القيمة الأولية للمرجع الداخلي. الآن قم بقياس جهد الإمداد الفعلي بالميليفولت بمقياس متعدد واضربه بالقيمة المحسوبة مسبقًا وستحصل على القيمة الطويلة الجديدة المصححة. في حالتي ، أعادت الوظيفة 5288 مللي فولت عندما كان Vcc الفعلي 5.14 فولت. حساب 1126400/5288 * 5140 = 1094874 الذي تم الانتهاء منه بالتجربة. ضع القيمة الجديدة في الكود وقم بتحميله مرة أخرى على Arduino.
  4. يتم ضبط قيم تصحيح مقسم الإدخال التناظري باستخدام مصدر طاقة قابل للتعديل يستخدم لتغذية مدخلات العداد. الأبسط هو استخدام الفولتية من 1 فولت إلى 20 فولت بخطوات 1 فولت وتسجيل النتائج في جدول بيانات. يتم أخذ المتوسط في جدول البيانات. يتم حساب القيم المصححة بالصيغة التالية: "raw_value * range * Vcc / Vin" حيث تكون raw_value هي القيمة في 10VdivB أو 10VdivR أو 20VdivB أو 20VdivR اعتمادًا على التصحيح المراد حسابه.

انظر إلى جدول البيانات كيف بدا لي. يتم حساب المتوسطات فقط من القيم التي يجب أن تكون في النطاق ثم يتم تعيين هذه القيم في تطبيق العداد الفعلي.

مثله

const int divCorrectionB10V = 998 ؛ // مقسم تصحيح الفاصل في النطاق 10V const int divCorrectionR10V = 1022 ؛ // مقسم تصحيح الفاصل في النطاق 10V const int divCorrectionB20V = 1044 ؛ // مقسم تصحيح الفاصل في النطاق 20V const int divCorrectionR20V = 1045 ؛ // مقسم تصحيح الفاصل في نطاق 20 فولت

يمكن ضبط قيمة المقاوم من خلال توفير بعض الجهد للمدخل (أي 2 فولت) ، وتبديل مفتاح نوع الخفاش (لتحميل الحمل) وقياس التيار الداخل والجهد عبر المقاوم الأول وقسمة الجهد على التيار. بالنسبة لي ، أعطت 2V 607mA والتي تعطي 2 / 0.607 = 3.2948 أوم والتي قمت بتقريبها إلى 3.295 أوم. حتى الآن تتم المعايرة.

الخطوة 6: آخر ملاحظة

ملاحظة مهمة واحدة هنا. من الضروري أن تكون جميع التوصيلات في حالة ممتازة من البطارية إلى المقاومات. كان لدي اتصال سيء وكنت أتساءل لماذا أحصل على 0.3 فولت أقل في شبكة المقاومة مقارنة بالبطارية. هذا يعني أن عملية القياس انتهت على الفور تقريبًا بخلايا نيكل كادميوم 1.2 فولت لأنه تم الوصول إلى الحد الأدنى البالغ 0.95 فولت بسرعة.

موصى به: