I-Arduino Watchdog: Isebenza njani

umlindi Arduino

Kweli nqaku litsha siza kubona ukuba yintoni na umlindi, yintoni enokusetyenziselwa yona, kunye nendlela yokuyisebenzisa kwiiprojekthi zakho Arduino. Yonke into ofuna ukuyazi ngalo msebenzi unika umdla kodwa ongaziwayo. Kwaye ewe, njengoko igama layo libonisa (umlindi), ingasetyenziselwa ukulandelela iingxaki ezithile.

Apha siza kubona Konke okufuneka ukwazi malunga...

Yintoni inja?

Kwikhompyutha, a umlindi yindlela yokongamela esetyenziselwa ukubeka esweni ukusebenza kwenkqubo okanye inkqubo. Umsebenzi wayo oyintloko kukubona nokuphendula kwiimeko ezingaqhelekanga okanye ukungaphumeleli kwenkqubo, njengokuphahlazeka okanye ukukhenkceza, kwaye uthathe amanyathelo okulungisa ukuqinisekisa ukusebenza okuqhubekayo okanye ukubuyisela inkqubo.

Umlindi isebenza kwisibali-xesha elungiselelwe isithuba sexesha elithile. Ukuba inkqubo okanye inkqubo ayenzi isenzo esithile okanye amandla umlindi (oko kukuthi, ukuyiqalisa kwakhona) ngaphakathi kwelo xesha, umlindi uthatha ukuba inkqubo ikwimo engafunwayo okanye iyekile ukuphendula ngokuchanekileyo kwaye ithatha isenzo esimiselweyo. Esi senzo sinokwahluka ngokuphunyezwa kwaye sinokubandakanya ukuqalisa ngokutsha inkqubo, ukuvelisa iilogi zeemposiso, ukuqalisa ii-alam, okanye ukuthatha amanyathelo athile ukulungisa ingxaki.

Umlindi usetyenziswa kwiinkqubo ezahlukeneyo zekhompyuter kunye nezixhobo, ukusuka kwiinkqubo zokusebenza kunye neeseva ukuya kwizixhobo iinkqubo ezizinzisiweyo kunye nezibalulekileyo zexesha langempela, kubandakanya iArduino. Injongo yayo ephambili kukuphucula ukuthembeka kwenkqubo kunye nokufumaneka ngokufumanisa ngokuzenzekelayo kunye nokuphendula iingxaki, ngokunciphisa imfuno yokungenelela ngesandla kwiimeko zokungaphumeleli.

Yintoni i-Arduino watchdog?

iincwadi malunga arduino

I-timer ye-watchdog ye-Arduino kufuneka ihlengahlengiswe ngokweemfuno zesicelo. Yena Ixesha lokujonga ixesha isebenzisa umthombo wewotshi yangaphakathi ye-128 kHz (inokwahluka ngokuxhomekeke kwibhodi kunye ne-MCU esetyenzisiweyo). Xa ivuliwe, iqala ukubala ukusuka ku-zero ukuya kwixabiso elimiselwe kwangaphambili lomsebenzisi. Ukuba i-Timer ye-Watchdog ayicwangciswanga kwakhona xa ifikelela kweli xabiso, ibuyisela i-microcontroller.

I-microcontroller, okanye i-MCU, i-electronic device encinci edibanisa i-central processing unit (CPU), imemori, i-input / output peripherals, kwaye ngamanye amaxesha i-interfaces yonxibelelwano kwi-chip enye. Yenzelwe ukulawula kunye nokwenza imisebenzi ethile.

Isibali-xesha seWatchdog Ifumaneke, ephunyezwa kwi Arduino UNO, inikezela nge-10 izicwangciso zexesha ezahlukeneyo, nganye imisela ukuba isibali-xesha siya kuphuphuma nini kwaye ngenxa yoko kubangele ukusetha kwakhona. Amaxesha ahlukeneyo exesha ngala alandelayo: 16 ms, 32 ms, 64 ms, 0.125 imizuzwana, 0.25 imizuzwana, 0.5 imizuzwana, 1 yesibini, 2 imizuzwana, 4 imizuzwana kunye 8 imizuzwana, njengoko siza kubona kamva kwitheyibhile ukuba ndibandakanya.

Ukuba akukacaci kuwe ukuba ungenza ntoni nge-Watchdog Timer Arduino UNO, sobona Umzekelo ukuze ukwazi ukuyiqonda ngokomzobo. Kulo mzekelo, siya kusebenzisa ukukhanya kwe-LED elula (blink). IiLEDs ziyadanyaza kangangexesha elithile phambi kokungena ngexesha() loop. Eli xesha () loop isetyenziswa njengenye indlela kwindlela yokuthintela. Ekubeni i-Timer ye-Watchdog ayicwangciswanga ngelixa i-loop () i-loop, iya kubangela inkqubo yokuqalisa kwakhona, kwaye ii-LED ziya kuqalisa ukukhanya kwakhona ngaphambi kokuba inkqubo iqhube kwaye iqalise kwakhona. Lo mjikelo uzakuqhuba...

Iingqwalasela kunye neempawu

Isibali-xesha seWatchdog Ivaliwe ekuqaleni kwekhowudi. Ukulibaziseka kwemizuzwana ye-x kubandakanyiwe ngaphambi kokwenza i-Watchdog. Oku kulibaziseka kubalulekile ukuvumela i-Arduino bootloader ukujonga ukuba ikhowudi entsha iyalayishwa kwaye ivumele ixesha elaneleyo lokutshisa ikhowudi kwimemori edanyazayo. Lo mba ufanelekile njengesilumkiso. Imeko inokuvela apho, ngenxa yekhowudi ephosakeleyo okanye ukuqwalaselwa okungafanelekanga, ikhowudi ebhaliweyo ibuyisela i-microcontroller ngexesha elifutshane kakhulu ngokungapheliyo. Oku kungonakalisa ibhodi ye-Arduino kwaye kuthintele iikhowudi ukuba zifakwe ngokufanelekileyo kuyo. Ukuba oku kuyenzeka, kufuneka utshise i-bootloader usebenzisa enye iArduino njenge-ISP kwiArduino etshixiweyo...

Xa sisebenzisa i-watchdog ye-Arduino, kuyimfuneko ukusebenzisa iirejista kancinci ukuchaza ukuziphatha kwetshiphu. Iirejista ezifanelekileyo kunye nentsingiselo yazo zichazwe kwidatha yedatha ye-microcontroller ekhoyo kwibhodi ye-Arduino. Nangona kunjalo, indawo ehlanganisiweyo yophuhliso lwe-Arduino (IDE) iza neminye imisebenzi kunye ne-macros eyenzelwe ukwenza lula le nkqubo, enokuthi ingeniswe ngokubandakanya ithala leencwadi. #zibandakanya ukusebenzisa i-AVR chip watchdog.

Ngale ndlela, sinokuyiqwalasela i-watchdog ukuyivula usebenzisa wdt_enable() umsebenzi. Ingxoxo yalo msebenzi imisela ixesha phambi kokuba ibhodi isetyenziselwe ukuba isibali-xesha asiphindanga sisetwe. Ngokuphathelele amaxabiso onokuthi uwaqwalasele kwikhowudi, ndiwabandakanya apha:

Ixesha ngaphambi kokuba i-watchdog iqalise wtd_enable() ingxabano
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 WDTO_1S
2 WDTO_2S
4 WDTO_4S
8 WDTO_8S
Ngolwazi oluthe kratya, unokujongana nedatha ye-Arduino, apho unokufumana iinkcukacha ezithe kratya malunga ne-microcontroller edibeneyo ngokwayo, iirejista ezinokuthi zisetyenziswe kunye ne-watchdog, i-pinout, i-peripherals, iinkcukacha zobugcisa, i-voltages, ukusetyenziswa kwamandla, njl.

Umzekelo wokusebenzisa i-watchdog kwi-Arduino

Arduino IDE, iintlobo zedatha, inkqubo

Okokugqibela, makhe sibone ukuba isetyenziswa njani i-watchdog ngokoqobo ngomzekelo kwi-Arduino IDE. Njengoko sibona, ilula kakhulu, unokufumana iikhowudi zomthombo ezahlukeneyo ezifana nale kwi-Intanethi, ukuze ukwazi ukuziqhelanisa, ukuguqula, kunye nokwenza iikhowudi zakho zokusebenzisa i-watchdog kwiiprojekthi zakho. Masibone umzekelo wethu:

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

Njengoko kunokubonwa kulo mzekelo womzobo weArduino, kukho imisebenzi emithathu kwiilwimi zenkqubo eziphawulekayo zokulawula umlindi, kwaye ezi zezi:

  • wdt_disable() ukuvala isibali-xesha ngelixa uqwalasela iArduino.
  • wdt_vula (ixesha) ukunika isithuba kwisibali-xesha kwaye siqale, sichaza ixesha elihambelanayo njengoko bendibonisile kwitheyibhile engaphambili.
  • wdt_reset() ukuhlaziya ikhefu elinikiweyo kwaye udweliso lwenkqubo lungaqalisi kwakhona.

Yiba ngowokuqala ukuphawula

Shiya uluvo lwakho

Idilesi yakho ye email aziyi kupapashwa. ezidingekayo ziphawulwe *

*

*

  1. Uxanduva lwedatha: UMiguel Ángel Gatón
  2. Injongo yedatha: Ulawulo lwe-SPAM, ulawulo lwezimvo.
  3. Umthetho: Imvume yakho
  4. Unxibelelwano lwedatha: Idatha ayizukuhanjiswa kubantu besithathu ngaphandle koxanduva lomthetho.
  5. Ukugcinwa kweenkcukacha
  6. Amalungelo: Ngalo naliphi na ixesha unganciphisa, uphinde uphinde ucime ulwazi lwakho.