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

ATTiny85 مكثف متر: 4 خطوات
ATTiny85 مكثف متر: 4 خطوات

فيديو: ATTiny85 مكثف متر: 4 خطوات

فيديو: ATTiny85 مكثف متر: 4 خطوات
فيديو: How to make DIY I2C slave devices with ease - ATtiny Device 2024, يوليو
Anonim
ATTiny85 مكثف متر
ATTiny85 مكثف متر
ATTiny85 مكثف متر
ATTiny85 مكثف متر

هذا الدليل مخصص لمقياس مكثف يعتمد على ATTiny85 مع الميزات التالية.

  • بناءً على ATTiny85 (DigiStamp)
  • SSD1306 شاشة OLED مقاس 0.96 بوصة
  • قياس التردد للمكثفات منخفضة القيمة 1pF - 1uF باستخدام 555 مذبذب
  • قياس وقت الشحن للمكثفات عالية القيمة 1 فائق التوهج - 50000 فائق التوهج
  • يتم استخدام منفذين منفصلين لطرق تقليل السعة الثابتة
  • يتم استخدام قيمتين للتيار لوقت الشحن لتقليل الوقت للمكثفات الكبيرة
  • طريقة 555 أصفار ذاتية عند بدء التشغيل ، يمكن إعادة صفرتها بضغطة زر
  • اختبار سريع يستخدم لتحديد الطريقة التي يجب استخدامها لكل دورة قياس.
  • يمكن تحسين دقة طريقة وقت الشحن من خلال دعم ضبط تردد ساعة OSCVAL

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

التخطيطي والنظرية
التخطيطي والنظرية

يُظهر التخطيط ATTiny يقود شاشة SSD1306 OLED عبر واجهة I2C. يتم تشغيله مباشرة من بطارية LiOn 300mAh ويتم تضمين نقطة شحن يمكن استخدامها مع شاحن خارجي متوافق مع LiOn.

تعتمد طريقة القياس الأولى على قياس تردد مذبذب يعمل بحرية 555. هذا له تردد أساسي تحدده المقاومات والمكثف الذي يجب أن يكون عالي الدقة لأن هذا يحدد دقة القياسات. لقد استخدمت مكثفًا من البوليسترين 820pF 1٪ كان لدي ولكن يمكن استخدام قيم أخرى حول 1nF. يجب إدخال القيمة في البرنامج مع تقدير أي سعة شاردة (~ 20pF). أعطى هذا ترددًا أساسيًا يبلغ حوالي 16 كيلو هرتز. يتم تغذية خرج 555 في PB2 من ATTiny المبرمج كعداد للأجهزة. من خلال قياس العد على مدى فترة حوالي ثانية واحدة ، يمكن تحديد التردد. يتم ذلك عند بدء التشغيل لتحديد التردد الأساسي. عند إضافة مكثف قيد الاختبار بشكل متوازي إلى مكثف القاعدة ، يتم تخفيض التردد وعندما يتم قياسه ومقارنته بالتردد الأساسي ، يمكن حساب قيمة السعة المضافة.

الميزة الرائعة لهذه الطريقة هي أن القيمة المحسوبة تعتمد فقط على دقة المكثف الأساسي. فترة القياس لا تهم. تعتمد الدقة على دقة قياسات التردد التي تكون عالية جدًا بحيث يمكن قياس السعة المضافة الصغيرة جدًا. يبدو أن العامل المحدد هو "ضوضاء التردد" لمذبذب 555 والذي يعادل بالنسبة لي حوالي 0.3pF.

يمكن استخدام الطريقة على نطاق لائق. لتحسين النطاق ، أقوم بمزامنة فترة القياس للكشف عن حواف النبضات الواردة. هذا يعني أنه حتى التذبذب منخفض التردد مثل 12 هرتز (مع مكثف 1 فائق التوهج) يتم قياسه بدقة.

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

لتفريغ المكثف إلى 0 فولت ، يتم استخدام MOSFET ذي القناة n مع المقاوم ذي القيمة المنخفضة للحد من تيار التفريغ. هذا يعني أنه حتى المكثفات ذات القيمة الكبيرة يمكن تفريغها بسرعة.

لشحن المكثف ، يتم استخدام قيمتين لمقاوم الشحن. توفر القيمة الأساسية أوقات شحن معقولة للمكثفات من 1 فائق التوهج إلى حوالي 50 فائق التوهج. يتم استخدام MOSFET من النوع p للتوازي في المقاوم المنخفض للسماح بقياس المكثفات ذات القيمة الأعلى في فترة زمنية معقولة. تعطي القيم المختارة وقت قياس يبلغ حوالي ثانية واحدة للمكثفات حتى 2200 فائق التوهج وأطول نسبيًا للقيم الأكبر. عند الحد الأدنى للقيمة ، يجب الاحتفاظ بفترة القياس طويلة بشكل معقول للسماح بتحديد الانتقال من خلال عتبة 50٪ ليتم إجراؤها بدقة كافية. يبلغ معدل أخذ العينات في ADC حوالي 25 درجة ثانية ، لذا فإن فترة لا تقل عن 22 مللي ثانية توفر دقة معقولة.

نظرًا لأن ATTiny حدد IO (6 دبابيس) ، فيجب أن يتم تخصيص هذا المورد بعناية. هناك حاجة إلى 2 دبابيس للعرض ، 1 لإدخال المؤقت ، 1 لـ ADC ، 1 للتحكم في التفريغ و 1 للتحكم في معدل الشحن. أردت التحكم في زر الضغط للسماح بإعادة التصفير في أي وقت. يتم ذلك عن طريق رفع خط I2C SCL. نظرًا لأن إشارات I2C عبارة عن استنزاف مفتوح ، فلا يوجد تعارض كهربائي عن طريق السماح للزر بسحب هذا الخط إلى مستوى منخفض. ستتوقف الشاشة عن العمل مع الضغط على الزر ولكن هذا ليس له أي تأثير حيث يتم استئنافه عند تحرير الزر.

الخطوة الثانية: البناء

بناء
بناء
بناء
بناء
بناء
بناء

لقد صنعت هذا في صندوق صغير مطبوع ثلاثي الأبعاد مقاس 55 مم × 55 مم. تم تصميمه ليحمل المكونات الأربعة الرئيسية ؛ لوحة ATTiny85 DigiStamp ، وشاشة SSD1306 ، وبطارية LiOn ، وقليلًا من لوحة النموذج الأولي التي تحتوي على جهاز ضبط الوقت 55 وإلكترونيات التحكم في الشحن.

الضميمة على

الأجزاء المطلوبة

  • لوحة ATTiny85 DigiStamp. لقد استخدمت إصدارًا بموصل microUSB يُستخدم لتحميل البرامج الثابتة.
  • شاشة SSD1306 I2C OLED
  • بطارية LiOn 300 مللي أمبير
  • شريط صغير من لوحة النماذج الأولية
  • شريحة المؤقت CMOS 555 (TLC555)
  • n- قناة MOSFET AO3400
  • ف قناة MOSFET AO3401
  • المقاومات 4R7، 470R، 22K، 2x33K
  • المكثفات 4u7 ، 220u
  • مكثف دقيق 820pF 1٪
  • مفتاح منزلق مصغر
  • 2 × 3 رؤوس لمنفذ الشحن ومنافذ القياس
  • اضغط الزر
  • نسيج
  • وصل الأسلاك

الادوات المحتاجة

  • غرامة نقطة لحام الحديد
  • ملاقيط

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

يمكنك إجراء بعض تعديلات توفير الطاقة على لوحة ATTiny قبل التركيب مما يقلل التيار قليلاً ويطيل عمر البطارية.

www.instructables.com/Reducing-Sleep-Curre…

هذا ليس بالغ الأهمية حيث يوجد مفتاح طاقة لإيقاف تشغيل العداد عندما لا يكون قيد الاستخدام.

الخطوة الثالثة: البرمجيات

يمكن العثور على البرامج الخاصة بمقياس المكثف على

github.com/roberttidey/CapacitorMeter

هذا رسم تخطيطي قائم على Arduino. يحتاج إلى مكتبات للعرض و I2C التي يمكن العثور عليها في

github.com/roberttidey/ssd1306BB

github.com/roberttidey/I2CTinyBB

تم تحسينها بحيث تشغل ATTiny الحد الأدنى من الذاكرة. مكتبة I2C هي طريقة دوي عالية السرعة تسمح باستخدام أي دبابيس. هذا مهم لأن طرق I2C التي تستخدم المنفذ التسلسلي تستخدم PB2 الذي يتعارض مع استخدام إدخال المؤقت / العداد اللازم لقياس التردد 555.

تم تصميم البرنامج حول آلة الحالة التي تأخذ القياس عبر دورة من الحالات. يدعم ISR الفائض من عداد المؤقت لتوسيع الأجهزة 8 بت. يدعم ISR الثاني تشغيل ADC في الوضع المستمر. هذا يعطي أسرع استجابة لدائرة الشحن التي تتجاوز العتبة.

في بداية كل دورة قياس ، تحدد وظيفة getMeasureMode الطريقة الأكثر ملاءمة للاستخدام لكل قياس.

عند استخدام طريقة 555 ، يبدأ توقيت العد فقط عندما يتغير العداد. وبالمثل ، لا يتم إيقاف التوقيت إلا بعد فترة القياس الاسمية وعند اكتشاف حافة. يسمح هذا التزامن بحساب دقيق للتردد حتى بالنسبة للترددات المنخفضة.

عندما يبدأ البرنامج ، فإن أول 7 قياسات تستخدم "دورات معايرة" لتحديد التردد الأساسي لـ 555 بدون مكثف إضافي. تم حساب متوسط الدورات الأربع الأخيرة.

هناك دعم لضبط سجل OSCAL لضبط الساعة. أقترح ضبط OSCCAL_VAL على 0 مبدئيًا في الجزء العلوي من الرسم التخطيطي. هذا يعني أنه سيتم استخدام معايرة المصنع حتى يتم إجراء التوليف.

مطلوب تعديل قيمة مكثف القاعدة 555. أقوم أيضًا بإضافة مقدار تقديري للسعة الشاردة.

إذا تم استخدام مقاومات مختلفة لطرق الشحن ، فستحتاج أيضًا إلى تغيير قيم CHARGE_RCLOW و CHARGE_RCHIGH في البرنامج.

لتثبيت البرنامج ، استخدم طريقة digistamp العادية لتحميل البرنامج وتوصيل منفذ USB عند المطالبة بذلك. اترك مفتاح الطاقة في وضع إيقاف التشغيل حيث سيتم توفير الطاقة بواسطة USB لهذه العملية.

الخطوة 4: التشغيل والمعايرة المتقدمة

العملية مباشرة للغاية.

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

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

معايرة متقدمة

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

لم أتمكن من احتواء طريقة أكثر تلقائية في البرنامج الثابت حتى الآن ، لذلك أستخدم الإجراء اليدوي التالي. هناك نوعان مختلفان ممكنان اعتمادًا على القياسات الخارجية المتاحة ؛ إما مقياس تردد قادر على قياس تردد شكل الموجة المثلث على المنفذ 555 ، أو مصدر موجة مربعة بتردد معروف على سبيل المثال 10 كيلو هرتز بمستويات 0V / 3.3V والتي يمكن توصيلها بمنفذ 555 وتجاوز شكل الموجة لفرض هذا التردد في العداد. لقد استخدمت الطريقة الثانية.

  1. عداد بدء التشغيل على طاقته العادية مع عدم وجود مكثفات متصلة.
  2. قم بتوصيل متر التردد أو مولد الموجة المربعة بمنفذ 555.
  3. أعد تشغيل دورة المعايرة بالضغط على الزر.
  4. في نهاية دورة المعايرة ، ستعرض الشاشة التردد كما هو محدد بواسطة العداد وقيمة OSCCAL الحالية. لاحظ أن الاستخدام المتكرر لدورة المعايرة سيؤدي إلى التبديل بين إظهار التردد المقاس وعدم العرض العادي.
  5. إذا كان التردد المعروض أقل مما هو معروف ، فهذا يعني أن تردد الساعة مرتفع جدًا والعكس صحيح. أجد أن زيادة OSCCAL تضبط الساعة بحوالي 0.05٪
  6. احسب قيمة OSCCAL جديدة لتحسين الساعة.
  7. أدخل قيمة OSCCAL الجديدة في OSCCAL_VAL أعلى البرامج الثابتة.
  8. إعادة إنشاء وتحميل البرامج الثابتة الجديدة. كرر الخطوات من 1 إلى 5 التي يجب أن تُظهر قيمة OSCCAL الجديدة وقياس التردد الجديد.
  9. إذا لزم الأمر ، كرر الخطوات مرة أخرى حتى يتم تحقيق أفضل نتيجة.

ملاحظة مهمة لإجراء جزء القياس من هذا الضبط عند التشغيل على طاقة عادية وليس USB لتقليل أي تغيير في التردد بسبب جهد الإمداد.

موصى به: