विषयसूची:

Arduino हैंग गार्जियन - Arduino वॉचडॉग टाइमर ट्यूटोरियल: 6 चरण
Arduino हैंग गार्जियन - Arduino वॉचडॉग टाइमर ट्यूटोरियल: 6 चरण

वीडियो: Arduino हैंग गार्जियन - Arduino वॉचडॉग टाइमर ट्यूटोरियल: 6 चरण

वीडियो: Arduino हैंग गार्जियन - Arduino वॉचडॉग टाइमर ट्यूटोरियल: 6 चरण
वीडियो: Easiest implementation of Watchdog Timer and ISR in ESP8266 or NodeMCU using Arduino IDE, 2018 2024, नवंबर
Anonim
Image
Image

हेलो सब लोग, ऐसा हम में से अधिकांश के साथ होता है। आप एक प्रोजेक्ट बनाते हैं, उत्साह से सभी सेंसरों को जोड़ते हैं, और अचानक, Arduino हैंग हो जाता है और कोई इनपुट संसाधित नहीं होता है।

"क्या चल रहा है?", आप पूछेंगे और अपने कोड के माध्यम से खुदाई शुरू करेंगे, केवल यह महसूस करने के लिए कि आप एक अनंत लूप में फंस गए हैं। भगवान का शुक्र है कि Arduino आपकी बेंच पर था न कि किसी दूरस्थ स्थान पर।

आज, हम देखेंगे कि ऐसा होने से रोकने के लिए हम Arduino पर वॉचडॉग टाइमर का उपयोग कैसे कर सकते हैं।

चरण 1: यह वॉचडॉग टाइमर क्या है?

वॉचडॉग टाइमर को कैसे इनेबल करें?
वॉचडॉग टाइमर को कैसे इनेबल करें?

Arduino वॉचडॉग टाइमर जैसा कि नाम से ही स्पष्ट है कि एक टाइमर है जो बोर्ड पर मुख्य सीपीयू से अलग चलता है। इस टाइमर का उपयोग समय-समय पर बोर्ड की स्थिति की जांच करने के लिए किया जा सकता है और उन परिस्थितियों में जहां बोर्ड सॉफ़्टवेयर लूप में फंस गया है या हार्डवेयर विफलता के कारण फंस गया है, वॉचडॉग टाइमर Arduino को रीसेट कर सकता है और इसे फिर से शुरू कर सकता है।

डिफ़ॉल्ट रूप से जब उपयोग में नहीं होता है तो यह टाइमर सभी परियोजनाओं पर अक्षम होता है और केवल जब हम इसे सक्षम करते हैं, तो हमें समय-समय पर यह सुनिश्चित करने की आवश्यकता होती है कि यदि यह अभी भी अपेक्षित रूप से काम कर रहा है तो हमारे बोर्ड को रीसेट न करें।

वॉचडॉग टाइमर का उपयोग करने में सक्षम होने के लिए, हमें सबसे पहले अपने Arduino स्केच में avr/wdt.h फ़ाइल को शामिल करना होगा। यह मानक पुस्तकालय है जो निगरानी कार्यों को रखता है।

चरण 2: वॉचडॉग टाइमर को कैसे सक्षम करें?

वॉचडॉग टाइमर को कैसे इनेबल करें?
वॉचडॉग टाइमर को कैसे इनेबल करें?
वॉचडॉग टाइमर को कैसे इनेबल करें?
वॉचडॉग टाइमर को कैसे इनेबल करें?

टाइमर को सक्षम करने के लिए, हम "wdt_enable" फ़ंक्शन का उपयोग करते हैं जहां हमें थ्रेशोल्ड अंतराल में पास करने की आवश्यकता होती है जिस पर बोर्ड रीसेट हो जाएगा। हमारे उपयोग के मामले के आधार पर, यह वॉचडॉग लाइब्रेरी में निहित पूर्व-निर्धारित सेटिंग्स में 15 मिलीसेकंड से लेकर 8 सेकंड तक कहीं भी हो सकता है।

दहलीज - निरंतर नाम

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

चरण 3: अपना कार्यक्रम चालू रखें

अपना कार्यक्रम चालू रखें
अपना कार्यक्रम चालू रखें

अब, टाइमर सक्षम होने के साथ, इसे हमारे Arduino को रीसेट करने से रोकने के लिए हमें समय-समय पर "wdt_reset" फ़ंक्शन को कॉल करने की आवश्यकता होती है ताकि थ्रेशोल्ड अंतराल समाप्त होने से पहले वॉचडॉग टाइमर को रीसेट किया जा सके।

रीसेट अंतराल चुनते समय, यह महत्वपूर्ण है कि हम डेटा को पढ़ने या भेजने या बाहरी सेंसर से कनेक्ट करने जैसे किसी भी लंबे ऑपरेशन को ध्यान में रखें। किसी भी आकस्मिक रीसेट को रोकने के लिए रीसेट थ्रेशोल्ड इन समय से कम से कम डेढ़ गुना अधिक होना चाहिए।

चरण 4: उदाहरण उपयोग

उदाहरण उपयोग
उदाहरण उपयोग
उदाहरण उपयोग
उदाहरण उपयोग
उदाहरण उपयोग
उदाहरण उपयोग

उदाहरण प्रोग्राम में जिसे आप यहां डाउनलोड कर सकते हैं, हमने पहले वॉचडॉग टाइमर को 4 सेकंड के रीसेट अंतराल के साथ सेट किया। फिर यह जानने के लिए कि हम सेटअप फ़ंक्शन में हैं, हम 3 बार जल्दी से एक एलईडी फ्लैश करते हैं और फिर मुख्य लूप में हम पहले टाइमर को रीसेट करते हैं, उत्तरोत्तर लंबे अंतराल के साथ एक एलईडी को लाइट करते हैं और फिर हम इसे बंद कर देते हैं। अगला लूप टाइमर को फिर से रीसेट करता है जब तक कि लाइट-अप समय 4 सेकंड से अधिक न हो।

जब ऐसा होता है, वॉचडॉग टाइमर बोर्ड को रीसेट करता है और सेटअप फिर से निष्पादित होता है।

चरण 5: वॉचडॉग टाइमर मुद्दे

आपके Arduino के बूटलोडर के आधार पर वॉचडॉग टाइमर के साथ एक संभावित समस्या यह है कि यदि वॉचडॉग टाइमर का मान बहुत कम है और नया कोड अपलोड करते समय बूटलोडर टाइमर को रीसेट नहीं करता है, तो आप अपने Arduino बोर्ड को इस तरह से नुकसान पहुंचा सकते हैं। यह हमेशा बूट चरण में अटका रहेगा। बूटलोडर शुरू करने की कोशिश करेगा, लेकिन टाइमर बोर्ड को रीसेट करता रहेगा, इसे कभी भी ठीक से शुरू नहीं होने देगा। इस तरह की समस्याओं से बचने के लिए, हमेशा 2 सेकंड या उससे अधिक के थ्रेशोल्ड अंतराल का उपयोग करना सुनिश्चित करें।

चरण 6: आनंद लें

आनंद लेना
आनंद लेना

यदि आपके पास एक वास्तविक परियोजना में वॉचडॉग टाइमर का उपयोग करने का उदाहरण है, तो मुझे टिप्पणियों में बताएं, वीडियो को पसंद करना सुनिश्चित करें और सदस्यता लेना न भूलें।

चीयर्स और पढ़ने/देखने के लिए धन्यवाद!

सिफारिश की: