Anda di halaman 1dari 6

PRAKTIKUM 4

MULTITASKING (Kasus Blink Without Delay)


4.1 Tujuan Istruksional Umum
1. Mahasiswa memahami konsep input pushbutton dan coding lanjutan
2. Mahasiswa memahami konsep BLINK without delay.
3. Mahasiswa memahami konsep dan algoritma Multitasking.
4. Mahasiswa memahami Coding Algoritma.

4.2 Tujuan Instruksional Khusus


1. Mahasiswa lebih memahami konsep breadboard, pushbutton dan if tanpa tanda operator ==.
2. Mahasiswa mampu Memahami konsep pewaktuan.
3. Mahasiswa mampu menggunakan perintah millils untuk membuat multitasking.
4. Pemantapan fungsi switch, pemsangan dan pemrograman.

4.3 DASAR TEORI


4.3.1 PUSHBUTTON
Pushbutton adalah rangkaian elektronik yang dapat menyambung dan memutus arus listrik
dengan cara menekan dan melepaskannya. Berikut ini adalah gambar Pushbutton yang harus
disambungkan agar dapat bekerja sesuai keinginan.

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.

4.3.3 Coding if()


Perhatikan coding ini.

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.

4.4 LANGKAH PERCOBAAN


4.4.1 Input arduino. Pushbutton.
Rangkailah rangkaian berikut dengan rapi. Gunakan Pushbutton yang besar dan letakkan tepat
di tengah breadboard agar dapat tertancap kokoh. Karen bagian bawah pushbutton ada tonjolan yang
jika tidak tepat ditengah bisa membuat pushbutton tidak tertancap sempurna.

Gb. 18. Skema rangkaian input arduino dengan pushbutton


Gb. 19. Gambar pemasangan rangkaian pada breadboard dan arduino

a. Ketikkan coding berikut ini

void setup() {
pinMode(13,OUTPUT);
pinMode(7,INPUT);
}

void loop() {
int data;
data=digitalRead(7);
digitalWrite(13,data);
}

b. Upload dan perhatikan.


c. Apakah nyala LED internal sebelum ditekan?
d. Apakah nyala LED internal setelah ditekan?
e. Dalam bahasa C, lambang tanda seru !, artinya NOT.
f. Tuliskan coding untuk membuat agar saat ditekan led menyala, dan saat dilepas LED
Padam. Tapi tanpa menggunakan perintah if().

Berikutnya, rangkaian pushbutton tidak usah dilepas.


4.4.2 LED External.
Rangkailah dengan rapi dua buah led external seperti di bawah ini. Led tersambung ke PIN 12
dan 11.

Gb. 20. Pushbutton dengan dua LED external

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

Mengukur kemampuan kecepatan perhitungan arduino dan kecepatan mengirim ke serial


hinggal menampilkannya. millis() akan mengambil data tiap milidetik. Jadi jika dijalankan, mestinya
anda akan melihat tampilan 1, 2, 3, 4 dst yang artinya 1ms, 2ms , 3ms dan seterusnya (dst).

a. Tuliskan coding berikut ini

b. Jalankan sebentar saja, hentikan atau capture, apakah anda melihat angka yang urut dan
beraturan seperti harapan?
c. Jika tidak, kanapa?

Memperlambat perhitungan agar dapat dilihat

Perintah millis() terlalu cepat untuk ditampilkan. Kita akan memperlambatnya dengan
menambah delay.

d. Tuliskan coding berikut ini

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.

g. Tuliskan coding berikut ini

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.

Anda mungkin juga menyukai