TinyFL - متحكم سائق مصباح يدوي

مرحباً هبر!


أريد أن أحكي قصة عن كيفية وصولي إلى المصباح الأمامي الصيني على مصباح Cree XM-L وماذا حدث بعد ذلك.



قبل التاريخ


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


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


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


مصباح يدوي مع سائق قديم

وإليك مصباح يدوي ، وربما تعامل الكثير مع مماثلة


يبدو أن برنامج التشغيل الأصلي


الاختصاصات


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


  • لتكون قادراً على تشغيل / إيقاف تشغيل بضغطة زر واحدة (زر دون إصلاح). ربما هذا هو السبب الرئيسي وراء كل هذا بدأ.
  • تمتع بتحكم سلس في السطوع (بدون خطوات) ، بدءًا من ألمع - "تيربو" إلى "ضوء القمر" عندما يضاء الصمام الثنائي بالكاد. يجب أن يتغير السطوع بالتساوي.
  • تذكر سطوع مجموعة للراحة.
  • راقب شحن البطارية ، وحذر عند تفريغها تقريبًا (حوالي 3.3 فولت) وإيقافها عند شحنها بالكامل (حوالي 2.9 فولت). بالنسبة للبطاريات المختلفة ، قد تكون هذه المعلمات مختلفة. وفقا لذلك ، يجب أن يكون الجهد التشغيل في حدود 2.7 ~ 4.5V.
  • لديك وضعين خاصين - منارة للطوارئ وقوية (حسناً ، لم لا؟)
  • لتكون قادراً على تشغيل / إيقاف تشغيل مؤشر LED الخلفي (هذا صحيح عند ركوب دراجة في الليل ، فإنه يتحول إلى شيء يشبه ضوء علامة).
  • لديهم حماية ضد قطبية عكسية والكهرباء الساكنة. ليس بالضرورة ، ولكنه سيكون إضافة لطيفة ، لأنه في الظلام يمكنك وضع البطارية عن طريق الخطأ في الجانب الخطأ.
  • تكون أصغر من حجم برنامج التشغيل الأصلي ، لكن لها نفس المساحة. السائق الصيني ضخم ببساطة ، مما يجعله أكبر لن يكون سهلاً.

حسنًا ، إذا كان المصباح مضبطًا ، فلماذا لا يتم إنشاء شاحن مع موصل micro-USB؟ لديّ دائمًا مثل هذا الكابل وشحن USB في متناول اليد ، ويجب أن أبحث عن مصدر طاقة أصلي.


حديد


لديّ بعض الخبرة مع Arduino ، لذلك تقرر إنشاء برنامج تشغيل على AVR family MK. فهي متوفرة على نطاق واسع ، وسهلة البرمجة ، ولها أوضاع منخفضة الطاقة (النوم).


تم اختيار متحكم Attiny13a ليكون "عقل" السائق - إنه أحد أرخص Atmel MCs (تمتصه الآن Microchip) ، يحتوي على كل شيء على متن - GPIO لتوصيل زر و LED ، وجهاز توقيت لتوليد إشارة PWM ، ADC لقياس الجهد و EEPROM لحفظ المعلمات. يتوفر فقط 1 كيلوبايت من ذاكرة الفلاش (ولكن كم يلزم لمصباح كهربائي) ، بالإضافة إلى ذاكرة الوصول العشوائي (RAM) 64 B والمقدار نفسه من EEPROM.
يتوفر Attiny13 في العديد من خيارات الإسكان ، خاصة في DIP-8 ، والذي يمكن إدراجه مباشرةً في اللوح العادي بحجم 2.54 ملم.


نظرًا لأن 3 أسلاك فقط تنتقل من الخلف إلى رأس المصباح ، يتم إجبار الزر على الانتقال إلى الأرض (حول استحالة التقلص إلى زائد - لاحقًا) ، سيتعين عليك تبديل مؤشر LED في زائد - مما يعني أنك بحاجة إلى عمود P-channel. لقد أخذت AO3401 كترانزستور ، لكن يمكنك أن تأخذ SI2323 ، فهي أغلى ثمناً ، لكن لديها مقاومة قناة مفتوحة أقل (40 مللي أمبير ، في حين أن AO3401 بها 60 مللي أمبير ، عند 4.5 فولت) ، وبالتالي ، فإن السائق سوف يسخن بدرجة أقل.


من الكلمات إلى الأفعال ، أقوم بجمع نسخة أولية على اللوح


يتم تشغيله حاليًا مباشرةً من المبرمج ، بجهد 5 فولت (أقل فعليًا بسبب الفقد في كبل USB). بدلاً من LED ، تمسك XM-L حتى الآن بمصباح LED منتظم على الساقين ووضع ترانزستور ضعيف بجهد عتبة عالٍ.
بعد ذلك ، في برنامج Altium Designer ، تم رسم مخطط بياني ، استكملته بحماية ضد قطبية عكسية و ESD.



وصف مفصل والغرض من جميع المكونات

الشروط:


U1 - Attiny13a متحكم في حزمة 8S1 (مؤشر SSU)


C1 - يجب أن يكون مكثف فك وحدة تزويد متحكم الطاقة ، في حدود 0.1 microfarads ، الحالة 1206 أو 0805 ، معامل درجة الحرارة X7R


R1-R2 هو مقسم المقاوم لقياس الجهد البطارية ، يمكن تعيين أي تصنيفات ، وهنا النسبة الرئيسية (750K / 220K ، نسبة القسمة 4.41) وتيار التسرب ، والتي ستكون أكبر إذا تم زيادة التصنيفات (في الوقت الراهن فهو حوالي 4 μA). نظرًا لاستخدام ION داخلي (1.1 فولت ، وفقًا لورقة البيانات ، يمكن أن يكون ما بين 1.0 فولت إلى 1.2 فولت) ، يجب ألا يتجاوز الحد الأقصى للجهد عند إخراج الفاصل 1 فولت. مع الفاصل 750/220 ، سيكون الحد الأقصى للجهد المسموح به عند إدخال الفاصل 4.41 فولت ، والذي أكثر من كافية لجميع أنواع بطاريات الليثيوم.
لقد حسبت الفاصل باستخدام هذه الآلة الحاسبة .


R3 - يحمي إخراج منفذ متحكم التيار من دائرة كهربائية قصيرة (إذا تم سحب PB1 فجأة إلى VCC ، فسوف يتدفق تيار كبير عبر السنون وقد يحترق MC)


R4 - سحب RESET MK إلى السلطة ، وبدون ذلك ، يمكن إعادة تمهيد من التقاطات.


Q1 - ترانزستور تأثير المجال P-channel في حزمة SOT-23 ، لقد قمت بتثبيت AO3401 ، ولكن أي شيء آخر مع pinout مناسب (على سبيل المثال ، SI2323)


R7 هو المقاوم بوابة الحد الحالي. نظرًا لأن بوابة الترانزستور لديها قدرة معينة ، عند شحن هذه السعة ، يمكن أن يمر تيار كبير عبر الدبوس وقد يفشل الدبوس. يمكنك ضبطه في منطقة 100-220 أوم (لا ينبغي أن يكون بعد الآن ، سيبدأ الترانزستور في حالة نصف مغلقة لفترة طويلة ، ونتيجة لذلك ، سوف يسخن أكثر).


R6 - مصراع سحب المقاومة إلى السلطة. في حالة دخول PB0 إلى حالة مقاومة عالية ، سيتم تثبيت المنطق 1 من خلال هذا المقاوم على البوابة Q1 وسيتم إغلاق الترانزستور. يمكن أن يحدث هذا بسبب خطأ في التعليمات البرمجية أو في وضع البرمجة.


D2 - الصمام الثنائي "locking" - يسمح "بترهل" الجهد (عند تشغيل LED لفترة قصيرة وسطوع كامل) لتغذية MK من المكثف لفترة من الوقت ، كما أنه يحمي من القطبية العكسية.
يمكنك وضع أي الصمام الثنائي شوتكي في حزمة SOD323 مع انخفاض الجهد الحد الأدنى ، أضع BAT60.


في البداية ، تم إجراء حماية ضد قطبية عكسية لإمداد الطاقة على ترانزستور التأثير الميداني (يمكن ملاحظة ذلك على الألواح المصنوعة من قبل المسروقات). ظهرت ميزة غير سارة بعد الأسلاك - عند تشغيل الحمل ، حدث انخفاض في الجهد وإعادة تشغيل MK ، نظرًا لأن العامل الميداني لا يحد من التيار في الاتجاه المعاكس. في البداية كنت ملحومًا بمكثف إلكتروليتي 200 فائق التوهج بين VCC و GND ، لكنني لم أحب هذا الحل بسبب حجمه. اضطررت إلى لحام الترانزستور ووضع الصمام الثنائي في مكانها ، لأن SOT-23 و SOD-323 لها أبعاد مماثلة.


المجموع ، في الدائرة هناك فقط 10 مكونات مطلوبة للتثبيت.


مكونات اختيارية:


R5 و D1 مسؤولون عن الإضاءة الخلفية (LED2). الحد الأدنى لتصنيف R5 هو 100 أوم. كلما زاد التصنيف ، كان مؤشر LED الخلفي أضاء (يتم تشغيله في الوضع الثابت ، بدون PWM). D1 - أي الصمام في حالة 1206 ، أضع الأخضر ، ل بصريا هم أكثر إشراقا في نفس التيارات من غيرها.


D3 و D4 هي الثنائيات الواقية (TVS) ، لقد استخدمت PESD5V0 (5.0V) في حزمة SOD323. D3 يحمي من الجهد الزائد من الطاقة ، D4 - عن طريق زر. إذا غطى الزر غشاء ، فلا يوجد معنى خاص به. قد يكون من المفيد استخدام الثنائيات الوقائية ثنائية الاتجاه ، وإلا ، فعند عكس القطبية ، سوف يتدفق التيار من خلالها وسيحترق (راجع CVC لصمام ثنائي وقائي ثنائي الاتجاه).


C2 - مكثف التنتالوم في الحالة A (يشبه 1206) ، فمن المنطقي ضبطه عندما يكون السائق غير مستقر (قد يتم ضغط فولطية الإمداد عند تيارات تحويل عالية من LED)


جميع المقاومات من حجم 0603 (بالنسبة لي ، وهذا هو الحد المناسب للحام يدوي)


كل شيء واضح مع المكونات ، يمكنك جعل لوحة الدوائر المطبوعة وفقا للمخطط أعلاه.
أول ما يجب فعله هو إنشاء نموذج ثلاثي الأبعاد للوحة المستقبلية ، إلى جانب الثقوب - IMHO ، في Altium Designer ، هذه هي الطريقة الأكثر ملاءمة لتحديد هندسة PCB.
قمت بقياس أبعاد برنامج التشغيل القديم وثقوبه المتصاعدة - يجب أن تكون اللوحة متصلة به ، لكن لها أبعاد أصغر (للتنوع ، فجأة عليك أن تبنيه في مكان آخر).
تحول الحد الأدنى المعقول هنا في مكان ما حوالي 25 × 12.5 مم (نسبة العرض إلى الارتفاع 2: 1) مع فتحتين يبلغ قطرهما 2 مم للتركيب على غطاء المصباح بواسطة براغي أصلية.


لقد صنعت نموذجًا ثلاثي الأبعاد في SolidWorks ، ثم قمت بالتصدير إلى Altium Designer كـ STEP.
ثم وضعت المكونات على السبورة ، وقمت بالاتصال في الزوايا (وهو أكثر ملاءمة وأسهل لحام الأرض) ، ووضع Attiny13 في الوسط ، والترانزستور أقرب إلى جهات اتصال LED.
قمت بنشر مسارات السلطة ، وضعت المكونات المتبقية كما اتضح وفصلت مسارات الإشارة. لتوفير الراحة في توصيل الذاكرة ، أخرجت جهات اتصال منفصلة لها ، والتي تكرر اتصالات البطارية.
لقد صنعت جميع الأسلاك (باستثناء وصلة واحدة) على الطبقة العليا - لكي أكون قادرًا على صنع لوحة في المنزل باستخدام LUT.
الحد الأدنى لعرض مسارات الإشارات هو 0.254 مم / 10 مل ، ويكون لتلك القدرة أقصى عرض ممكن.


هذه هي الطريقة التي تبدو بها اللوحة السلكية في مصمم Altium


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



في وقت كتابة هذا التقرير ، تم عمل 3 نسخ من اللوحة - أول إصدار لـ LUT ، والثاني للتصنيع الصناعي والثالث ، مع بعض التصحيحات.


صنع المجلس


طريقة محلية الصنع


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


تحتاج أولاً إلى إعداد قالب سيتم طباعته على ورق حراري. أقوم بتصدير طبقة top_layer إلى PDF ، وأحصل على صورة متجهة.



نظرًا لأن اللوحة صغيرة ، فمن المنطقي أن تأخذ قطعة من ثنائي الفينيل متعدد الكلور بأبعاد أكبر عدة مرات وتفعل ما تسميه الصناعة الألواح.
لهذه الأغراض ، يكون CorelDraw مريحًا للغاية ، ولكن يمكنك استخدام أي محرر متجه آخر.
أضع نسخًا من القوالب على المستند ، أقوم بعمل فجوات بين 0.5 إلى 1 مم بين الألواح (يعتمد ذلك على طريقة الفصل ، وأكثر على ذلك لاحقًا) ، يجب تحديد موقع الألواح بشكل متماثل - وإلا سيكون من الصعب فصلها.


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


مثل هذه الألواح المنزلية - يمكن أن يعوض عدد كبير من اللوحات عن عيوب التصنيع


أسّم الألواح بحمض الستريك في محلول من بيروكسيد الهيدروجين ، وهذه هي الطريقة الأكثر بأسعار معقولة ، على الرغم من أنها بطيئة إلى حد ما.
النسب هي كالتالي: بالنسبة إلى 100 مل من البيروكسيد 3 ٪ هو 30 غرام من حامض الستريك وحوالي 5 غرامات من الملح ، يتم خلطها كلها وتصب في حاوية مع textolite.
يؤدي تسخين المحلول إلى تسريع التفاعل ، ولكنه قد يتسبب في تقشر الحبر.


يبدأ سحر كيميائي غير معروف: النحاس مغطى بالفقاعات ، والحل يأخذ لونًا أزرق


بعد بعض الوقت ، أخرج اللوحة المحفورة وأقوم بتنظيفها من الحبر. لا يمكنني غسلها بأي مذيبات ، لذلك أزيلها ميكانيكياً بورق صنفرة ناعم الحبيبات.


الآن يبقى قصدير اللوحة - هذا سيساعد في لحام وحماية النحاس من الأكسدة وتسهيل لحام. أفضّل التعليب باستخدام سبيكة Rose - تذوب هذه السبيكة عند درجة حرارة تبلغ حوالي 95 درجة ، مما يسمح بتغليفها في الماء المغلي (نعم ، ربما لا يكون التكوين الأكثر موثوقية في التعليب ، ولكن بالنسبة لوحات الدوائر المنزلية).



