Reset Arduino menggunakan Program atau Watchdog Timer (WDT)

Watchdog Timer atau Reset

          WDT adalah singkatan dari watchdog timer atau timer watchdog. WDT akan otomatis mereset program apabila program macet atau hang.  Jika kita membuat alat  atau projek yang dapat  dijangkau dengan mudah, mungkin 

        WDT tidak terlalu terasa pentingnya. Jika alat kita bermasalah karena program error, kita bisa memantaunya dari dekat dan tinggal pencet tombol reset untuk menormalkannya kembali. Namun jika alat atau projek yang dibuat dipasang di tempat yang sulit dijangkau contohnya di atas tower rasanya lucu ketika alat nya eror kita harus manjat-manjat hanya untuk menakan tombol reset agar alat berjaan normal kembali
          
          Ilmu tentang WDT ini sepele, tapi efeknya bisa menghemat biaya dan waktu. Bisa dibayangkan jika Anda membuat alat untuk mengisi air bak mandi otomatis yang dapat dikontrol melalui internet. Eh, tiba-tiba tengah malam alatnya macet, padahal relay pompanya sedang aktif. Apa yang terjadi? Banjiiiiirrrr… :D 

 Contoh Kasus WDT      

Contoh kasus WDT dalam keidupan sehari-hari adalah sebagai berikut
  1. Misal pada waktu peringatan 17 Agustus diadakan lomba makan 99 krupuk. 1 krupuk diberikan   durasi 10 detik. 
  2. Paijo bertugas menghitung. ketika anda berhasi menghabiskan krupuk dalam kurun waktu 7 detik maka berlanjut ke krupuk berikutnya dan waktu mulai dari awal lagi. 
Begitupun sealiknya, jika anda dalam kurun waktu 10 detik krupuk yang anda makan tidak habis maka waktu akan kembali ke awal dan anda dikenakan pelangaran dan harus menggulang prosesnya.
        Ilustrasi di atas dapat dijabarkan seperti ini : Anda adalah program Arduino yang sedang dieksekusi. Paijo adalah WDT. WDT adalah timer yang bisa dipicu dari internal mikrokontroller atau bisa juga dari eksternal mikrokontroller. Counter pada WDT tidak pernah berhenti meski program sedang error atau macet.
        Jika kita mengaktifkan WDT dengan durasi 8 detik, maka Arduino akan restart setiap 8 detik. Akan aneh kalau alat kita restart setiap 8 detik kan? awokwok. Jadi kita harus pintar menentukan dalam satu kali proses program butuh berapa lama. Jika dalam satu kali proses waktunya melebihi program yang ditentukan entah itu delay atau apa WDT akan mereset Program tersebut.

Program 


Running Serial Monitor



Komentar

Postingan populer dari blog ini

HMI WEINTEK Connect Arduino Menggunakan protokol Modbus RTU

Mengirim Data Sensor dari NodeMcu ESP8266 ke Spreeadshets atau Google Sheets