Orodha ya maudhui:

Arduino Hang Guardian - Mafunzo ya Timer ya Waangalizi wa Arduino: Hatua 6
Arduino Hang Guardian - Mafunzo ya Timer ya Waangalizi wa Arduino: Hatua 6

Video: Arduino Hang Guardian - Mafunzo ya Timer ya Waangalizi wa Arduino: Hatua 6

Video: Arduino Hang Guardian - Mafunzo ya Timer ya Waangalizi wa Arduino: Hatua 6
Video: Как заработать $ 90,00 в день с нулевыми деньгами на старт... 2024, Novemba
Anonim
Image
Image

Halo kila mtu, Inatokea kwetu sote. Unaunda mradi, unganisha sensorer zote kwa shauku, na ghafla, Arduino inaning'inia na hakuna pembejeo inayosindika.

"Ni nini kinachoendelea?", Utauliza na kuanza kuchimba nambari yako, tu utambue kuwa umekwama kitanzi kisicho na mwisho. Asante Mungu Arduino alikuwa kwenye benchi yako na sio katika eneo la mbali.

Leo, tutaangalia ni jinsi gani tunaweza kutumia kipima muda cha mwangalizi kwenye Arduino kuzuia hii kutokea.

Hatua ya 1: Je! Kipindi hiki cha Waangalizi ni nini?

Jinsi ya kuwezesha kipima muda cha mwangalizi?
Jinsi ya kuwezesha kipima muda cha mwangalizi?

Kipima muda cha mwangalizi wa Arduino kama jina linamaanisha ni kipima muda kinachoendesha kando na CPU kuu ubaoni. Kipima muda hiki kinaweza kutumiwa kukagua hali ya bodi mara kwa mara na katika hali ambapo bodi ilikwama kwenye kitanzi cha programu au kukwama kwa sababu ya kutofaulu kwa vifaa, kipima muda cha mwangalizi kinaweza kuweka upya Arduino na kuifanya ianze tena.

Kwa chaguo-msingi wakati haitumii kipima muda hiki kimezimwa kwenye miradi yote na ni wakati tu tunapoiwezesha, tunahitaji kuhakikisha kuwa mara kwa mara tunaiambia isisimamishe bodi yetu ikiwa bado inafanya kazi kama inavyotarajiwa.

Ili kuweza kutumia kipima muda cha mwangalizi, kwanza tunahitaji kujumuisha faili ya avr / wdt.h kwenye mchoro wetu wa Arduino. Hii ni maktaba ya kawaida ambayo inashikilia vitendo vya mbwa.

Hatua ya 2: Jinsi ya kuwezesha kipima muda cha mwangalizi?

Jinsi ya kuwezesha kipima muda cha mwangalizi?
Jinsi ya kuwezesha kipima muda cha mwangalizi?
Jinsi ya kuwezesha kipima muda cha mwangalizi?
Jinsi ya kuwezesha kipima muda cha mwangalizi?

Ili kuwezesha kipima muda, tunatumia kazi "wdt_enable" ambapo tunahitaji kupitisha katika kipindi cha kizingiti ambacho bodi itawekwa upya. Kulingana na kesi yetu ya matumizi, hii inaweza kuwa mahali popote kutoka milliseconds 15 hadi sekunde 8 katika mipangilio iliyofafanuliwa mapema ambayo iko kwenye maktaba ya waangalizi.

THRESHOLD - JINA LA MARA MOJA

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

Hatua ya 3: Endelea Programu yako Kuendesha

Endelea Kuendesha Programu Yako
Endelea Kuendesha Programu Yako

Sasa, ikiwa kipima muda kimewezeshwa, kuizuia kuweka upya Arduino yetu tunahitaji mara kwa mara kupiga kazi ya "wdt_reset" kuweka upya kipima muda kabla ya muda wa kizingiti kumalizika.

Wakati wa kuchagua muda wa kuweka upya, ni muhimu tuzingatie operesheni yoyote ndefu kama kusoma au kutuma data au kuunganisha kwa sensorer za nje. Kizingiti cha kuweka upya kinapaswa kuwa angalau mara moja na nusu kubwa kuliko nyakati hizi kuzuia upangaji wowote wa bahati mbaya.

Hatua ya 4: Matumizi ya Mfano

Matumizi ya Mfano
Matumizi ya Mfano
Matumizi ya Mfano
Matumizi ya Mfano
Matumizi ya Mfano
Matumizi ya Mfano

Katika mpango wa mfano ambao unaweza kupakua hapa, kwanza tunaanzisha kipima muda cha mwangalizi na muda wa kuweka upya wa sekunde 4. Halafu kujua kwamba tuko katika kazi ya usanidi, tunaangaza mwangaza kwa mara 3 haraka na kisha kwenye kitanzi kuu tunaweka upya kipima muda kwanza, kuwasha taa ya LED na vipindi vya kuendelea kwa muda mrefu na kisha tuzime. Kitanzi kinachofuata kinabadilisha kipima muda tena hadi wakati wa kuwasha ni mrefu zaidi ya sekunde 4.

Wakati hii itatokea, kipima muda huangalia bodi na usanidi utekelezwe tena.

Hatua ya 5: Maswala ya Timer Timer

Suala moja linalowezekana na kipima muda cha mwangalizi, kulingana na bootloader ya Arduino yako ni kwamba ikiwa thamani ya saa ya mwangalizi iko chini sana na bootloader haiweki tena kipima wakati unapopakia nambari mpya, unaweza kumaliza kuharibu bodi yako ya Arduino kwa njia ambayo itakuwa daima kukwama katika awamu ya buti. Bootloader itajaribu kuanza, lakini kipima muda kitaendelea kuweka upya bodi, bila kuiruhusu ianze vizuri. Ili kuzuia maswala kama haya, hakikisha kila wakati unatumia vipindi vya kizingiti cha sekunde 2 au zaidi.

Hatua ya 6: Furahiya

Furahiya
Furahiya

Ikiwa una mfano wa wapi umetumia kipima muda katika mradi halisi, nijulishe kwenye maoni, hakikisha kupenda video na usisahau kujisajili.

Shangwe na shukrani kwa kusoma / kutazama!

Ilipendekeza: