Gb. 17. Skema rangkaian pushbutton (kiri) dan kaki Pin yang harus di sambung (kanan)
Meski kakinya ada 4, hanya dua saja yang perlu disambung ke rangkaian. Yaitu yang posisi
kakinya berderkatan (sejajar). Sedang kaki diseberangknya sudah otomatis tersambung seperti yang
digambar melengkung di atas.
4.3.2 MULTITASIKING
Multitasking adalah melaksanakan beberapa tugas dalam waktu yang bersamaan. Pada
mikrokontroller single processor hal ini jelas tidak dapat dilakukan, karena hanya ada satu proses
dalam satu waktu. Namun dengan teknik tertentu, dengan memanfaatkan kecepatan processor, kita
dapat membuat single processor seolah-olah mengerjakan banyak tugas dalam waktu yang
bersamaan.
Salah satu kunci untuk melakukan multitasking adalah adanya sebuah timing yang dijadikan
kunci sebagai dasar untuk melakukan batasan waktu multitasking.
Dalam pemrograman arduino ada sebuah perintah untuk mengambil waktu saat ini dalam
milisecond yaitu millis(). Setiap kita memanggil milis(), maka akan di ambil sebuah angka
yang menyatakan berapa milisecond / milidetik waktu yang sudah berjalan sejak arduino menyala.
Ini adalah bentuk dasar dari if. Dalam kurung if, asal bernilai 1 atau HIGH, maka
digitalWrite(1) akan dijalankan. Artinya, if(1) sama saja dengan perintah
digitalRead() jika nilainya adalah 1.
void setup() {
pinMode(13,OUTPUT);
pinMode(7,INPUT);
}
void loop() {
int data;
data=digitalRead(7);
digitalWrite(13,data);
}
Perintah ini,
if( digitalRead(7) ) sama dengan perintah digitalRead(7) == HIGH.
Karena meski dengan tanpa ==, perintah digitalRead(7) akan bernilai 1 atau HIGH jika
dilepas, dan bernilai 0 atau LOW jika di tekan. Bukan terbalik, tapi ingat kembali rangkaian
pushubtton.
a. Tuliskan coding agar saat di tekan Led menyala dan satunya padam.
Sebaliknya, saat dilepas leda yang menyala menjadi padam dan yang padam menjadi
menyala.
b. Upload dan jalankan. Apakah sudah sesuai?
4.4.3 Pengantar millis()
Perhitungan yang terlalu cepat untuk dilihat
b. Jalankan sebentar saja, hentikan atau capture, apakah anda melihat angka yang urut dan
beraturan seperti harapan?
c. Jika tidak, kanapa?
Perintah millis() terlalu cepat untuk ditampilkan. Kita akan memperlambatnya dengan
menambah delay.
e. Jalankan sebentar saja, hentikan atau capture, apakah anda melihat angka yang urut dan
beraturan seperti harapan? (angka urut 100, 200, 300, 400 dst)
f. Jika tidak, kanapa?
Blink 5 Kali tanpa perintah delay
Ketikkan listing berikut ini, maka LED internal akan blink 3 kali dengan jeda 500ms. Mulai detik
ke 2.
h. Jalankan, apakah anda melihat LED internal blink sebanyak 3 kali, kemudian mati lagi
untuk seterusnya?
4.5 TUGAS
Buatlah BLINK 5 Kali dengan jeda 700ms dengan konsep seperti praktikum terakhir. Codingnya
dan Buat Flowcharnya.