Dalam pemrograman Arduino, fungsi millis() sangat penting untuk membuat program yang lebih efisien dan responsif. Tidak seperti delay(), fungsi ini tidak menghentikan seluruh eksekusi program. millis() memungkinkan kita melacak waktu dan menjalankan aksi terjadwal secara non-blocking. Millis memungkinkan Arduino untuk menjalankan beberapa tugas secara bersamaan.
Apa Itu millis()?
Fungsi millis() mengembalikan jumlah milidetik (1/1000 detik) sejak Arduino dinyalakan atau di-reset. Tipe datanya adalah unsigned long.
Tujuan Penggunaan millis()
- Menghindari Penggunaan delay() yang Blocking
- Menjalankan Tugas Secara Paralel (Multitasking)
- Menghitung Selang Waktu Antara Kejadian
- Mengukur Durasi/Waktu Eksekusi
Alat dan Bahan
- 1x Arduino Uno
- 1x LED
- 1x 220 Ohm Resisto
Skema:
Tambahkan LED ke pin 13 Arduino (built-in) dengan menambahkan resistor 220 Ohm
Kode Program:
const int ledPin = 13; unsigned long waktuSebelumnya = 0; const long interval = 1000; // Interval 1000 ms (1 detik) bool statusLED = false; void setup() { pinMode(ledPin, OUTPUT); } void loop() { unsigned long waktuSekarang = millis(); if (waktuSekarang - waktuSebelumnya >= interval) { waktuSebelumnya = waktuSekarang; statusLED = !statusLED; digitalWrite(ledPin, statusLED); } }
Penjelasan:
- millis() digunakan untuk mengecek apakah sudah waktunya menyalakan atau mematikan LED
- Tidak ada delay(), sehingga program tetap responsif
- Bisa ditambahkan logika lain tanpa terganggu
Kapan Harus Gunakan millis()?
- Saat ingin menjalankan banyak proses bersamaan
- Saat ingin program tidak terganggu oleh delay()
- Saat membuat proyek real-time seperti:
- Data logger
- Menu interaktif
- Animasi LED
- Sensor terjadwal
Tips Menggunakan millis()
- Selalu gunakan unsigned long untuk menyimpan nilai waktu
- Jangan gunakan == untuk pembanding waktu, gunakan >=
- Perhatikan overflow: millis() akan kembali ke 0 setelah sekitar 49 hari
- Gunakan struktur seperti:
if (millis() - waktuSebelumnya >= interval) { waktuSebelumnya = millis(); // aksi }Sekarang kamu sudah paham bahwa millis() adalah kunci membuat program tanpa delay. Coba ganti delay() di proyekmu dengan millis(), dan rasakan bedanya!
EmoticonEmoticon
Note: Only a member of this blog may post a comment.