Daftar Isi:

Arduino Hang Guardian - Tutorial Pengatur Waktu Arduino Watchdog: 6 Langkah
Arduino Hang Guardian - Tutorial Pengatur Waktu Arduino Watchdog: 6 Langkah

Video: Arduino Hang Guardian - Tutorial Pengatur Waktu Arduino Watchdog: 6 Langkah

Video: Arduino Hang Guardian - Tutorial Pengatur Waktu Arduino Watchdog: 6 Langkah
Video: The Arduino hang guardian - Arduino watchdog timer tutorial 2024, Juli
Anonim
Image
Image

Halo semuanya, Itu terjadi pada kita semua. Anda membangun sebuah proyek, dengan antusias menghubungkan semua sensor, dan tiba-tiba, Arduino hang dan tidak ada input yang diproses.

"Apa yang terjadi?", Anda akan bertanya dan mulai menggali kode Anda, hanya untuk menyadari bahwa Anda terjebak dalam lingkaran tak terbatas. Syukurlah Arduino ada di bangku Anda dan tidak di lokasi yang jauh.

Hari ini, kita akan melihat bagaimana kita dapat menggunakan pengatur waktu pengawas di Arduino untuk mencegah hal ini terjadi.

Langkah 1: Apa Pengatur Waktu Pengawas Ini?

Bagaimana Mengaktifkan Pengatur Waktu Pengawas?
Bagaimana Mengaktifkan Pengatur Waktu Pengawas?

Pengatur waktu pengawas Arduino sesuai dengan namanya adalah pengatur waktu yang berjalan secara terpisah dari CPU utama di papan tulis. Timer ini dapat digunakan untuk memeriksa keadaan papan secara berkala dan dalam keadaan di mana papan macet dalam loop perangkat lunak atau macet karena kegagalan perangkat keras, pengatur waktu pengawas dapat mengatur ulang Arduino dan memulai dari awal lagi.

Secara default saat tidak digunakan, pengatur waktu ini dinonaktifkan pada semua proyek dan hanya ketika kami mengaktifkannya, kami perlu memastikan untuk secara berkala memberi tahunya untuk tidak mengatur ulang papan kami jika masih beroperasi seperti yang diharapkan.

Untuk dapat menggunakan watchdog timer, pertama-tama kita harus menyertakan file avr/wdt.h dalam sketsa Arduino kita. Ini adalah perpustakaan standar yang menampung tindakan pengawas.

Langkah 2: Bagaimana Mengaktifkan Watchdog Timer?

Bagaimana Mengaktifkan Pengatur Waktu Pengawas?
Bagaimana Mengaktifkan Pengatur Waktu Pengawas?
Bagaimana Mengaktifkan Pengatur Waktu Pengawas?
Bagaimana Mengaktifkan Pengatur Waktu Pengawas?

Untuk mengaktifkan timer, kami menggunakan fungsi "wdt_enable" di mana kami harus melewati interval ambang di mana papan akan diatur ulang. Bergantung pada kasus penggunaan kami, ini bisa berkisar antara 15 milidetik hingga 8 detik dalam pengaturan yang telah ditentukan sebelumnya yang terdapat di perpustakaan pengawas.

ambang - NAMA KONSTAN

15 md WDTO_15MS 30 md WDTO_30MS 60 md WDTO_60MS 120 md WDTO_120MS 250 md WDTO_250MS 500 md WDTO_500MS 1s WDTO_1S 2s WDTO_2S 4s WDTO_4S 8s WDTO_8S

Langkah 3: Jaga agar Program Anda Tetap Berjalan

Tetap Jalankan Program Anda
Tetap Jalankan Program Anda

Sekarang, dengan pengatur waktu diaktifkan, untuk mencegahnya mengatur ulang Arduino kita, kita perlu memanggil fungsi "wdt_reset" secara berkala untuk mengatur ulang pengatur waktu pengawas sebelum interval ambang batas berakhir.

Saat memilih interval reset, sangat penting bagi kami untuk mempertimbangkan operasi yang panjang seperti membaca atau mengirim data atau menghubungkan ke sensor eksternal. Ambang batas reset harus setidaknya satu setengah kali lebih besar dari waktu ini untuk mencegah reset yang tidak disengaja.

Langkah 4: Contoh Penggunaan

Contoh Penggunaan
Contoh Penggunaan
Contoh Penggunaan
Contoh Penggunaan
Contoh Penggunaan
Contoh Penggunaan

Dalam contoh program yang dapat Anda unduh di sini, pertama-tama kita mengatur timer pengawas dengan interval reset 4 detik. Kemudian untuk mengetahui bahwa kita berada dalam fungsi pengaturan, kita mem-flash LED sebanyak 3 kali dengan cepat dan kemudian di loop utama kita mengatur ulang timer terlebih dahulu, menyalakan LED dengan interval yang semakin lama dan kemudian kita mematikannya. Loop berikutnya menyetel ulang timer lagi hingga waktu penyalaan lebih lama dari 4 detik.

Ketika ini terjadi, pengatur waktu pengawas mengatur ulang papan dan pengaturan dijalankan lagi.

Langkah 5: Masalah Pengatur Waktu Pengawas

Satu kemungkinan masalah dengan pengatur waktu pengawas, tergantung pada bootloader Arduino Anda adalah bahwa jika nilai pengatur waktu pengawas terlalu rendah dan bootloader tidak mengatur ulang pengatur waktu saat mengunggah kode baru, Anda mungkin akhirnya merusak papan Arduino Anda dengan cara itu. itu akan selalu macet di fase boot. Bootloader akan mencoba untuk memulai, tetapi pengatur waktu akan terus mengatur ulang papan, tidak pernah membiarkannya memulai dengan benar. Untuk mencegah masalah seperti ini, pastikan untuk selalu menggunakan interval ambang batas 2 detik atau lebih.

Langkah 6: Nikmati

Menikmati
Menikmati

Jika Anda memiliki contoh di mana Anda telah menggunakan pengatur waktu pengawas dalam proyek nyata, beri tahu saya di komentar, pastikan untuk menyukai videonya dan jangan lupa untuk berlangganan.

Semangat dan terima kasih sudah membaca/menonton!

Direkomendasikan: