فهرست مطالب:

آموزش Arduino Hang Guardian - آموزش تایمر نگهبان Arduino: 6 مرحله
آموزش Arduino Hang Guardian - آموزش تایمر نگهبان Arduino: 6 مرحله

تصویری: آموزش Arduino Hang Guardian - آموزش تایمر نگهبان Arduino: 6 مرحله

تصویری: آموزش Arduino Hang Guardian - آموزش تایمر نگهبان Arduino: 6 مرحله
تصویری: Lesson 95: Using L293D 4 DC Motors Shield for Arduino UNO and Mega | Arduino Step By Step Course 2024, نوامبر
Anonim
Image
Image

سلام به همه،

برای همه ما اتفاق می افتد. شما یک پروژه می سازید ، با اشتیاق تمام سنسورها را به هم متصل می کنید ، و ناگهان ، آردوینو متوقف می شود و هیچ ورودی پردازش نمی شود.

"چه اتفاقی می افتد؟" ، شما می پرسید و شروع به کاوش در کد خود می کنید ، اما متوجه می شوید که در یک حلقه بی نهایت گیر کرده اید. خدا را شکر آردوینو روی نیمکت شما بود و نه در مکان دور افتاده.

امروز ، ما نحوه استفاده از تایمر نگهبان در Arduino را برای جلوگیری از این اتفاق بررسی می کنیم.

مرحله 1: این تایمر دیده بان چیست؟

چگونه تایمر Watchdog را فعال کنیم؟
چگونه تایمر Watchdog را فعال کنیم؟

تایمر نگهبان Arduino همانطور که از نامش مشخص است یک تایمر است که جدا از CPU اصلی روی برد کار می کند. از این تایمر می توان برای بررسی دوره ای وضعیت برد استفاده کرد و در شرایطی که برد در حلقه نرم افزاری گیر کرده یا به دلیل خرابی سخت افزار گیر کرده است ، تایمر نگهبان می تواند آردوینو را ریست کرده و دوباره شروع به کار کند.

به طور پیش فرض هنگامی که از این تایمر استفاده نمی کنید ، این تایمر در همه پروژه ها غیرفعال است و تنها زمانی که آن را فعال می کنیم ، باید مطمئن شویم که به طور دوره ای به آن بگوییم که اگر هنوز هم طبق انتظار کار می کند ، برد خود را تنظیم مجدد نکنید.

برای اینکه بتوانیم از تایمر watchdog استفاده کنیم ، ابتدا باید فایل avr/wdt.h را در طرح آردوینو خود قرار دهیم. این کتابخانه استاندارد است که اقدامات نگهبان را نگه می دارد.

مرحله 2: چگونه تایمر Watchdog را فعال کنیم؟

چگونه تایمر Watchdog را فعال کنیم؟
چگونه تایمر Watchdog را فعال کنیم؟
چگونه تایمر Watchdog را فعال کنیم؟
چگونه تایمر Watchdog را فعال کنیم؟

برای فعال کردن زمان سنج ، از تابع "wdt_enable" استفاده می کنیم ، جایی که باید در فاصله آستانه ای که برد در آن بازنشانی می شود ، عبور دهیم. بسته به مورد استفاده ما ، این می تواند از 15 میلی ثانیه تا 8 ثانیه در تنظیمات از پیش تعیین شده که در کتابخانه دیده بان وجود دارد ، باشد.

THRESHOLD - نام ثابت

15 ms WDTO_15MS 30 ms WDTO_30MS 60 ms WDTO_60MS 120 ms WDTO_120MS 250 ms WDTO_250MS 500 ms WDTO_500MS 1s WDTO_1S 2s WDTO_2S 4s WDTO_4S 8s WDTO_8S

مرحله 3: برنامه خود را در حال اجرا نگه دارید

برنامه خود را در حال اجرا نگه دارید
برنامه خود را در حال اجرا نگه دارید

در حال حاضر ، با فعال بودن زمان سنج ، برای جلوگیری از تنظیم مجدد آردوینو ، ما باید به طور دوره ای تابع "wdt_reset" را فراخوانی کنیم تا زمان سنج نگهبان را قبل از اتمام فاصله آستانه تنظیم مجدد کند.

هنگام انتخاب فاصله بازنشانی ، بسیار مهم است که هرگونه عملیات طولانی مدت مانند خواندن یا ارسال داده یا اتصال به سنسورهای خارجی را در نظر بگیریم. آستانه بازنشانی باید حداقل یک و نیم برابر بیشتر از این زمانها باشد تا از هرگونه بازنشانی تصادفی جلوگیری شود.

مرحله 4: مثال استفاده

مثال استفاده
مثال استفاده
مثال استفاده
مثال استفاده
مثال استفاده
مثال استفاده

در برنامه نمونه ای که می توانید از اینجا بارگیری کنید ، ابتدا تایمر ساعت مراقبتی را با فاصله تنظیم مجدد 4 ثانیه تنظیم کردیم. سپس برای اینکه بدانیم در عملکرد تنظیمات هستیم ، یک LED را 3 بار سریع فلاش می زنیم و سپس در حلقه اصلی ابتدا تایمر را تنظیم مجدد می کنیم ، یک LED را با فواصل طولانی تر روشن می کنیم و سپس آن را خاموش می کنیم. حلقه بعدی تایمر را مجدداً تنظیم می کند تا زمان روشن شدن بیش از 4 ثانیه باشد.

هنگامی که این اتفاق می افتد ، تایمر دیده بان هیئت مدیره را بازنشانی می کند و راه اندازی مجدد اجرا می شود.

مرحله 5: مسائل مربوط به تایمر Watchdog

بسته به بوت لودر آردوینو یکی از مشکلات احتمالی تایمر دیده بان این است که اگر مقدار تایمر دیده بان خیلی کم باشد و هنگام بارگذاری کد جدید بوت لودر تایمر را تنظیم نکند ، ممکن است در نهایت به برد آردوینو خود آسیب برسانید. همیشه در مرحله بوت گیر می کند. بوت لودر سعی می کند شروع به کار کند ، اما تایمر به تنظیم مجدد برد ادامه می دهد و هرگز اجازه نمی دهد که به درستی شروع به کار کند. برای جلوگیری از چنین مشکلاتی ، مطمئن شوید که همیشه از فواصل آستانه 2 ثانیه یا بیشتر استفاده می کنید.

مرحله ششم: لذت ببرید

لذت بردن
لذت بردن

اگر نمونه ای دارید که در آن از تایمر ساعت مراقبت در یک پروژه واقعی استفاده کرده اید ، در نظرات به من اطلاع دهید ، مطمئن شوید که ویدیو را دوست دارید و مشترک شدن را فراموش نکنید.

سلام و تشکر برای خواندن/تماشا!

توصیه شده: