Program Dasar Arduino 5 : Program Millis ARDUINO (Program Waktu Tanpa delay)
Program Millis Menggantikan Program Delay pada ARDUINO
Pada kesempatan ini
saya akan sharing bagaimana memprogram millis pada arduino. Sebelumnya kalian
pernah mendapati kendala ketika akan mengeksekusi program tetapi tidak dapat
dilakukan karena menunggu program delay() yang sedang berjalan?
Kalau itu terjadi
dengan kamu, maka kamu bisa mengganti
program delay() yang kamu gunakan dengan program millis. Dengan begitu kamu
dapat menjalankan beberapa program secara bersama tanpa menunggu eksekusi
program waktu seperti ketika kamu menggunakan program delay().
Apa itu program MILLIS?
Millis Arduino merupakan
salah satu fungsi pada sintak program Arduino yang berfungsi untuk menjalankan
waktu internal peda setiap milli detik pada sistem kerja Arduino secara
independent atau mandiri.
Ketika millis di baca
pada program Arduino, maka millis akan terus menerus menghitung waktu internal
walau pun Arduino nya pada saat bersamaan sedang menjalankan suatu program yang
lain. Karena pada dasarnya fungsi Millis ini juga bisa digunakan sebagai multi
tasking nya Arduino.
Apa itu Multi Tasking?
Multi Tasking merupakan
proses eksekusi dua atau beberapa program secara bersamaan. Pada Arduino sistem
multi tasking sebenarnya tidak menjalankan program secara bersamaan, tetapi
secara bergantian pada setiap siklus clocknya. Karena pergantian eksekusi
programnya sangat cepat sehingga yang kita rasakan seakan-akan beberapa program
dieksekusi secara bersamaan. Begitulah sistem multi tasking pada Arduino.
Algoritma program ini sering digunakan misal nya program sedang menjalan kan
Motor, namun Led juga berkedip setiap tiga detik.
Dengan begitu dapat
kita simpulkan bahwa menggunakan millis dapat menghilangkan penggunaan fungsi delay().
Untuk memperjelas
pemahaman terhadap fungsi program millis maka langsung saja kita coba praktek.
Langkah pertama yang harus kamu lakukan adalah:
Presiapkan Komponen dan
Alat :
- Arduino UNO
- Led (warna terserah)
- Potensiometer (variable resistor)
- Kabel usb (untuk transfer program)
- Kabel Jumper
Setelah komponen dan
alat disiapkan lagsung saja dirakit rangkaiannya. Sambungkan rangkaian LED ke
pin 9 Arduino. Selanjutnya karena keluaran dari potensiometer merupakan data
analog maka kaki tengah yang perupakan keluaran dari potensio dihubungkan
dengan pin analog input ke pin A0 pada Arduino. Disinilah nanti akan terjadi
proses perubahan data analog menjadi data digital pada Arduino atau sering
disebut proses ADC ( Analog Digital Converter). Pin Analog ini menbaca tegangan
0 – 5v. dengan step kenaikan 10 bit yaitu 0 – 1023. Itu berarti 0 – 5v dikonversikan
menjadi nilai data digital 0 – 1023.
Data ADC = (Vin/Vref) x
Maksimal Data Digital(resolusi)
Gambar 1. Rangkaian Arduino Pengaturan LED dengan Millis |
Kalau sudah terakit
pada project board maka langsung saja buat program berikut ini :
Program :
const
int pinPot = A0;
const
int pinLED = 9;
int
sensor = 0;
long
lastTime = 0;
int
ledValue;
void
setup() {
pinMode(pinPot, INPUT);
pinMode(pinLED, OUTPUT);
}
void
loop() {
sensor
= analogRead(pinPot);
if
(millis() > lastTime + sensor) {
if (ledValue == LOW) {
ledValue = HIGH;
}
else {
ledValue = LOW;
}
lastTime = millis();
digitalWrite(pinLED, ledValue);
}
}
Penjelasan Program :
Sistem kerja program
ini adalah mengedipkan lampu LED atau dengan kata lain menghidupkan dan
mematikan lampu LED dengan interval waktu yang diatur menggunakan potensio.
Tentunya nilai potensio dari rang 0 – 1023 atau 10 bit.
Waktu delay bersifat
dinamis karena parameternya adalah
waktu sekarang (diambil dari
millis()). Sedangkan jeda waktu untuk perubahan adalah waktu perubahan terakhir
+ nilai dari potensiometer. Berikut time chart sebagai gambaran sistem pewaktuan
pada program ini. Ketika nilai data digital dari sensor berkurang maka
berkurang juga waktu nyala dan matinya lampu.
Gambar 2. Konsep Pewaktuan Program Millis Arduino |
Pada baris 5 lastTime
bukan int (integer). Tipe data lastTime adalah long (long integer). Apa bedanya
dengan integer tanpa long?
Integer merupakan type
data yang number dengan range nilai antara -32.768 – 32.767. Sedangkan Long
(long integer) merupakan type data -2.147.483.648
– 2.147.483.647. Range ini lebih besar.
Ok sekian sharing
koding sistem berbasis Arduino kali ini. Silahkan lihat tutorial tutorial
latihan dan materi lainnya yang berbasis Arduino pada menu Kontrol elektronik
di sub menu Mikrokontroler pada web ini.
Kalau kamu tidak
mempunyai arduino kamu bisa melakukan simulasi pada beberapa software yang
sudah mendukung Arduino misalnya antara lain ISIS Proteus atau TinkerCad. Tidak
ada alasan untuk belajar.
TERIMA KASIH
0 Response to "Program Dasar Arduino 5 : Program Millis ARDUINO (Program Waktu Tanpa delay) "
Post a Comment