Përmbajtje:
- Hapi 1: Çfarë është ky kohëmatës vëzhgues?
- Hapi 2: Si të aktivizoni kohëmatësin mbikëqyrës?
- Hapi 3: Mbani programin tuaj në punë
- Hapi 4: Shembull i Përdorimit
- Hapi 5: Çështjet e Kohëmatësit të Mbikëqyrësit
- Hapi 6: Shijoni
Video: Arduino Hang Guardian - Arduino Watchdog Timer Tutorial: 6 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:16
Pershendetje te gjitheve, Na ndodh të gjithëve. Ju ndërtoni një projekt, lidhni me entuziazëm të gjithë sensorët dhe papritmas, Arduino varet dhe asnjë input nuk përpunohet.
"Çfarë po ndodh?", Do të pyesni dhe do të filloni të gërmoni nëpër kodin tuaj, vetëm për të kuptuar se keni ngecur në një lak të pafund. Falë Zotit, Arduino ishte në stolin tuaj dhe jo në një vend të largët.
Sot, ne do të shikojmë se si mund ta përdorim kohëmatësin vëzhgues në Arduino për të parandaluar që kjo të ndodhë.
Hapi 1: Çfarë është ky kohëmatës vëzhgues?
Kohëmatësi Arduino mbikëqyrës siç nënkupton edhe emri është një kohëmatës që funksionon veçmas nga CPU -ja kryesore në tabelë. Ky kohëmatës mund të përdoret për të kontrolluar periodikisht gjendjen e tabelës dhe në rrethanat kur bordi ka ngecur në një lak softuerik ose ka ngecur për shkak të dështimit të harduerit, kohëmatësi mbikëqyrës mund të rivendosë Arduino -n dhe ta fillojë nga e para.
Si parazgjedhje kur nuk është në përdorim, ky kohëmatës është i çaktivizuar në të gjitha projektet dhe vetëm kur e aktivizojmë, duhet të sigurohemi që periodikisht t'i themi që të mos e rivendosë bordin tonë nëse ai ende funksionon siç pritej.
Për të qenë në gjendje të përdorim kohëmatësin mbikëqyrës, së pari duhet të përfshijmë skedarin avr/wdt.h në skicën tonë Arduino. Kjo është biblioteka standarde që mban veprimet e mbikëqyrësit.
Hapi 2: Si të aktivizoni kohëmatësin mbikëqyrës?
Për të aktivizuar kohëmatësin, ne përdorim funksionin "wdt_enable" ku duhet të kalojmë në intervalin e pragut në të cilin bordi do të rivendoset. Në varësi të rastit tonë të përdorimit, kjo mund të jetë diku nga 15 milisekonda deri në 8 sekonda në cilësimet e paracaktuara që gjenden në bibliotekën e rojeve.
THRESHOLD - EMRI KONSTANT
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
Hapi 3: Mbani programin tuaj në punë
Tani, me kohëmatësin e aktivizuar, për ta parandaluar atë nga rivendosja e Arduino -s tonë, ne duhet të thërrasim periodikisht funksionin "wdt_reset" për të rivendosur kohëmatësin mbikëqyrës para se të skadojë intervali i pragut.
Kur zgjidhni një interval rivendosjeje, është thelbësore që të marrim parasysh çdo operacion të gjatë si leximi ose dërgimi i të dhënave ose lidhja me sensorë të jashtëm. Pragu i rivendosjes duhet të jetë të paktën një herë e gjysmë më i madh se këto herë për të parandaluar çdo rivendosje aksidentale.
Hapi 4: Shembull i Përdorimit
Në programin shembull që mund të shkarkoni këtu, ne fillimisht vendosëm kohëmatësin mbikëqyrës me një interval rivendosjeje prej 4 sekondash. Pastaj për të ditur që jemi në funksionin e konfigurimit, ne ndezim një LED për 3 herë shpejt dhe pastaj në lakin kryesor fillimisht e rivendosim kohëmatësin, ndezim një LED me intervale progresive më të gjata dhe më pas e fikim. Cikli tjetër rivendos përsëri kohëmatësin derisa koha e ndezjes të jetë më e gjatë se 4 sekonda.
Kur kjo të ndodhë, kohëmatësi i rojes rivendos tabelën dhe konfigurimi ekzekutohet përsëri.
Hapi 5: Çështjet e Kohëmatësit të Mbikëqyrësit
Një çështje e mundshme me kohëmatësin vëzhgues, në varësi të ngarkuesit të ngarkuesit të Arduino -s tuaj është se nëse vlera e kohëmatësit të rojes është shumë e ulët dhe ngarkuesi i ngarkuesit nuk e rivendos kohëmatësin kur ngarkon kodin e ri, mund të përfundoni duke dëmtuar bordin tuaj Arduino në një mënyrë që gjithmonë do të ngecë në fazën e nisjes. Ngarkuesi i ngarkimit do të përpiqet të fillojë, por kohëmatësi do të vazhdojë të rivendosë tabelën, duke mos lejuar që ajo të fillojë siç duhet. Për të parandaluar çështje të tilla, sigurohuni që të përdorni gjithmonë intervalet e pragut prej 2 sekondash ose më shumë.
Hapi 6: Shijoni
Nëse keni një shembull se ku keni përdorur kohëmatësin vëzhgues në një projekt të vërtetë, më tregoni në komente, sigurohuni që të pëlqeni videon dhe mos harroni të regjistroheni.
Urime dhe faleminderit për leximin/shikimin!
Recommended:
KS-Tea-Timer: 4 hapa
KS-Tea-Timer: SituataJu jeni p.sh. në një zyrë dhe doni të pini çaj ashtu siç duhet (p.sh. çaji jeshil 2 minuta, çaji i zi 5 minuta …), por ndonjëherë ju thjesht humbisni kohën e duhur për të ndaluar pjekjen dhe për të nxjerrë çajin tuaj nga ujë i nxehtë. Eshte shume
Bordi i Aplikimit i 555 IC Timer: 11 Hapa
Bordi i Aplikimit i 555 IC Timer: Hyrje: IC IC i kohëmatësit 555 është një nga IC më i dobishëm dhe më i njohur për të gjithë ne. Transportuesi im i pajisjeve profesionale të ngulitura fillon dy vjet mbrapa dhe në vitin 2019, zgjidhja ime është të përgatis 45 qark të ndryshëm duke përdorur IC 555 timer për
Steampunked Dream Guardian Night Light: 9 hapa (me fotografi)
Steampunked Dream Guardian Night Light: Përshëndetje të gjithëve Një shoku im i ngushtë më kërkoi të krijoja një dhuratë fejese (natyrisht përveç unazës!) Për të dashurën e tij disa javë më parë. Të dy ata janë si unë, zjarrfikës vullnetarë dhe i duan objektet Steampunk. Miku im mendoi për një st
Eye Guardian: Sound Triggered Eye Protection: 9 hapa (me fotografi)
Eye Guardian: Sound Triggered Mbrojtja e syve: Eye Guardian është një tingull i vazhdueshëm i fuqizuar nga Arduino, i shkaktuar nga veshja e mbrojtjes së syve. Ai zbulon zhurmën e pajisjeve të rënda dhe ul syzet mbrojtëse të syve ndërsa pajisjet janë në përdorim. PërmbledhjeNë hapin e parë, unë do të shpjegoj Inspirati
Pi Guardian: 6 hapa (me fotografi)
The Guardian Pi: A keni dashur ndonjëherë të kapni atë person që vazhdon të vjedhë karamelet tuaja të Halloween? Ose ç'të themi për atë shokun e bezdisshëm të dhomës që nuk do ta lërë frigoriferin tuaj vetëm? Duke përdorur një Raspberry Pi 3, Pi Camera dhe PIR sensor, e gjithë kjo tani është e mundur. Thjeshtë