بعد التثقيب ، أقوم بالبحث عن لوحة (بالنسبة إلى جهات الاتصال التي أستخدمها التدريبات كربيد f1.0 ، لاعبا - f0.7) ، أنا الحفر مع dremel لعدم وجود أداة أخرى. لا أرغب في قطع نسيج القماش بسبب الغبار ، وبالتالي ، بعد الحفر ، قمت بقطع الألواح بسكين مكتب - على كلا الجانبين أجري عدة قطع في سطر واحد ، ثم أقسمها إلى قطع. هذا يذكرنا بالطريقة V-cut المستخدمة في الصناعة ، فقط هناك شق تم صنعه بواسطة مطحنة.


يبدو مثل لوحة جاهزة لحام


عندما تكون اللوحة جاهزة ، يمكنك البدء في توصيل المكونات. أولا ، أنا لحام تافه (المقاومات 0603) ، ثم كل شيء آخر. المقاومات متاخمة لعضو الكنيست ، لذلك يمكن أن يكون اللحام بالترتيب العكسي مشكلة. بعد اللحام ، أتحقق مما إذا كانت هناك دائرة كهربائية قصيرة لتشغيل برنامج التشغيل ، وبعد ذلك من الممكن بالفعل بدء تشغيل البرامج الثابتة MK.


برامج التشغيل جاهزة لتنزيل البرامج الثابتة


الطريقة الصناعية


LUT سريعة وبأسعار معقولة ، لكن التكنولوجيا لها عيوبها (مثل جميع طرق تصنيع PP "المنزلية" تقريبًا). من الصعب إنشاء لوحة على الوجهين ، يمكن حفر المسارات ، ويمكنك فقط أن تحلم بتعدين الثقوب.


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


الطبقة السفلى من اللوحة في Altium Designer


بالنسبة لهذا المشروع ، قررت أن أطلب لوحة دوائر مطبوعة على موقع PcbWay. يحتوي الموقع على آلة حاسبة ملائمة لحساب تكلفة اللوحات ، اعتمادًا على معاييرها وأحجامها وكميتها. بعد حساب التكلفة ، قمت بتنزيل ملف gerber الذي تم إنشاؤه في وقت سابق في Altium Designer ، وقام الصينيون بفحصه وانتقلت اللوحة إلى الإنتاج.


صنع مجموعة من 10 لوحات TinyFL كلفني 5 دولارات. عند تسجيل مستخدم جديد ، يتم تقديم خصم بقيمة 5 دولارات للطلب الأول ، لذلك دفعت فقط للشحن ، والذي يكلف أيضًا حوالي 5 دولارات.
توجد على هذا الموقع فرصة لوضع المشروع في المجال العام ، لذلك إذا أراد شخص ما طلب هذه اللوحات ، يمكنك ببساطة إضافة هذا المشروع إلى السلة.


بعد بضعة أسابيع ، جاءت لي نفس الألواح ، فقط krasivenkie المصنعة صناعيا. يمكن فك ضغطها وتعبئتها فقط مع البرامج الثابتة.



البرنامج (البرامج الثابتة)


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


خوارزمية تحكم السائق


يتم تشغيل السائق بضغطة قصيرة على الزر ، وينطفئ به.
يتم تخزين وضع السطوع المحدد طوال فترة إيقاف التشغيل.


إذا قمت بالضغط على زر تشغيل قصير مزدوج أثناء النقر (النقر المزدوج) ، فسيتم تشغيل / إيقاف تشغيل مؤشر LED الإضافي.
مع الضغط لفترة طويلة أثناء التشغيل ، سيتغير سطوع المصباح تدريجياً. الصحافة المتكررة المتكررة تغير الاتجاه (أقوى / أضعف).


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


وصف أكثر تفصيلا لخوارزمية السائق
  1. عندما يتم توفير الطاقة إلى MK ، يتم إعداد الأجهزة الطرفية وينتهي MK (في حالة تحديد STARTSLEEP). عندما يتم توفير الطاقة إلى برنامج التشغيل ، يضيء كل من LEDs عددًا معينًا من المرات إذا تم تعريف STARTBLINKS.
  2. النوم. يغرق Attiny13 في وضع إيقاف التشغيل (هذا هو الوضع الأكثر اقتصادا ، وفقًا لصفحة البيانات ، سيكون استهلاك MK هو ~ 1 μA) ، حيث لا يمكن الخروج منه إلا عن طريق أي مقاطعة. في هذه الحالة ، هذا مقاطعة INT0 - الضغط على زر (إعداد PC1 إلى 0 المنطقية).
    على PC1 ، يجب تشغيل سحب داخلي ضعيف. تعد ADC والمقارنة هما المستهلكان الرئيسيان للتيار من المحيط بأكمله ، لذلك يجب إيقافهما أيضًا. أثناء النوم ، يتم تخزين محتويات السجلات وذاكرة الوصول العشوائي ، وبالتالي فإن EEPROM ليست ضرورية لتذكر السطوع.
  3. بعد النوم ، يتم تشغيل الأجهزة الطرفية و PWM ويدخل برنامج التشغيل دورة لا نهاية لها يتم فيها مراقبة الزر وفحص جهد البطارية بشكل دوري.
  4. إذا تم الضغط على الزر ، يتم ضغط الوقت.
    4.1. إذا كانت الصحافة قصيرة ، فمن المتوقع النقر المزدوج (إذا تم تعريف BTN_DBCLICK).
    إذا كان كذلك ، فإن مفاتيح LED2 الإضافية
    إذا لم يكن كذلك ، انتقل إلى الخطوة 2 (النوم)
    4.2. إذا كانت الصحافة طويلة (أطول من BTN_ONOFF_DELAY) - يتم تنشيط وضع التحكم في السطوع. في هذا الوضع:
    • اتجاه التغيير مقلوب (أكثر / أقل) وتغير٪ PWM تعبئة أثناء الضغط على الزر.
    • / (RATE_MAX / RATE_MIN), ;
    • n- (AUXMODES_DELAY) , . — ( 25 , 8 ) ( 50, 1 ). , - .
  5. — ADC2, .
    • BAT_WARNING –
    • BAT_WARNING – , . - . , 5 .
    • BAT_SHUTDOWN — .2 ().


, — , - , . - , , . P- , , — , . .
rate, 255 rate = 100% .
1.2 1, 1200000/256 = 4.7 . ( ), (, , , ). , 9.6 (CKSEL[1:0]=10, CKDIV8=1) 4.8 (CKSEL[1:0]=01, CKDIV8=1), 8 4 , .


, , . , ( ) , , , 1.5 , 2 ( Cree XM-L — 3 ).
, (rate=255) 3. , . , RATE_MAX . , SI2323DS 4 , 2 , .


-


. , 5-10% , 75-100% . , n , , , .


, -. , 1 12 . , rate_step_array. , , .



n- ( BAT_PERIOD) . , VIN R1-R2, PB4 ( ADC2 ).


, , Vref, 1.1 . — , (, 1.1 1023 255, 8- ). , 6 , 255 1.1 , 4.33 ( 4.03), .


, . BAT_WARNING ( , — BAT_INFO_STEP, ), BAT_SHUTDOWN .
, .. , .


, , . , 4.03 R1 = 1M R2 = 330, R = 1330K 4 = 3 .
() 1 . , , ( - — ).



, Arduino C/C++.
, (defines) flashlight.h.
Arduino IDE Attiny13(a) Atmel Studio – , Arduino IDE, .


Arduino IDE

Attiny13 IDE. .
Tools>Board Attiny13(a) Tools>Frequency 1.2MHz.
"" .ino, — . , — Arduino IDE. - , .cpp.
, , *.hex. .


Atmel Studio

IDE flashlight.atsln, — flashlight.h () flashlight.cpp .
— .
F7, ( , , ). debug flashlight.hex, .


