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 :
  1.  Arduino UNO
  2. Led (warna terserah)
  3. Potensiometer (variable resistor)
  4. Kabel usb (untuk transfer program)
  5. 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)




Wiring Rangkaian :


Rangkaian pengatur kedipan LED dengan Potensio berbasis Arduino
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.


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


Berlangganan update artikel terbaru via email:

0 Response to "Program Dasar Arduino 5 : Program Millis ARDUINO (Program Waktu Tanpa delay) "

Post a Comment

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel