Created
April 28, 2017 08:27
-
-
Save bepitulaz/8e20233397dbda3efe48e303e0c3bb01 to your computer and use it in GitHub Desktop.
Multitasking Arduino dengan menggunakan millis
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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