Բովանդակություն:

The Arduino Hang Guardian - Arduino Watchdog Timer Tutorial: 6 Steps
The Arduino Hang Guardian - Arduino Watchdog Timer Tutorial: 6 Steps

Video: The Arduino Hang Guardian - Arduino Watchdog Timer Tutorial: 6 Steps

Video: The Arduino Hang Guardian - Arduino Watchdog Timer Tutorial: 6 Steps
Video: The Arduino hang guardian - Arduino watchdog timer tutorial 2024, Նոյեմբեր
Anonim
Image
Image

Բարեւ բոլորին, Դա տեղի է ունենում բոլորիս հետ: Դուք կառուցում եք նախագիծ, ոգևորությամբ միացնում բոլոր սենսորները, և հանկարծ Arduino- ն կախվում է, և ոչ մի մուտք չի մշակվում:

«Ի՞նչ է կատարվում», - կհարցնեք և կսկսեք փորփրել ձեր ծածկագիրը ՝ միայն հասկանալով, որ դուք խրվել եք անսահման հանգույցի մեջ: Փառք Աստծո, Արդուինոն ձեր նստարանին էր և ոչ հեռավոր վայրում:

Այսօր մենք կանդրադառնանք, թե ինչպես կարող ենք օգտագործել Arduino- ի ժամացույցի ժամաչափը ՝ դա կանխելու համար:

Քայլ 1. Ի՞նչ է սա Watchdog Timer- ը:

Ինչպե՞ս միացնել Watchdog ժամաչափը
Ինչպե՞ս միացնել Watchdog ժամաչափը

Arduino դիտորդի ժամաչափը, ինչպես նշանակում է անունը, ժմչփ է, որը առանձին աշխատում է տախտակի վրա գտնվող հիմնական պրոցեսորից: Այս ժամաչափը կարող է օգտագործվել տախտակի վիճակը պարբերաբար ստուգելու համար, և այն դեպքերում, երբ խորհուրդը խրված է ծրագրային ապահովման օղակում կամ խրված է ապարատային անսարքության պատճառով, դիտորդի ժամաչափը կարող է վերականգնել Arduino- ն և նորից սկսել այն:

Լռելյայն, երբ այն չի օգտագործվում, այս ժամաչափը անջատված է բոլոր նախագծերում և միայն այն ժամանակ, երբ մենք միացնում ենք այն, մենք պետք է համոզվենք, որ պարբերաբար ասենք, որ այն չվերագործարկի մեր խորհուրդը, եթե այն դեռ գործում է ինչպես և սպասվում էր:

Որպեսզի կարողանանք օգտագործել դիտորդի ժամաչափը, մենք նախ պետք է ներառենք avr/wdt.h ֆայլը մեր Arduino էսքիզում: Սա ստանդարտ գրադարանն է, որն իրականացնում է պահակախմբի գործողությունները:

Քայլ 2. Ինչպե՞ս միացնել Watchdog Timer- ը:

Ինչպե՞ս միացնել Watchdog ժամաչափը
Ինչպե՞ս միացնել Watchdog ժամաչափը
Ինչպե՞ս միացնել Watchdog ժամաչափը
Ինչպե՞ս միացնել Watchdog ժամաչափը

Theամաչափը միացնելու համար մենք օգտագործում ենք «wdt_enable» գործառույթը, որտեղ մենք պետք է անցնենք այն շեմի միջակայքում, որի ընթացքում կվերակայվի տախտակը: Կախված մեր օգտագործման դեպքից, այն կարող է լինել 15 միլիվայրկյանից մինչև 8 վայրկյան ՝ նախապես սահմանված պարամետրերում, որոնք պարունակվում են հսկիչի գրադարանում:

ՇՐRԱՆ - ՇԱՐՈՆԱԿԱՆ ԱՆՈՆ

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: Գործարկեք ձեր ծրագիրը

Պահպանեք ձեր ծրագիրը գործարկված
Պահպանեք ձեր ծրագիրը գործարկված

Այժմ, երբ ժամաչափը միացված է, որպեսզի այն չվերագործարկվի մեր Arduino- ի համար, մենք պետք է պարբերաբար կանչենք «wdt_reset» գործառույթը ՝ պահակակետի ժամաչափը վերականգնելու համար ՝ մինչև շեմի միջակայքի ավարտը:

Վերականգնման միջակայք ընտրելիս շատ կարևոր է հաշվի առնել ցանկացած երկարատև գործողություն, ինչպիսին է տվյալների կարդալը կամ ուղարկելը կամ արտաքին սենսորներին միանալը: Վերականգնման շեմը պետք է լինի առնվազն մեկուկես անգամ ավելի, քան այս անգամները ՝ պատահական վերագործարկումները կանխելու համար:

Քայլ 4: Օգտագործման օրինակ

Օգտագործման օրինակ
Օգտագործման օրինակ
Օգտագործման օրինակ
Օգտագործման օրինակ
Օգտագործման օրինակ
Օգտագործման օրինակ

Օրինակելի ծրագրում, որը կարող եք ներբեռնել այստեղ, մենք նախ կարգաբերեցինք ժամացույցի ժամաչափը `4 վայրկյան զրոյական ընդմիջումով: Այնուհետև իմանալու համար, որ մենք գտնվում ենք կարգաբերման գործառույթում, մենք 3 անգամ արագ լուսավորում ենք LED- ը, այնուհետև հիմնական հանգույցում մենք նախ զրոյացնում ենք ժմչփը, լուսավորում լուսադիոդը աստիճանաբար ավելի երկար ընդմիջումներով, այնուհետև անջատում: Հաջորդ հանգույցը նորից զրոյացնում է ժմչփը, մինչև լուսավորման ժամանակը 4 վայրկյանից երկար լինի:

Երբ դա տեղի ունենա, դիտորդի ժամաչափը վերականգնում է խորհուրդը, և կարգավորումը նորից կատարվում է:

Քայլ 5. Watchdog Timer- ի խնդիրներ

Arամացույցի ժամաչափի հետ կապված հնարավոր խնդիրներից մեկը ՝ կախված ձեր Arduino- ի բեռնիչից, այն է, որ եթե դիտորդի ժամաչափի արժեքը չափազանց ցածր է, և նոր կոդ վերբեռնելիս բեռնախցիկը չի զրոյացնում ժամաչափը, կարող եք վնասել ձեր Arduino տախտակին այնպես, այն միշտ խրված կլինի բեռնախցիկի փուլում: Բեռնախցիկը կփորձի սկսել, բայց ժամաչափը կշարունակի վերականգնել տախտակը ՝ երբեք թույլ չտալով, որ այն ճիշտ գործի: Նման խնդիրները կանխելու համար համոզվեք, որ միշտ օգտագործեք 2 վայրկյան կամ ավելի շեմային ընդմիջումներ:

Քայլ 6: Վայելեք

Վայելեք
Վայելեք

Եթե ունեք օրինակ, թե որտեղ եք օգտագործել դիտորդի ժամաչափը իրական նախագծում, նշեք ինձ մեկնաբանություններում, համոզվեք, որ ձեզ դուր կգա տեսանյութը և մի մոռացեք բաժանորդագրվել:

Ողջույն և շնորհակալություն կարդալու/դիտելու համար:

Խորհուրդ ենք տալիս: