Timer vs Delay: Mana yang Lebih Elegan untuk Mengatur Waktu?
Photo by Jørgen Larsen on Unsplash
Kamu sedang mengembangkan proyek embedded pertamamu, mungkin itu alat penyiram tanaman otomatis atau sekedar LED yang berkedip. Awalnya, kamu menulis delay(1000) dan merasa semuanya baik-baik saja. Tapi tunggu, kenapa tombolnya tidak responsif? Kenapa sensor tidak bisa dibaca saat LED berkedip?
Selamat datang di dilema klasik: timer vs delay.
Delay: Jalan Pintas yang Nyaman… Tapi Menjebak
Kita semua pernah mulai dari sini. Fungsi delay() terasa mudah dan intuitif. Kamu ingin sesuatu terjadi setelah 1 detik? Tulis saja delay(1000). Selesai.
Masalahnya, delay() menghentikan seluruh alur program. Bayangkan kamu menyuruh temanmu berdiri selama 5 menit tanpa boleh melakukan hal lain. Itulah yang dilakukan delay() terhadap mikrokontrolermu.
Ketika kamu sedang “delay”, tidak ada yang bisa terjadi di waktu itu, sensor tidak dibaca, tombol tidak bisa ditekan, sinyal komunikasi tidak ditanggapi.
Timer: Butuh Effort, Tapi Membuka Kemungkinan
Berbeda dengan delay(), timer tidak menghentikan segalanya. Timer berjalan di latar belakang, seperti alarm yang bisa memanggilmu saat waktunya tiba. Kamu bisa menyuruh mikrokontrolermu: “Kalau 1 detik sudah lewat, panggil fungsi ini ya,” dan selama itu, mikrokontroler bisa terus memantau tombol atau sensor.
Memang, belajar menggunakan timer tidak semudah menulis delay(). Kamu mungkin harus bermain dengan interrupt, menghitung millis, atau mengatur prescaler. Tapi begitu paham, kamu akan menyadari betapa fleksibelnya pengatur waktu ini.
Kapan Harus Pakai Delay?
- Saat proyekmu sangat sederhana dan tidak ada multitasking.
- Untuk debug cepat atau tes awal.
- Jika kamu memang tidak butuh respon real-time.
Kapan Timer Lebih Cocok?
- Saat kamu ingin proyekmu melakukan banyak hal sekaligus.
- Jika kamu harus membaca input secara terus-menerus.
- Ketika kamu butuh sinkronasi waktu yang presisi (seperti PWM atau komunikasi serial).
Kesimpulan
delay() itu seperti menunggu bus sambil bengong, kadang tidak masalah. Tapi kalau kamu ingin berjalan ke tempat lain sambil menunggu, kamu butuh timer. Kalau proyekmu makin kompleks, belajar pakai timer bukan cuma pilihan, tapi kebutuhan.
Selamat tinggal delay. Halo dunia multitasking!
Sumber Referensi:
- Arduino Reference: http://www.arduino.cc/reference/en/
- Elliot Williams, Make: AVR Programming, O’Reilly Media.
Comments :