Arduino વૉચડોગ: તે કેવી રીતે કામ કરે છે

Arduino વોચડોગ

આ નવા લેખમાં આપણે જોઈશું કે શું એ વૉચડોગ, તેનો ઉપયોગ શેના માટે થઈ શકે છે અને તમારા પ્રોજેક્ટ્સમાં તેનો ઉપયોગ કેવી રીતે કરવો Arduino. આ રસપ્રદ છતાં અજાણ્યા કાર્ય વિશે તમારે જે જાણવાની જરૂર છે તે બધું. અને હા, તેનું નામ સૂચવે છે તેમ (વોચડોગ), તેનો ઉપયોગ કેટલીક સમસ્યાઓને ટ્રેક કરવા માટે થઈ શકે છે.

અહીં આપણે જોઈશું તમારે જે જાણવાની જરૂર છે સંબંધિત…

વોચડોગ શું છે?

ગણતરીમાં, એ ચોકીદાર સિસ્ટમ અથવા પ્રોગ્રામના સંચાલન પર દેખરેખ રાખવા માટે વપરાતી સુપરવાઇઝરી મિકેનિઝમ છે. તેનું મુખ્ય કાર્ય અસાધારણ પરિસ્થિતિઓ અથવા સિસ્ટમ નિષ્ફળતાઓ, જેમ કે ક્રેશ અથવા ફ્રીઝને શોધવાનું અને તેનો પ્રતિસાદ આપવાનું છે અને ચાલુ કામગીરી અથવા સિસ્ટમ પુનઃપ્રાપ્તિની ખાતરી કરવા માટે સુધારાત્મક પગલાં લેવાનું છે.

ચોકીદાર ટાઈમર પર કામ કરે છે જે ચોક્કસ સમય અંતરાલ માટે ગોઠવેલ છે. જો તે સમયના અંતરાલમાં સિસ્ટમ અથવા પ્રોગ્રામ કોઈ ચોક્કસ ક્રિયા ન કરે અથવા વોચડોગને શક્તિ આપે (એટલે ​​​​કે, તેને ફરીથી શરૂ કરે), તો વોચડોગ ધારે છે કે સિસ્ટમ અનિચ્છનીય સ્થિતિમાં છે અથવા યોગ્ય રીતે પ્રતિસાદ આપવાનું બંધ કરી દીધું છે અને પૂર્વનિર્ધારિત પગલાં લે છે. આ ક્રિયા અમલીકરણ દ્વારા અલગ-અલગ હોઈ શકે છે અને તેમાં સિસ્ટમને રીબૂટ કરવી, એરર લૉગ્સ જનરેટ કરવા, અલાર્મ ટ્રિગર કરવા અથવા સમસ્યાને સુધારવા માટે ચોક્કસ પગલાં લેવાનો સમાવેશ થઈ શકે છે.

વોચડોગનો ઉપયોગ વિવિધ કોમ્પ્યુટર સિસ્ટમ્સ અને ઉપકરણોમાં થાય છે, ઓપરેટિંગ સિસ્ટમ્સ અને સર્વરથી લઈને ઉપકરણો સુધી એમ્બેડેડ અને ક્રિટિકલ રીઅલ-ટાઇમ સિસ્ટમ્સ, જેમાં Arduinoનો સમાવેશ થાય છે. તેનો પ્રાથમિક ઉદ્દેશ્ય સમસ્યાઓને આપમેળે શોધી અને તેનો પ્રતિસાદ આપીને સિસ્ટમની વિશ્વસનીયતા અને પ્રાપ્યતામાં સુધારો કરવાનો છે, જેનાથી નિષ્ફળતાની પરિસ્થિતિઓમાં મેન્યુઅલ હસ્તક્ષેપની જરૂરિયાત ઓછી થાય છે.

Arduino વોચડોગ શું છે?

arduino વિશે પુસ્તકો

Arduino વૉચડોગ ટાઈમર એપ્લિકેશનની જરૂરિયાતો અનુસાર સેટ કરવું આવશ્યક છે. તેમણે વ Watchચડોગ ટાઈમર આંતરિક 128 kHz ઘડિયાળ સ્ત્રોતનો ઉપયોગ કરે છે (વપરાતા બોર્ડ અને MCUના આધારે બદલાઈ શકે છે). જ્યારે સક્રિય થાય છે, ત્યારે તે વપરાશકર્તા દ્વારા પૂર્વનિર્ધારિત મૂલ્ય સુધી શૂન્યથી ગણતરી કરવાનું શરૂ કરે છે. જો વૉચડોગ ટાઈમર તે મૂલ્ય સુધી પહોંચે ત્યારે રીસેટ થતું નથી, તો તે માઇક્રોકન્ટ્રોલરને રીસેટ કરે છે.

માઇક્રોકન્ટ્રોલર, અથવા MCU, એક નાનું ઇલેક્ટ્રોનિક ઉપકરણ છે જે એક જ ચિપ પર સેન્ટ્રલ પ્રોસેસિંગ યુનિટ (CPU), મેમરી, ઇનપુટ/આઉટપુટ પેરિફેરલ્સ અને ક્યારેક કોમ્યુનિકેશન ઇન્ટરફેસને એકીકૃત કરે છે. તે ચોક્કસ કાર્યોને નિયંત્રિત કરવા અને ચલાવવા માટે રચાયેલ છે.

વૉચડોગ ટાઈમર એટીમેગા 328 પી, જે અમલમાં છે Arduino UNO, 10 અલગ-અલગ સમય સેટિંગ ઑફર કરે છે, દરેક નક્કી કરે છે કે ટાઈમર ક્યારે ઓવરફ્લો થશે અને તેથી રીસેટ થશે. અલગ-અલગ સમયના અંતરાલ નીચે મુજબ છે: 16 ms, 32 ms, 64 ms, 0.125 સેકન્ડ, 0.25 સેકન્ડ, 0.5 સેકન્ડ, 1 સેકન્ડ, 2 સેકન્ડ, 4 સેકન્ડ અને 8 સેકન્ડ, જેમ કે હું સમાવિષ્ટ કોષ્ટકમાં પછીથી જોઈશું.

જો તે હજુ પણ તમને સ્પષ્ટ નથી કે તમે વોચડોગ ટાઈમર સાથે શું કરી શકો છો Arduino UNO, અમે જોશો એક ઉદાહરણ જેથી તમે તેને ગ્રાફિકલી સમજી શકો. આ ઉદાહરણમાં, અમે LEDs ની સરળ ઝબકનો ઉપયોગ કરીશું. while() લૂપમાં પ્રવેશતા પહેલા સેટ સમયગાળા માટે એલઈડી ઝબકી જાય છે. આ while() લૂપનો ઉપયોગ લૉક કરેલ સિસ્ટમના વિકલ્પ તરીકે થાય છે. વૉચડોગ ટાઈમર જ્યારે while() લૂપમાં હોય ત્યારે રીસેટ થતું ન હોવાથી, તે સિસ્ટમ રીબૂટનું કારણ બનશે, અને સિસ્ટમ ક્રેશ થાય અને રીબૂટ થાય તે પહેલાં LED ફરી ઝબકવાનું શરૂ કરશે. આ ચક્ર ચાલુ રહેશે...

વિચારણાઓ અને લક્ષણો

વૉચડોગ ટાઈમર કોડની શરૂઆતમાં અક્ષમ કરેલ છે. વોચડોગને સક્ષમ કરતા પહેલા x સેકન્ડનો વિલંબ સામેલ છે. Arduino બુટલોડરને નવો કોડ લોડ થઈ રહ્યો છે કે કેમ તે તપાસવા અને ફ્લેશ મેમરીમાં કોડ લખવા માટે પૂરતો સમય આપવા માટે આ વિલંબ મહત્વપૂર્ણ છે. આ પાસા સાવચેતી તરીકે સંબંધિત છે. એવી પરિસ્થિતિ ઊભી થઈ શકે છે કે જ્યાં ખામીયુક્ત કોડિંગ અથવા અયોગ્ય વિચારણાઓને લીધે, લેખિત કોડ માઇક્રોકન્ટ્રોલરને ખૂબ જ ટૂંકા અંતરાલમાં અનંતપણે ફરીથી સેટ કરે છે. આ Arduino બોર્ડને નુકસાન પહોંચાડી શકે છે અને કોડને તેના પર યોગ્ય રીતે અપલોડ થતા અટકાવી શકે છે. જો આવું થાય, તો લૉક કરેલ Arduino પર ISP તરીકે અન્ય Arduino નો ઉપયોગ કરીને બુટલોડરને બર્ન કરવું જરૂરી છે...

જ્યારે આપણે Arduino વૉચડોગનો ઉપયોગ કરીએ છીએ, ત્યારે તેનો ઉપયોગ કરવો જરૂરી છે બીટ રજીસ્ટર ચિપના વર્તનને વ્યાખ્યાયિત કરવા માટે. સંબંધિત રજિસ્ટર અને તેનો અર્થ માઇક્રોકન્ટ્રોલર ડેટાશીટમાં વિગતવાર છે જે Arduino બોર્ડ પર હાજર છે. જો કે, Arduino ઈન્ટીગ્રેટેડ ડેવલપમેન્ટ એન્વાયર્નમેન્ટ (IDE) આ પ્રક્રિયાને સરળ બનાવવા માટે રચાયેલ કેટલાક કાર્યો અને મેક્રો સાથે આવે છે, જેને લાઈબ્રેરીનો સમાવેશ કરીને આયાત કરી શકાય છે. # સમાવેશ થાય છે AVR ચિપ વોચડોગનો ઉપયોગ કરવા માટે.

આ રીતે, અમે વોચડોગને ગોઠવી શકીએ છીએ wdt_enable() ફંક્શનનો ઉપયોગ કરીને તેને સક્રિય કરી રહ્યા છીએ. જો ટાઈમર રીસેટ ન થયું હોય તો આ ફંક્શનની દલીલ બોર્ડ રીસેટ થાય તે પહેલાનો સમય નક્કી કરે છે. તમે કોડમાં રૂપરેખાંકિત કરી શકો તે મૂલ્યો વિશે, અહીં હું તેનો સમાવેશ કરું છું:

વૉચડોગ ટ્રિગર થાય તે પહેલાંનો સમય wtd_enable() દલીલ
15 મિ.એસ. WDTO_15MS
30 મિ.એસ. WDTO_30MS
60 મિ.એસ. WDTO_60MS
120 મિ.એસ. WDTO_120MS
250 મિ.એસ. WDTO_250MS
500 મિ.એસ. WDTO_500MS
1 સેકંડ WDTO_1S
2 સેકંડ WDTO_2S
4 સેકંડ WDTO_4S
8 સેકંડ WDTO_8S
વધુ માહિતી માટે, તમે Arduino ડેટાશીટનો સંપર્ક કરી શકો છો, જ્યાં તમે સંકલિત માઇક્રોકન્ટ્રોલર વિશે વધુ વિગતો મેળવી શકો છો, રજિસ્ટર કે જે વોચડોગ, પિનઆઉટ, પેરિફેરલ્સ, તકનીકી વિશિષ્ટતાઓ, વોલ્ટેજ, પાવર વપરાશ વગેરે સાથે વાપરી શકાય છે.

Arduino પર વોચડોગનો ઉપયોગ કરવાનું ઉદાહરણ

Arduino IDE, ડેટા પ્રકારો, પ્રોગ્રામિંગ

છેલ્લે, અમે Arduino IDE માં ઉદાહરણ સાથે વ્યવહારિક રીતે વોચડોગનો ઉપયોગ કેવી રીતે થાય છે તે જોવા જઈ રહ્યા છીએ. જેમ આપણે જોઈ શકીએ છીએ, તે એકદમ સરળ છે, તમે ઇન્ટરનેટ પર આના જેવા વિવિધ સ્રોત કોડ્સ શોધી શકો છો, જેથી તમે તમારા પ્રોજેક્ટ્સમાં વોચડોગનો ઉપયોગ કરવા માટે પ્રેક્ટિસ કરી શકો, સંશોધિત કરી શકો અને તમારા પોતાના કોડ બનાવી શકો. જોઈએ અમારું ઉદાહરણ:

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

Arduino માટે આ સ્કેચ ઉદાહરણમાં જોઈ શકાય છે, ત્યાં છે ત્રણ કાર્યો વોચડોગનું સંચાલન કરવા માટે નોંધપાત્ર પ્રોગ્રામિંગ ભાષા, અને આ છે:

  • wdt_disable() Arduino રૂપરેખાંકિત કરતી વખતે ટાઈમરને નિષ્ક્રિય કરવા માટે.
  • wdt_enable(સમય) ટાઇમરને અંતરાલ સોંપવા અને તેને શરૂ કરવા માટે, મેં અગાઉના કોષ્ટકમાં બતાવ્યા પ્રમાણે અનુરૂપ સમયનો ઉલ્લેખ કરીને.
  • wdt_reset() સોંપેલ અંતરાલને નવીકરણ કરવા માટે અને પ્રોગ્રામ પુનઃપ્રારંભ થતો નથી.

ટિપ્પણી કરવા માટે સૌ પ્રથમ બનો

તમારી ટિપ્પણી મૂકો

તમારું ઇમેઇલ સરનામું પ્રકાશિત કરવામાં આવશે નહીં. આવશ્યક ક્ષેત્રો સાથે ચિહ્નિત થયેલ છે *

*

*

  1. ડેટા માટે જવાબદાર: મિગ્યુએલ gelંજેલ ગેટóન
  2. ડેટાનો હેતુ: નિયંત્રણ સ્પામ, ટિપ્પણી સંચાલન.
  3. કાયદો: તમારી સંમતિ
  4. ડેટાની વાતચીત: કાયદાકીય જવાબદારી સિવાય ડેટા તૃતીય પક્ષને આપવામાં આવશે નહીં.
  5. ડેટા સ્ટોરેજ: cસેન્ટસ નેટવર્ક્સ (ઇયુ) દ્વારા હોસ્ટ કરેલો ડેટાબેઝ
  6. અધિકાર: કોઈપણ સમયે તમે તમારી માહિતીને મર્યાદિત, પુન recoverપ્રાપ્ત અને કા deleteી શકો છો.