USBASP AVRDUDEPROG. GUI avrdude, — . ( Attiny13(a), Fuses read. , , . programm, . flashlight.h


لتحميل البرامج الثابتة ، انتقل إلى علامة التبويب "البرنامج" ، في سطر Flash ، حدد ملف البرنامج الثابت المترجم بتنسيق HEX (flashlight.hex) وانقر فوق "برنامج". سيتم عرض حالة البرامج الثابتة في النافذة أدناه. إذا لم ينجح التنزيل ، فقد يكون اتصالًا سيئًا ، يحدث - إنه يستحق المحاولة مرة أخرى. بالمناسبة ، لهذا السبب تم إنشاء المعلمة STARTBLINKS - وميض واحد من LED2 في لحظة توفير الطاقة لبرنامج التشغيل بمثابة مؤشر على اتصال السائق مع مبرمج.
بدلاً من USBASP ، يمكنك استخدام Arduino لتنزيل البرامج الثابتة ، مزيد من التفاصيل هنا وهنا


USBASP مبرمج متصلا السائق عن طريق مقطع مع حلقة


لتوصيل USBASP إلى tinka ، أستخدم مقطعًا لـ SOIC ذي 8 أسنان. ليس جهازًا مريحًا للغاية ، يجب عليك عذاب 10 دقائق قبل التقاط جهة الاتصال (ربما صادفت مقطعًا معيبًا). هناك أيضًا محولات SOIC-DIP حيث يتم إدخال الدائرة الدقيقة قبل اللحام ويتم سكب البرنامج الثابت فيه - هذا الخيار أكثر ملاءمة ، ولكن يتم فقد القدرة على برمجة برنامج التشغيل داخل الدائرة (أي ، تحديث البرنامج الثابت بعد لحام MK في اللوحة).
إذا لم يكن كل هذا موجودًا ، فيمكنك ببساطة لحام الأسلاك الطرفية لأجهزة MK ، والتي تعلق بعد ذلك على Arduino.


معايرة


يجب ألا تتجاوز التيارات التي تمر عبر السائق والصمام الحد الأقصى للقيم. بالنسبة إلى XM-L LED ، هذا هو 3 أ ، لأنه يعتمد على الترانزستور المستخدم ، على سبيل المثال ، بالنسبة إلى SI2323 ، يبلغ الحد الأقصى الحالي حوالي 4 أ ، لكن من الأفضل القيادة عند التيارات السفلية بسبب التسخين الزائد. لتقليل التيار عند أقصى درجة سطوع ، يتم استخدام المعلمة RATE_MAX (#define RATE_MAX xx ، حيث xx هي أقصى سطوع من 0 إلى 255).
ليست معايرة ADC إجراءً إلزاميًا ، ولكن إذا كنت ترغب في أن يراقب السائق بدقة عتبة الجهد الكهربائي ، فيجب عليك العبث بها.


لن تعطي الحسابات دقة عالية للقياسات ، حيث إن المقاومات أولاً يمكن أن تختلف في حدود التسامح (عادةً ما بين 1-5٪) ، وثانياً ، يمكن أن يكون للأيونات الداخلية مبعثر من 1.0 إلى 1.2 فولت.
لذلك ، فإن الطريقة الوحيدة المقبولة هي تعيين القيمة في وحدات ADC (BAT_WARNING و BAT_SHUTDOWN) ، واختيارها تجريبياً للقيمة المطلوبة. للقيام بذلك ، سوف تحتاج إلى الصبر ، مبرمج ومصدر طاقة قابل للتعديل.
قمت بتعيين قيمة BAT_PERIOD على 1000 في البرامج الثابتة (فحص الجهد مرة واحدة في الثانية) وتخفيض الجهد الكهربائي تدريجياً. عندما بدأ السائق في التحذير من التفريغ ، تركت القيمة الحالية لـ BAT_WARNING حسب الحاجة.
ليست هذه هي الطريقة الأكثر ملاءمة ، ربما تحتاج في المستقبل إلى إجراء إجراء معايرة تلقائية مع توفير القيم في EEPROM.


التجمع مصباح يدوي


عندما تكون اللوحة جاهزة وغمرت المياه ، يمكنك أخيرًا وضعها في مكان السائق القديم. ألغيت السائق القديم وألحمت مكانًا جديدًا في مكانه.


يتم توصيل برنامج التشغيل الجديد بدلاً من برنامج التشغيل القديم وفقًا لهذا المخطط


بعد التحقق مما إذا كانت هناك دائرة كهربائية قصيرة في وحدة الإمداد بالطاقة ، قمت بتوصيل وحدة الإمداد بالطاقة وفحص إمكانية التشغيل. ثم قمت بتركيب لوحة الشحن (TP4056) ، لذلك كان عليّ أن أقوم بحفر فتحة في موصل الشحن بقليل من دريميل ، وثبتها بالغراء الساخن (كان من المهم ألا يتدفق الغراء في الموصل ، سيكون من الصعب إخراجه من هناك).


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



اختبار وحساب تكاليف التصنيع


بعد كل العمليات ، كان من الممكن البدء في اختبار برامج التشغيل. تم قياس التيار بمقياس متعدد تقليدي يربطه بالدائرة المفتوحة لمزود الطاقة.


استهلاك الطاقة للسائق القديم (يقاس 4.04 فولت):


  1. أثناء النوم - لا تقاس
  2. الوضع الأقصى: 0.60 أ
  3. الوضع المتوسط: 0.30 أ
  4. ستروبوسكوب: 0.28 A

استهلاك الطاقة لبرنامج التشغيل الجديد (يقاس 4.0 فولت):


  1. في وضع السكون ، يستهلك حوالي 4 μA ، وهو أقل بكثير من تيار التفريغ الذاتي لبطارية ليثيوم أيون. التيار الرئيسي في هذا الوضع يتدفق عبر مقسم المقاوم.
  2. في الوضع الأدنى ، يكون "ضوء القمر" حوالي 5-7 مللي أمبير ، إذا افترضنا أن سعة خلية 18650 واحدة تبلغ حوالي 2500 مللي أمبير * ساعة ، فسنحصل على حوالي 20 يومًا من التشغيل المستمر . MK نفسها تستهلك في مكان ما 1.2-1.5 مللي أمبير (على تردد التشغيل من 1.2 ميغاهيرتز).
  3. في الوضع الأقصى ، يستهلك "turbo" حوالي 1.5 A ، في هذا الوضع سيعمل لمدة ساعة ونصف تقريبًا. يبدأ ارتفاع درجة حرارة مؤشر LED في هذه التيارات ، لذلك هذا الوضع غير مخصص للتشغيل على المدى الطويل.
  4. منارة الطوارئ - تستهلك حوالي 80 مللي أمبير في المتوسط ​​، في هذا الوضع ، سيعمل المصباح حتى 30 ساعة.
  5. ستروبوسكوب - تستهلك حوالي 0.35 ألف ، ستعمل حتى 6 ساعات.

سعر الإصدار


إذا قمت بشراء مكونات في Chip و Deep ، فسيخرج حوالي 100 روبل (60 روبل Attiny13 ، ~ 40 روبل باقي مسحوق فضفاض). من المنطقي أن تطلب من الصين ، إذا تم صنع عدة قطع - فمن حيث قطعة ، ستكون أرخص ، وعادة ما يبيع الصينيون على دفعات من 10 قطع أو أكثر.
سيتم إصدار الرسوم بسعر 300 روبل مقابل 10 قطع (بدون تسليم) ، إذا تم طلبها في الصين.
الأسلاك وامض سائق واحد يستغرق حوالي ساعة.


استنتاج


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


برنامج التشغيل عن قرب (الإصدار 2_t)


محدث : أضيفت الدعم لاردوينو IDE.


الكود المصدري للبرامج الثابتة والدائرة وأسلاك اللوحة الآن على github ، يمكنك تنزيله من هنا: https://github.com/madcatdev/tinyfl_t

Source: https://habr.com/ru/post/ar464673/


All Articles