Fungsi millis() pada Arduino menurut saya sangat penting. Hal ini digunakan untuk mengerjakan multitasking pada arduino.
Sebagai contoh sederhana skenario nya adalah sebagai berikut:
- Ada 2 buah LED , berwarna merah dan hijau.
- Led Merah : berkedip setiap 1 detik
- Led Hijau : berkedip setiap 2.5 detik
Hal di atas akan sulit jika dibuat menggunakan fungsi delay(). Oleh karena itu kita akan gunakan fungsi millis() sebagai jalan keluarnya.
Langkah 1 : Gunakan Simulator Wokwi
Agar mudah , kita akan gunakan Simulator Wokwi untuk mencoba hal di atas.
Langkah 2 : Start from Scratch
Kita mulai dari awal, dan saya biasa menggunakan Arduino Nano (punya-nya board ini, dan kalau beli masih relatif terjangkau…hehehehe)

Langkah 3 : Rangkai dan tulis kode program
Silahkan rangkai seperti gambar di bawah ini

Isi program nya adalah sebagai berikut:
const int ledMerah = 2; // Pin untuk Led Merah
const int ledHijau = 7; // Pin untuk Led Hijau
long previousMillisMerah = 0;
long previousMillisHijau = 0;
int ledStateMerah = LOW;
int ledStateHijau = LOW;
// Skenario:
// Led Merah nyala mati bergantian setiap 1 detik
// Led Hijau nyala mati bergantian setiap 2.5 detik
long intervalMerah = 1000;
long intervalHijau = 2500;
void setup() {
pinMode(ledMerah, OUTPUT);
pinMode(ledHijau, OUTPUT);
}
void loop() {
unsigned long currentMillis = millis();
// Cek yang merah dulu
if(currentMillis - previousMillisMerah > intervalMerah) {
previousMillisMerah = currentMillis;
if (ledStateMerah == LOW)
ledStateMerah = HIGH;
else
ledStateMerah = LOW;
digitalWrite(ledMerah, ledStateMerah);
}
// Cek yang hijau
if(currentMillis - previousMillisHijau > intervalHijau) {
previousMillisHijau = currentMillis;
if (ledStateHijau == LOW)
ledStateHijau = HIGH;
else
ledStateHijau = LOW;
digitalWrite(ledHijau, ledStateHijau);
}
}
Silahkan jalankan simulator nya.