I-Arduino Watchdog: Isebenza Kanjani

i-watchdog Arduino

Kulesi sihloko esisha sizobheka ukuthi yini a i-watchdog, ingasetshenziselwa ini, nokuthi isetshenziswa kanjani kumaphrojekthi akho I-Arduino. Konke odinga ukukwazi mayelana nalo msebenzi othakazelisayo nokho ongaziwa. Futhi yebo, njengoba igama layo liphakamisa (i-watchdog), ingasetshenziswa ukulandelela izinkinga ezithile.

Lapha sizobona Konke odinga ukukwazi mayelana…

Iyini inja?

Ekusebenziseni ikhompyutha, a umlindi kuyindlela yokuqondisa esetshenziselwa ukuqapha ukusebenza kwesistimu noma uhlelo. Umsebenzi wayo oyinhloko ukuthola nokusabela ezimweni ezingavamile noma ukwehluleka kwesistimu, njengokuphahlazeka noma ukubanda, nokuthatha izinyathelo zokulungisa ukuze kuqinisekiswe ukusebenza okuqhubekayo noma ukululama kwesistimu.

Umlindi isebenza ngesibali sikhathi ehlelelwe isikhawu sesikhathi esithile. Uma isistimu noma uhlelo lungenzi isenzo esithile noma amandla inja yokubuka (okungukuthi, ukuyiqalisa kabusha) phakathi naleso sikhathi, inja yokubuka ithatha ngokuthi isistimu isesimweni esingafuneki noma iyeke ukuphendula ngendlela efanele futhi ithatha isenzo esinqunywe kusengaphambili. Lesi senzo singahluka ngokusetshenziswa futhi singafaka ukuqalisa kabusha isistimu, ukukhiqiza amalogi wamaphutha, ukucupha ama-alamu, noma ukuthatha izinyathelo ezithile ukulungisa inkinga.

I-watchdog isetshenziswa ezinhlelweni zamakhompiyutha namadivayisi ahlukahlukene, kusukela kumasistimu okusebenza namaseva kuya kumadivaysi amasistimu esikhathi sangempela ashumekiwe futhi abalulekile, okuhlanganisa i-Arduino. Inhloso yayo eyinhloko ukuthuthukisa ukwethembeka nokutholakala kwesistimu ngokuthola ngokuzenzakalelayo nokuphendula izinkinga, ngaleyo ndlela kuncishiswe isidingo sokungenelela mathupha ezimweni zokwehluleka.

Iyini inja ye-Arduino?

izincwadi mayelana arduino

I-watchdog timer ye-Arduino kufanele ilungiswe ngokuya ngezidingo zohlelo lokusebenza. Yena Isikhathi Sokuqapha isebenzisa umthombo wangaphakathi wewashi ongu-128 kHz (ingahluka kuye ngebhodi kanye ne-MCU esetshenzisiwe). Uma yenziwe yasebenza, iqala ukubala ukusuka kuqanda kuye kuye kunani elinqunywe kusengaphambili lomsebenzisi. Uma Isibali sikhathi se-Watchdog singasethwanga kabusha lapho sifinyelela kuleli nani, sisetha kabusha isilawuli esincane.

I-microcontroller, noma i-MCU, iyisisetshenziswa se-elekthronikhi esincane esihlanganisa iyunithi yokucubungula emaphakathi (CPU), inkumbulo, amapheripheral okokufaka/okukhiphayo, futhi ngezinye izikhathi izinkundla zokuxhumana ku-chip eyodwa. Iklanyelwe ukulawula nokwenza imisebenzi ethile.

I-Watchdog Timer UMC328, esetshenziswa ku Arduino UNO, inikeza izilungiselelo zesikhathi ezihlukene ezingu-10, ngasinye sinquma ukuthi isibali sikhathi sizochichima nini futhi ngenxa yalokho sibangele ukusetha kabusha. Izikhawu zesikhathi ezihlukene yilezi ezilandelayo: 16 ms, 32 ms, 64 ms, 0.125 seconds, 0.25 seconds, 0.5 seconds, 1 second, 2 seconds, 4 seconds and 8 seconds, njengoba sizobona kamuva etafuleni engilifakayo.

Uma kungakakucaceli ukuthi yini ongayenza nge-Watchdog Timer of Arduino UNO, sizobona Isibonelo ukuze ukwazi ukuyiqonda ngomdwebo. Kulesi sibonelo, sizosebenzisa ukukhanya kwe-LED okulula (blink). Ama-LED akhanyisa isikhathi esimisiwe ngaphambi kokufaka i- while() loop. Le ngenkathi() loop isetshenziswa njengenye indlela yokuvimbela. Njengoba i-Watchdog Timer ingasethiwe kabusha ngenkathi i- while() loop, izobangela ukuqalisa kabusha kwesistimu, futhi ama-LED azoqala ukukhanyisa futhi ngaphambi kokuba isistimu iphahlazeke futhi iqalise kabusha. Lo mjikelezo uzoqhubeka...

Ukucatshangelwa kanye nezici

I-Watchdog Timer Ikhutshaziwe ekuqaleni kwekhodi. Ukubambezeleka kwamasekhondi angu-x kufakwa ngaphambi kokunika amandla i-Watchdog. Lokhu kubambezeleka kubalulekile ukuvumela i-bootloader ye-Arduino ukuthi ihlole ukuthi ikhodi entsha iyalayishwa yini futhi ivumele isikhathi esanele sokushisa ikhodi ukuze ikhanyise inkumbulo. Lesi sici sibalulekile njengesexwayiso. Isimo singase sivele lapho, ngenxa yokubhala ikhodi okuyiphutha noma ukucatshangelwa okungafanele, ikhodi ebhaliwe isetha kabusha isilawuli esincane ngezikhathi ezimfushane kakhulu ngokungapheli. Lokhu kungalimaza ibhodi le-Arduino futhi kuvimbele amakhodi ukuthi angalayishwa kahle kulo. Uma lokhu kwenzeka, udinga ukushisa i-bootloader usebenzisa enye i-Arduino njenge-ISP ku-Arduino ekhiyiwe...

Uma sisebenzisa i-watchdog ye-Arduino, kuyadingeka ukuyisebenzisa bit amarejista ukuchaza ukuziphatha kwe-chip. Amarejista afanele kanye nencazelo yawo anemininingwane kudatha ye-microcontroller ekhona ebhodini le-Arduino. Nokho, i-Arduino Integrated Development Environment (IDE) iza neminye imisebenzi nama-macros aklanyelwe ukwenza lula le nqubo, engangeniswa kwamanye amazwe ngokufaka umtapo wolwazi. #faka ukusebenzisa i-AVR chip watchdog.

Ngale ndlela, singakwazi ukumisa i-watchdog ukuyivula usebenzisa umsebenzi wdt_enable(). Ukungqubuzana kwalo msebenzi kunquma isikhathi ngaphambi kokuba ibhodi lisethwe kabusha uma isibali sikhathi singasethiwe kabusha. Ngokuqondene namanani ongawamisa kukhodi, ngiwafaka lapha:

Isikhathi ngaphambi kokuthi i-watchdog icushwe wtd_enable() ingxabano
I-15 ms WDTO_15MS
I-30 ms WDTO_30MS
I-60 ms WDTO_60MS
I-120 ms WDTO_120MS
I-250 ms WDTO_250MS
I-500 ms WDTO_500MS
I-1 s I-WDTO_1S
I-2 s I-WDTO_2S
I-4 s I-WDTO_4S
I-8 s I-WDTO_8S
Ukuze uthole olunye ulwazi, ungabheka idatha ye-Arduino, lapho ungathola khona imininingwane eyengeziwe mayelana ne-microcontroller ehlanganisiwe ngokwayo, amarejista angasetshenziswa ne-watchdog, i-pinout, i-peripherals, imininingwane yobuchwepheshe, ama-voltages, ukusetshenziswa kwamandla, njll.

Isibonelo sokusebenzisa i-watchdog ku-Arduino

I-Arduino IDE, izinhlobo zedatha, ukuhlela

Ekugcineni, ake sibone ukuthi i-watchdog isetshenziswa kanjani ngesibonelo ku-Arduino IDE. Njengoba sibona, kulula kakhulu, ungathola amakhodi emithombo ahlukahlukene afana nalawa ku-inthanethi, ukuze ukwazi ukuzijwayeza, ulungise, futhi udale amakhodi akho ukuze usebenzise i-watchdog kumaphrojekthi akho. Asibone isibonelo sethu:

#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...
}

Njengoba kubonakala kulesi sibonelo somdwebo we-Arduino, zikhona imisebenzi emithathu zezilimi eziphawulekayo zokuhlela zokuphatha i-watchdog, futhi lezi yizi:

  • wdt_disable() ukukhubaza isibali sikhathi ngenkathi ulungiselela i-Arduino.
  • wdt_enable(isikhathi) ukunikeza isikhawu kusibali sikhathi bese usiqala, ucacisa isikhathi esihambisanayo njengoba ngibonisile kuthebula eledlule.
  • wdt_reset() ukuvuselela isikhawu esabelwe futhi ukuze uhlelo lungaqali kabusha.

Yiba ngowokuqala ukuphawula

Shiya umbono wakho

Ikheli lakho le ngeke ishicilelwe. Ezidingekayo ibhalwe nge *

*

*

  1. Ubhekele imininingwane: Miguel Ángel Gatón
  2. Inhloso yedatha: Lawula Ugaxekile, ukuphathwa kwamazwana.
  3. Ukusemthethweni: Imvume yakho
  4. Ukuxhumana kwemininingwane: Imininingwane ngeke idluliselwe kubantu besithathu ngaphandle kwesibopho esisemthethweni.
  5. Isitoreji sedatha: Idatabase ebanjwe yi-Occentus Networks (EU)
  6. Amalungelo: Nganoma yisiphi isikhathi ungakhawulela, uthole futhi ususe imininingwane yakho.