Ma kēia ʻatikala hou e ʻike mākou i ka mea a ke kiaʻi, he aha ia e hoʻohana ai, a pehea e hoʻohana ai i kāu mau papahana ʻO Arduino. ʻO nā mea āpau e pono ai ʻoe e ʻike e pili ana i kēia hana hoihoi akā ʻike ʻole ʻia. A ʻae, e like me ka manaʻo o kona inoa (watchdog), hiki ke hoʻohana ʻia e nānā i kekahi mau pilikia.
Maanei kakou e ike ai ʻO nā mea āu e ʻike ai pili ana…
ʻO
He aha ka ʻīlio kiaʻi?
Ma ka helu helu, a ʻīlio kiaʻi he hana hoʻomalu i hoʻohana ʻia e nānā i ka hana ʻana o kahi ʻōnaehana a papahana paha. ʻO kāna hana nui, ʻo ia ka ʻimi a pane ʻana i nā kūlana ʻino a i ʻole ka hāʻule ʻana o ka ʻōnaehana, e like me ka hāʻule ʻana a i ʻole ka hoʻokuʻu ʻana, a e hana i nā hana hoʻoponopono e hōʻoia i ka hoʻomau ʻana i ka hana a i ʻole ka hoʻihoʻi ʻana o ka ʻōnaehana.
ʻO ka ʻīlio kiaʻi hana ma ka manawa i hoʻonohonoho ʻia no kahi manawa kikoʻī. Inā ʻaʻole hana ka ʻōnaehana a i ʻole ka papahana i kahi hana kikoʻī a mana paha i ka ʻīlio kiaʻi (e. Hiki ke ʻokoʻa kēia hana ma o ka hoʻokō ʻana a hiki ke hoʻokomo hou i ka ʻōnaehana, ka hana ʻana i nā moʻolelo kuhi hewa, ka hoʻoulu ʻana i nā ala ala, a i ʻole ka hana ʻana i nā hana kikoʻī e hoʻoponopono i ka pilikia.
Hoʻohana ʻia ka ʻīlio kiaʻi ma nā ʻōnaehana kamepiula a me nā mea hana like ʻole, mai nā ʻōnaehana hana a me nā kikowaena i nā polokalamu hoʻokomo a koʻikoʻi nā ʻōnaehana manawa maoli, me Arduino. ʻO kāna pahuhopu nui ka hoʻomaikaʻi ʻana i ka hilinaʻi a me ka loaʻa ʻana o ka ʻōnaehana ma o ka ʻike ʻana a me ka pane ʻana i nā pilikia, a laila e hōʻemi ana i ka pono o ka hana lima i nā kūlana hemahema.
He aha ka ʻīlio kiaʻi Arduino?
Pono e hoʻoponopono ʻia ka manawa kiaʻi o Arduino e like me nā pono o ka noi. He Mea mākaʻi kiaʻi manawa ke hoʻohana nei i kahi kumu wati 128 kHz i loko (hiki ke hoʻololi i ka papa a me ka MCU i hoʻohana ʻia). Ke hoʻāla ʻia, hoʻomaka ka helu ʻana mai ka ʻole a hiki i ka waiwai i koho mua ʻia e ka mea hoʻohana. Inā ʻaʻole hoʻihoʻi ka Watchdog Timer i kona hiki ʻana i kēia waiwai, hoʻihoʻi ia i ka microcontroller.
Ka Manawa Kiai ATmega328P, i hoʻokō ʻia ma Arduino UNO, hāʻawi i nā hoʻonohonoho manawa like ʻole 10, e hoʻoholo ana kēlā me kēia i ka wā e kahe ai ka manawa a no laila e hoʻonohonoho hou. ʻO nā manawa manawa like ʻole penei: 16 ms, 32 ms, 64 ms, 0.125 kekona, 0.25 kekona, 0.5 kekona, 1 kekona, 2 kekona, 4 kekona a me 8 kekona, e like me kā mākou e ʻike ai ma hope o ka papa aʻu e hoʻokomo ai.
Inā ʻaʻole maopopo iā ʻoe ka mea hiki iā ʻoe ke hana me Watchdog Timer Arduino UNO, e ike kakou ʻO kahi laʻana no laila hiki iā ʻoe ke hoʻomaopopo i ke kiʻi. Ma kēia laʻana, e hoʻohana mākou i kahi kukui LED maʻalahi (blink). Hoʻomaka nā LED no kahi manawa i hoʻonohonoho ʻia ma mua o ke komo ʻana i ka loop while(). Hoʻohana ʻia kēia loop while() ma ke ʻano he ʻokoʻa i kahi ʻōnaehana pale. No ka mea ʻaʻole i hoʻonohonoho hou ʻia ka Watchdog Timer i ka wā () loop, e hoʻomaka hou ka ʻōnaehana, a e hoʻomaka hou nā LED ma mua o ka hāʻule ʻana o ka ʻōnaehana a hoʻomaka hou. E hoʻomau kēia pōʻaiapuni…
Nā manaʻo a me nā hiʻohiʻona
Ka Manawa Kiai Ua pio i ka hoʻomaka o ke code. Hoʻopili ʻia kahi lohi o x kekona ma mua o ka hiki ʻana i ka Watchdog. He mea koʻikoʻi kēia lohi e ʻae i ka bootloader Arduino e nānā inā e hoʻouka ʻia ana ke code hou a e ʻae i ka manawa kūpono e kākau ai i ke code i ka hoʻomanaʻo uila. Pili kēia ʻano i mea e mālama ai. Hiki mai ke kūlana ma muli o ke kuhi hewa ʻole a i ʻole ka noʻonoʻo pono ʻole, hoʻihoʻi ke code i kākau ʻia i ka microcontroller i nā manawa pōkole loa. Hiki i kēia ke hōʻino i ka papa Arduino a pale i nā code mai ka hoʻouka pono ʻana iā ia. Inā hiki kēia, pono ʻoe e puhi i ka bootloader me ka hoʻohana ʻana i Arduino ʻē aʻe ma ke ʻano he ISP ma ka Arduino paʻa ...
Ke hoʻohana mākou i ka ʻīlio kiaʻi Arduino, pono e hoʻohana kakau bit e wehewehe i ke ano o ka chip. ʻO nā papa inoa kūpono a me ko lākou manaʻo ua kikoʻī ʻia i ka ʻikepili microcontroller i loaʻa ma ka papa Arduino. Eia nō naʻe, hele mai ka Arduino integrated development environment (IDE) me kekahi mau hana a me nā macros i hoʻolālā ʻia e hoʻomaʻamaʻa i kēia kaʻina hana, hiki ke lawe ʻia mai me ka hoʻokomo ʻana i ka waihona. #hoʻokomo e hoʻohana i ka ʻīlio kiaʻi o ka chip AVR.
Ma kēia ala, hiki iā mākou ke hoʻonohonoho i ka ʻīlio kiaʻi hiki iā ia ma o ka hana wdt_enable().. Hoʻoholo ka hoʻopaʻapaʻa o kēia hana i ka manawa ma mua o ka hoʻihoʻi ʻana o ka papa inā ʻaʻole i hoʻonohonoho hou ʻia ka manawa. No nā waiwai āu e hoʻonohonoho ai i ke code, hoʻokomo wau iā lākou ma aneʻi:
ʻO ka manawa ma mua o ka hoʻomaka ʻana o ka ʻīlio kiaʻi | wtd_enable() hoʻopaʻapaʻa |
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 s | WDTO_1S |
2 s | WDTO_2S |
4 s | WDTO_4S |
8 s | WDTO_8S |
Ka laʻana o ka hoʻohana ʻana i ka ʻīlio kiaʻi ma Arduino
ʻO ka hope, e ʻike kākou pehea e hoʻohana ʻia ai ka ʻīlio kiaʻi me kahi laʻana i ka Arduino IDE. E like me kā mākou e ʻike nei, he mea maʻalahi loa ia, hiki iā ʻoe ke loaʻa i nā code kumu like ʻole e like me kēia ma ka Pūnaewele, hiki iā ʻoe ke hoʻomaʻamaʻa, hoʻololi, a hana i kāu mau code ponoʻī e hoʻohana i ka kiaʻi i kāu mau papahana. E nana kakou kā mākou laʻana:
#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... }
E like me ka mea i ʻike ʻia ma kēia hiʻohiʻona o kahi sketch no Arduino, aia ʻekolu hana o nā ʻōlelo papahana kaulana no ka mālama ʻana i ka ʻīlio kiaʻi, a ʻo kēia:
- wdt_disable() e hoʻopau i ka manawa i ka hoʻonohonoho ʻana iā Arduino.
- wdt_enable(Wā) e hoʻokaʻawale i kahi manawa i ka manawa a hoʻomaka, e kuhikuhi ana i ka manawa kūpono e like me kaʻu i hōʻike ai ma ka papa mua.
- wdt_reset() e hoʻohou i ka wā i hāʻawi ʻia a i ʻole e hoʻomaka hou ka papahana.