Arduino واچ ڈاگ: یہ کیسے کام کرتا ہے۔

Arduino واچ ڈاگ

اس نئے مضمون میں ہم یہ دیکھنے جا رہے ہیں کہ کیا a دیکھتے ہیں، اسے کس چیز کے لیے استعمال کیا جا سکتا ہے، اور اسے اپنے پروجیکٹس میں کیسے استعمال کیا جائے۔ Arduino. ہر وہ چیز جو آپ کو اس دلچسپ لیکن نامعلوم فنکشن کے بارے میں جاننے کی ضرورت ہے۔ اور ہاں، جیسا کہ اس کے نام سے پتہ چلتا ہے (واچ ڈاگ)، اسے کچھ مسائل کو ٹریک کرنے کے لیے استعمال کیا جا سکتا ہے۔

یہاں ہم دیکھیں گے۔ آپ سب کو جاننے کی ضرورت ہے کے حوالے سے…

واچ ڈاگ کیا ہے؟

کمپیوٹنگ میں ، a نگران ایک نگرانی کا طریقہ کار ہے جو کسی نظام یا پروگرام کے آپریشن کی نگرانی کے لیے استعمال ہوتا ہے۔ اس کا بنیادی کام غیر معمولی حالات یا سسٹم کی خرابیوں کا پتہ لگانا اور ان کا جواب دینا ہے، جیسے کریش یا منجمد، اور مسلسل آپریشن یا سسٹم کی بحالی کو یقینی بنانے کے لیے اصلاحی اقدامات کرنا۔

چوکیدار ٹائمر پر کام کرتا ہے۔ جو ایک مخصوص وقت کے وقفے کے لیے ترتیب دیا گیا ہے۔ اگر سسٹم یا پروگرام اس وقت کے وقفے کے اندر کوئی مخصوص کارروائی نہیں کرتا یا واچ ڈاگ کو طاقت نہیں دیتا (یعنی اسے دوبارہ شروع کرتا ہے) تو واچ ڈاگ فرض کرتا ہے کہ سسٹم ایک ناپسندیدہ حالت میں ہے یا صحیح طریقے سے جواب دینا بند کر دیا ہے اور پہلے سے طے شدہ کارروائی کرتا ہے۔ یہ عمل نفاذ کے لحاظ سے مختلف ہو سکتا ہے اور اس میں سسٹم کو ریبوٹ کرنا، ایرر لاگز بنانا، الارم کو متحرک کرنا، یا مسئلہ کو درست کرنے کے لیے مخصوص اقدامات کرنا شامل ہو سکتے ہیں۔

واچ ڈاگ آپریٹنگ سسٹمز اور سرورز سے لے کر ڈیوائسز تک مختلف قسم کے کمپیوٹر سسٹمز اور ڈیوائسز پر استعمال ہوتا ہے۔ ایمبیڈڈ اور اہم ریئل ٹائم سسٹمز بشمول Arduino. اس کا بنیادی مقصد مسائل کا خود بخود پتہ لگا کر اور ان کا جواب دے کر سسٹم کی وشوسنییتا اور دستیابی کو بہتر بنانا ہے، اس طرح ناکامی کے حالات میں دستی مداخلت کی ضرورت کو کم کرنا ہے۔

Arduino واچ ڈاگ کیا ہے؟

arduino کے بارے میں کتابیں

Arduino کے واچ ڈاگ ٹائمر کو درخواست کی ضروریات کے مطابق ایڈجسٹ کیا جانا چاہئے۔ وہ واچ ڈاگ ٹائمر اندرونی 128 کلو ہرٹز کلاک سورس کا استعمال کرتا ہے (استعمال شدہ بورڈ اور MCU کے لحاظ سے مختلف ہو سکتا ہے)۔ فعال ہونے پر، یہ صفر سے صارف کی پہلے سے متعین قدر تک گننا شروع کر دیتا ہے۔ اگر واچ ڈاگ ٹائمر اس قدر تک پہنچنے پر دوبارہ ترتیب نہیں دیتا ہے، تو یہ مائیکرو کنٹرولر کو دوبارہ ترتیب دیتا ہے۔

ایک مائکروکنٹرولر، یا MCU، ایک چھوٹا الیکٹرانک آلہ ہے جو ایک سنٹرل پروسیسنگ یونٹ (CPU)، میموری، ان پٹ/آؤٹ پٹ پیری فیرلز، اور بعض اوقات مواصلاتی انٹرفیس کو ایک چپ پر مربوط کرتا ہے۔ یہ مخصوص کاموں کو کنٹرول اور انجام دینے کے لیے ڈیزائن کیا گیا ہے۔

واچ ڈاگ ٹائمر اے ٹی میگا 328 پی۔، جس میں لاگو ہوتا ہے۔ Arduino UNO، وقت کی 10 مختلف ترتیبات پیش کرتا ہے، ہر ایک اس بات کا تعین کرتا ہے کہ ٹائمر کب اوور فلو ہو گا اور اس وجہ سے دوبارہ ترتیب دیا جائے گا۔ مختلف وقت کے وقفے درج ذیل ہیں: 16 ms، 32 ms، 64 ms، 0.125 سیکنڈ، 0.25 سیکنڈ، 0.5 سیکنڈ، 1 سیکنڈ، 2 سیکنڈ، 4 سیکنڈ اور 8 سیکنڈ، جیسا کہ ہم بعد میں اس ٹیبل میں دیکھیں گے جسے میں شامل کرتا ہوں۔

اگر یہ ابھی تک آپ کو واضح نہیں ہے کہ آپ واچ ڈاگ ٹائمر کے ساتھ کیا کر سکتے ہیں۔ Arduino UNO، ہم دیکھیں گے ایک مثال تاکہ آپ اسے گرافک طور پر سمجھ سکیں۔ اس مثال میں، ہم ایک سادہ ایل ای ڈی فلیشنگ (پلک جھپکنا) استعمال کریں گے۔ while() لوپ میں داخل ہونے سے پہلے ایل ای ڈی ایک مقررہ مدت کے لیے فلیش کرتی ہے۔ یہ while() لوپ کو بلاکنگ سسٹم کے متبادل کے طور پر استعمال کیا جاتا ہے۔ چونکہ واچ ڈاگ ٹائمر while() لوپ میں رہتے ہوئے ری سیٹ نہیں ہوتا ہے، اس لیے یہ سسٹم ریبوٹ کا سبب بنے گا، اور سسٹم کے کریش ہونے اور ریبوٹ ہونے سے پہلے LEDs دوبارہ چمکنا شروع ہو جائیں گے۔ یہ سلسلہ جاری رہے گا…

تحفظات اور خصوصیات

واچ ڈاگ ٹائمر یہ کوڈ کے شروع میں غیر فعال ہے۔. واچ ڈاگ کو فعال کرنے سے پہلے x سیکنڈ کی تاخیر شامل کی جاتی ہے۔ یہ تاخیر Arduino بوٹ لوڈر کو یہ جانچنے کی اجازت دینے کے لیے اہم ہے کہ آیا نیا کوڈ لوڈ کیا جا رہا ہے اور کوڈ کو فلیش میموری میں جلانے کے لیے کافی وقت دینے کے لیے۔ یہ پہلو احتیاط کے طور پر متعلقہ ہے۔ ایسی صورت حال پیدا ہو سکتی ہے جہاں، ناقص کوڈنگ یا غلط غور و فکر کی وجہ سے، تحریری کوڈ مائیکرو کنٹرولر کو بہت کم وقفوں پر لامحدود طور پر دوبارہ ترتیب دیتا ہے۔ یہ Arduino بورڈ کو نقصان پہنچا سکتا ہے اور کوڈز کو اس پر صحیح طریقے سے اپ لوڈ ہونے سے روک سکتا ہے۔ اگر ایسا ہوتا ہے تو، آپ کو بند Arduino پر ISP کے طور پر دوسرے Arduino کا استعمال کرتے ہوئے بوٹ لوڈر کو جلانے کی ضرورت ہے...

جب ہم Arduino واچ ڈاگ استعمال کرتے ہیں، تو اسے استعمال کرنا ضروری ہے۔ بٹ رجسٹر چپ کے رویے کی وضاحت کرنے کے لیے۔ متعلقہ رجسٹر اور ان کے معنی مائیکرو کنٹرولر ڈیٹا شیٹ میں تفصیل سے ہیں جو Arduino بورڈ پر موجود ہے۔ تاہم، Arduino انٹیگریٹڈ ڈیولپمنٹ انوائرمنٹ (IDE) اس عمل کو آسان بنانے کے لیے ڈیزائن کیے گئے کچھ فنکشنز اور میکروز کے ساتھ آتا ہے، جنہیں لائبریری کو شامل کر کے درآمد کیا جا سکتا ہے۔ #شامل AVR چپ واچ ڈاگ استعمال کرنے کے لیے۔

اس طرح، ہم واچ ڈاگ کو ترتیب دے سکتے ہیں۔ wdt_enable() فنکشن کا استعمال کرتے ہوئے اسے چالو کرنا. اس فنکشن کی دلیل بورڈ کے ری سیٹ ہونے سے پہلے کے وقت کا تعین کرتی ہے اگر ٹائمر کو دوبارہ ترتیب نہیں دیا گیا ہے۔ جہاں تک ان اقدار کا تعلق ہے جو آپ کوڈ میں تشکیل دے سکتے ہیں، میں انہیں یہاں شامل کرتا ہوں:

واچ ڈاگ کو متحرک ہونے سے پہلے کا وقت wtd_enable() دلیل
15 MS WDTO_15MS
30 MS WDTO_30MS
60 MS WDTO_60MS
120 MS WDTO_120MS
250 MS WDTO_250MS
500 MS WDTO_500MS
کے 1 WDTO_1S
کے 2 WDTO_2S
کے 4 WDTO_4S
کے 8 WDTO_8S
مزید معلومات کے لیے، آپ Arduino ڈیٹا شیٹ سے رجوع کر سکتے ہیں، جہاں آپ خود مربوط مائیکرو کنٹرولر کے بارے میں مزید تفصیلات حاصل کر سکتے ہیں، وہ رجسٹر جو واچ ڈاگ کے ساتھ استعمال کیے جا سکتے ہیں، پن آؤٹ، پیری فیرلز، تکنیکی وضاحتیں، وولٹیجز، بجلی کی کھپت وغیرہ۔

Arduino پر واچ ڈاگ استعمال کرنے کی مثال

Arduino IDE، ڈیٹا کی اقسام، پروگرامنگ

آخر میں، دیکھتے ہیں کہ کس طرح واچ ڈاگ کو عملی طور پر Arduino IDE میں ایک مثال کے ساتھ استعمال کیا جاتا ہے۔ جیسا کہ ہم دیکھتے ہیں، یہ بہت آسان ہے، آپ انٹرنیٹ پر اس طرح کے مختلف سورس کوڈز تلاش کرسکتے ہیں، تاکہ آپ اپنے پروجیکٹس میں واچ ڈاگ کو استعمال کرنے کے لیے مشق، ترمیم، اور خود اپنے کوڈز تخلیق کرسکیں۔ چلو دیکھتے ہیں ہماری مثال:

#include <avr/wdt.h> // Incluir la biblioteca watchdog (wdt.h)
 
void setup()
{
  wdt_disable(); // Desactivar el watchdog mientras se configura, para que no se resetee
  wdt_enable(WDTO_2S); // Configurar watchdog a dos segundos
}
 
void loop()
{
  wdt_reset(); // Actualizar el watchdog para que no produzca un reinicio
  //Aquí iría el código de tu programa...
}

جیسا کہ Arduino کے خاکے کی اس مثال میں دیکھا جا سکتا ہے، وہاں موجود ہیں۔ تین افعال واچ ڈاگ کے انتظام کے لیے قابل ذکر پروگرامنگ زبانوں میں سے، اور یہ ہیں:

  • wdt_disable() Arduino کو ترتیب دیتے وقت ٹائمر کو غیر فعال کرنا۔
  • wdt_enable(وقت) ٹائمر کو وقفہ تفویض کرنے اور اسے شروع کرنے کے لیے، متعلقہ وقت کی وضاحت کرتے ہوئے جیسا کہ میں نے پچھلے جدول میں دکھایا ہے۔
  • wdt_reset() تفویض کردہ وقفہ کی تجدید کرنا اور تاکہ پروگرام دوبارہ شروع نہ ہو۔

تبصرہ کرنے والا پہلا ہونا

اپنی رائے دیں

آپ کا ای میل ایڈریس شائع نہیں کیا جائے گا. ضرورت ہے شعبوں نشان لگا دیا گیا رہے ہیں کے ساتھ *

*

*

  1. اعداد و شمار کے لئے ذمہ دار: میگل اینگل گاتین
  2. ڈیٹا کا مقصد: اسپیم کنٹرول ، تبصرے کا انتظام۔
  3. قانون سازی: آپ کی رضامندی
  4. ڈیٹا کا مواصلت: اعداد و شمار کو تیسری پارٹی کو نہیں بتایا جائے گا سوائے قانونی ذمہ داری کے۔
  5. ڈیٹا اسٹوریج: اوکیسٹس نیٹ ورکس (EU) کے میزبان ڈیٹا بیس
  6. حقوق: کسی بھی وقت آپ اپنی معلومات کو محدود ، بازیافت اور حذف کرسکتے ہیں۔