Skip to content

Instantly share code, notes, and snippets.

@bepitulaz
Created April 28, 2017 08:27
Show Gist options
  • Save bepitulaz/8e20233397dbda3efe48e303e0c3bb01 to your computer and use it in GitHub Desktop.
Save bepitulaz/8e20233397dbda3efe48e303e0c3bb01 to your computer and use it in GitHub Desktop.
Multitasking Arduino dengan menggunakan millis
const int ledPin = 13; // pin yang digunakan untuk LED
// variabel yang akan selalu berganti
int ledState = LOW; // ledState digunakan untuk mengubah kondisi LED
long previousMillis = 0; // akan menyimpan milidetik terakhir dari loop
// inilah variabel pengganti delay(1000)
long interval = 1000; // interval blink dalam ms
void setup() {
// set pin digital sebagai output
pinMode(ledPin, OUTPUT);
}
void loop()
{
// jumlah milidetik saat ini, bertambah 1 tiap 1 loop
unsigned long currentMillis = millis();
if(currentMillis - previousMillis > interval) { // kondisi untuk menghitung apakah interval > dari jumlah milisecond saat ini
// jika state LED berubah, maka milidetik saat ini harus dicatat
previousMillis = currentMillis;
// mengecek kondisi LED saat ini, jika HIGH maka buat jadi LOW dan sebaliknya
if (ledState == LOW)
{
ledState = HIGH;
}
else
{
ledState = LOW;
}
// jalankan LED sesuai state yang sudah didapat dari atas
digitalWrite(ledPin, ledState);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment