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

برنامج Arduino Hang Guardian - برنامج Arduino Watchdog Timer التعليمي: 6 خطوات
برنامج Arduino Hang Guardian - برنامج Arduino Watchdog Timer التعليمي: 6 خطوات

فيديو: برنامج Arduino Hang Guardian - برنامج Arduino Watchdog Timer التعليمي: 6 خطوات

فيديو: برنامج Arduino Hang Guardian - برنامج Arduino Watchdog Timer التعليمي: 6 خطوات
فيديو: Part 1 - Watchdog Timer in Arduino 2024, سبتمبر
Anonim
Image
Image

مرحبا جميعا،

يحدث لنا جميعا. تقوم ببناء مشروع ، وتوصيل جميع المستشعرات بحماس ، وفجأة ، يتوقف Arduino ولا تتم معالجة أي مدخلات.

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

اليوم ، سنلقي نظرة على كيفية استخدام مؤقت المراقبة على Arduino لمنع حدوث ذلك.

الخطوة 1: ما هو هذا الموقت مراقب؟

كيفية تمكين مراقب الوقت؟
كيفية تمكين مراقب الوقت؟

مؤقت Arduino watchdog كما يوحي الاسم هو مؤقت يعمل بشكل منفصل عن وحدة المعالجة المركزية الرئيسية الموجودة على اللوحة. يمكن استخدام هذا المؤقت للتحقق بشكل دوري من حالة اللوحة وفي الظروف التي تتعطل فيها اللوحة في حلقة البرنامج أو تتعطل بسبب عطل في الأجهزة ، يمكن لجهاز ضبط الوقت أن يعيد ضبط Arduino ويبدأ من جديد.

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

لتكون قادرًا على استخدام مؤقت المراقبة ، نحتاج أولاً إلى تضمين ملف avr / wdt.h في مخطط Arduino الخاص بنا. هذه هي المكتبة القياسية التي تتولى إجراءات المراقبة.

الخطوة 2: كيفية تمكين مراقب مؤقت؟

كيفية تمكين مراقب الوقت؟
كيفية تمكين مراقب الوقت؟
كيفية تمكين مراقب الوقت؟
كيفية تمكين مراقب الوقت؟

لتمكين المؤقت ، نستخدم الوظيفة "wdt_enable" حيث نحتاج إلى المرور في الفترة الفاصلة التي ستتم فيها إعادة ضبط اللوحة. اعتمادًا على حالة الاستخدام الخاصة بنا ، يمكن أن يتراوح هذا من 15 مللي ثانية إلى 8 ثوانٍ في الإعدادات المحددة مسبقًا والمضمنة في مكتبة المراقبة.

عتبة - اسم ثابت

15 مللي ثانية WDTO_15MS 30 مللي ثانية WDTO_30MS 60 مللي ثانية WDTO_60MS 120 مللي ثانية WDTO_120 مللي ثانية 250 مللي ثانية WDTO_250MS 500 مللي ثانية WDTO_500MS 1s WDTO_1S 2s WDTO_2S 4s WDTO_4S 8s WDTO_8S

الخطوة 3: حافظ على تشغيل برنامجك

استمر في تشغيل برنامجك
استمر في تشغيل برنامجك

الآن ، مع تمكين المؤقت ، لمنعه من إعادة ضبط Arduino ، نحتاج إلى استدعاء وظيفة "wdt_reset" بشكل دوري لإعادة ضبط مؤقت المراقبة قبل انتهاء فترة العتبة.

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

الخطوة 4: مثال على الاستخدام

مثال على الاستخدام
مثال على الاستخدام
مثال على الاستخدام
مثال على الاستخدام
مثال على الاستخدام
مثال على الاستخدام

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

عندما يحدث هذا ، يقوم مؤقت المراقبة بإعادة ضبط اللوحة ويتم تنفيذ الإعداد مرة أخرى.

الخطوة 5: مشاكل مؤقت المراقبة

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

الخطوة 6: استمتع

يتمتع
يتمتع

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

في صحتك وشكرا على القراءة / المشاهدة!

موصى به: