0% menganggap dokumen ini bermanfaat (0 suara)
407 tayangan15 halaman

01-Simulator Rev2

Simulator Arduino bertujuan agar mahasiswa dapat mempelajari sistem mikroprosesor Arduino, memasang dan menjalankan simulator mikroprosesor, serta melakukan pemrograman sederhana pada simulator. Simulator ini memungkinkan pengguna untuk mengatur LED dan tombol serta memprogram logika dasar seperti LED berkedip, LED menyala saat tombol ditekan, dan mengendalikan dua LED dengan dua tombol.

Diunggah oleh

Reni Silvia Dewi
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
407 tayangan15 halaman

01-Simulator Rev2

Simulator Arduino bertujuan agar mahasiswa dapat mempelajari sistem mikroprosesor Arduino, memasang dan menjalankan simulator mikroprosesor, serta melakukan pemrograman sederhana pada simulator. Simulator ini memungkinkan pengguna untuk mengatur LED dan tombol serta memprogram logika dasar seperti LED berkedip, LED menyala saat tombol ditekan, dan mengendalikan dua LED dengan dua tombol.

Diunggah oleh

Reni Silvia Dewi
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 15

1 SIMULATOR ARDUINO

1.1 TUJUAN

Praktikum ini bertujuan agar mahasiswa dapat:

 Menjelaskan sistem mikroprosesor (Arduino)


 Memasang dan menjalankan simulator mikroprosesor
 Melakukan pemrograman sederhana pada simulator mikroprosesor

1.2 ALAT & BAHAN

No Item Banyak Keterangan

1 Komputer / laptop 1 Sebaiknya peserta membawa sendiri

2 Software UnoArduSim 1 Diunduh dari


https://www.sites.google.com/site/unoardusim/services

1.3 TUGAS AWAL

Unduhlah program UnoArduSim dari situsnya (pada modul ini digunakan versi 2.6.0). Pasanglah program
tersebut sebagai berikut:

1. Gunakan program File explorer sediaan Windows.


2. Buatlah folder untuk praktikum ini (misal di E:\LabTF2)
3. Salin file unduhan (UnoArduSimV2.6.0_fixed.zip) ke folder tersebut.
4. Klik kanan, lalu pilih menu “Extract All”.
5. Isikan tempat extract (di folder sendiri, hapus “UnoArduSimV2.6.0_fixed”), lalu klik tombol “Extract”.

Gambar 1 Tampilan ekstrak UnoArduSim

TF2016/Modul-1/1
Setelah langkah itu anda akan mendapatkan folder UnoArduSimV2.6. Jalankan program simulator dengan
langkah:

1. Masuklah ke folder UnoArduSimV2.6 tersebut.


2. Klik file “UnoArduSim.exe”.
3. Jika ada peringanat Windows, abaikan dan pilih “Run Anyway”
4. Pemasangan berhasil jika anda sudah mendapatkan tampilan berikut.

Gambar 2 Layar utama UnoArduSim V2.6

1.4 PRAKTIKUM

1.4.1 LED BLINGKING


Pada percobaan ini akan dilakukan pemrogram luaran digital Arduino untuk menyala/matikan suatu LED, dimana
spesifikasi program:

 LED terhubung ke pin 8


 Periode berkedip (blink) adalah 1 detik.

Untuk itu siapkan dulu simulatornya:

1. Pakailah blok LED


2. Isikan nomor port = 8
3. Pilih mode LED tersambung ke ground, sehingga LED ini normalnya akan padam (OFF), dan menyala
(ON) jika diberi sinyal HIGH
4. Pilih warna = R (red)

TF2016/Modul-1/2
Gambar 3 Pengaturan blok LED

Setelah itu lakukan pemrograman sebagai berikut:

1. Pilih menu “File – Save As”.


2. Beri nama file baru, yaitu “A01-led_blingking.ino”.
3. Pilih menu “File – Edit/View”, sehingga keluar layar baru untuk meng-edit program.

Gambar 4 Tampilan layar edit UnoArduSim V2.6

Arduino menggunakan Bahasa pemrograman C/C++ yang sudah disederhanakan. Pada layar sebelah kiri, kita
bisa meng-edit kode sumber. Di sebelahnya ada kolom berisi perintah-perintah dasar Arduino. Untuk latihan
pertama ini :

1. Hapus dulu kode sumber lama


2. Ketikkan kode sumber baru seperti nampak pada layar di atas.
3. Setelah selesai, klik tombol “Compile”. Jika ada kesalahan dalam kompilasi, betulkan dulu kesalahan
tersebut, lalu compile ulang.
4. Setelah kode sumber lengkap dan betul, tekan tombol “Save”
5. Klik tombol “Accept” untuk menutup layar Edit/View, dan kembali ke layar utama simulator.

Kini saatnya menjalankan simulator ini:

1. Pilih menu “Execute – Run” (atau tekan tombol F9).


2. Perhatikan layar tampilan pin Arduino (lihat mode I/O), maupun LED (akan menyala / mati).

TF2016/Modul-1/3
3. Untuk menghentikan jalannya program, pilih menu “Execute – Halt”.

Gambar 5 Tampilan eksekusi UnoArduSim V2.6

Salah satu keunggulan simulator untuk pembelajaran adalah, kita dapat menggunakan mode debug untuk
mengamati jalannya program, sehingga lebih memudahkan dalam memahami program tersebut. Mari kita coba:

1. Pilih menu “Execute – Reset”, agar mikroprosesor kembali ke kondisi awal mula.
2. Pilih menu “Execute – Step Into” (atau tekan tombol F4).
3. Perhatikan di panel kode sumber, nampak ada baris warna abu-abu yang menunjukkan perintah yang
sedang dijalankan.
4. Tekan kembali tombol F4, maka perintah berikutnya akan dijalankan.
5. Demikian seterusnya, kita dapat mengikuti jalannya program satu-satu dengan menekan tombol F4.

Gambar 6 Layar mode debug


TF2016/Modul-1/4
Selain menu File – Step into tersebut, terdapat juga fasilitas execute yang lain, yaitu:

 Step Into : laksanakan satu perintah, jika ada pemanggilan subrutin maka masuk ke subrutin tersebut.
 Step Over : laksanakan satu perintah, jika ada pemanggilan subrutin maka selesaikan saja tanpa masuk
ke subrutin tersebut.
 Step Into : laksanakan satu perintah, jika ada pemanggilan subrutin maka masuk ke subrutin tersebut.
 Step Out-of : jalan sampai keluar dari subrutin yang tengah berlangsung.
 Run To : gunakan mouse, klik suatu baris yang akan dituju. Tekan F7, maka program akan berjalan
sampai baris tersebut.

1.4.2 LED DAN PUSH BUTTON PULL-UP


Diinginkan sebuah LED menyala jika sebuah tombol (push button) ditekan. Spesifikasi program:

 LED terhubung ke pin 8.


 Tombol terhubung ke pin 3, dengan mode pull up.

Persiapan hardware adalah sebagai berikut:

1. Pilih blok LED


2. Isikan pin = 8; warna = R (red); mode koneksi ke ground
3. Pilih blok Push Button
4. Isikan pin = 3; mode koneksi normal HIGH (pull-up).

Gambar 7 Pengaturan blok LED dan Push Button mode pull-up

Berikut ini adalah kode sumber program. Perhatikan hal-hal yang baru:

 Penggunaan variabel
 Membaca masukan dari push button

Kode 1 LED dan Push Button

1 /* File : A02_led_push_button.ino

2 * Program : Push Button Pull-Up

3 * Deskripsi : mengendalikan LED dengan tombol

4 * Oleh : NIM / NAMA

5 */

TF2016/Modul-1/5
6
7 // konstanta pin LED pertama

8 // menggunakan direktif #define

9 #define PIN_LED1 8

10 #define PIN_BUTTON1 3

11
12 // subrutin persiapan, akan jalan sekali saja saat awal

13 void setup() {

14 // atur mode pin ke LED sebagai OUTPUT

15 pinMode(PIN_LED1, OUTPUT);

16
17 // atur mode pin ke LED sebagai INPUT

18 pinMode(PIN_BUTTON1, INPUT);

19 }

20
21 // sub rutin yang akan berjalan terus berulang-ulang

22 void loop() {

23 boolean input1; // variabel penerima masukan

24 input1 = digitalRead(PIN_BUTTON1); //baca push button

25 digitalWrite(PIN_LED1, input1); //outputkan ke LED

26 }
Ketik dan compile kode sumber tersebut seperti prosedur sebelumnya. Selanjutnya jalankan dan coba program
sebagai berikut:

1. Klik tombol (kotak hijau), dan tahan


2. Amati nyala LED
3. Lepas tombol
4. Amati nyala LED

1.4.3 LED DAN 2 PUSH BUTTON


Dengan menggunakan dua push button coba lakukan pengaturan sebagai berikut :

 LED terhubung ke pin 08 dan 09.


 Tombol 1 terhubung ke pin 03, dengan mode pull-up.
 Tombol 2 terhubung ke pin 02, dengan mode pull-up.

Pastikan simulator dalam keadaan STOP dengan memerhatikan ikon dalam keadaan abu-abu. Aturlah blok pada
simulator sebagai berikut :

TF2016/Modul-1/6
1. Pilihlah blok LED, isikan pin = 08; warna = B (blue); mode koneksi ke ground
2. Pilih blok lainnya, isikan pin = 09; warna = G (green); mode koneksi ke ground
3. Pilih blok Push Button, isikan pin = 03; mode koneksi normal HIGH (pull-up)
4. Pilih blok Push Button, isikan pin = 02; mode koneksi normal HIGH (pull-up)

Gambar 8 Simulator dalam keadaan STOP

Kode 2 Logika AND

1 /* File : A03_Dua_push_button.ino
2 * Program : Dua Push Button
3 * Deskripsi : Mengendalikan LED dengan operator
4 * Oleh : NIM / NAMA
5 */
6 // konstanta pin LED pertama dan kedua
7 // menggunakan direktif #define
8 #define PIN_LED1 8
9 #define PIN_LED2 9
10 #define PIN_BUTTON1 3
11 #define PIN_BUTTON2 2
12
13 // subrutin persiapan, akan jalan sekali saja saat awal
14 void setup() {
15 // atur mode pin ke LED sebagai OUTPUT
16 pinMode(PIN_LED1, OUTPUT);
17 pinMode(PIN_LED2, OUTPUT);
18
19 // atur mode pin ke LED sebagai INPUT
20 pinMode(PIN_BUTTON1, INPUT);
21 pinMode(PIN_BUTTON2, INPUT);
22 }
23
24 // sub rutin yang akan berjalan terus berulang-ulang
25 void loop() {
26 boolean input1; // variabel penerima masukan

TF2016/Modul-1/7
27 input1 = digitalRead(PIN_BUTTON1); //baca push button 1
28 boolean input2; // variabel penerima masukan
29 input2 = digitalRead(PIN_BUTTON2); //baca push button 2
30
31 boolean result; //menampung hasil logika
result = input1 && input2; //keadaan result bergantung hasil
32 operator (&&)
33 digitalWrite(PIN_LED1, result); //outputkan ke LED 1
digitalWrite(PIN_LED2, !result); //outputkan ke LED 2, negasi
34 result
35 }
Setelah selesai meng-edit kode sumber 3 ke simulator, coba jalankan dan amati nyala LED 1 dan 2. Kemudian :

1. Tekan tombol 3 dan 2 secara bergantian dan amati kedua LED


2. Untuk menahan tombol dalam keadaan “tekan” kamu bisa mengarahkan kursor ke kotak hijau
kemudian tekan dan tahan “spacebar” pada keyboard beberapa saat sehingga kotaknya berubah warna
menjadi lebih gelap.

Gambar 9 Tombol 02 dalam keadaan “lepas” dan tombol 03 dalam keadaan “tahan”

3. Kamu dapat mengamati hasil dari logikan AND (&&) pada nyala LED 1 dan 2. Untuk lebih jelas kamu
dapat memperhatikan tabel berikut :

Tabel 1 Logika AND (&&)

BUTTON1 BUTTON2 LED1 LED2


Lepas Lepas ON OFF
Tekan Lepas OFF ON
Lepas Tekan OFF ON
Tekan Tekan OFF ON

Dari tabel di atas kamu dapat mengetahui bahwa logika AND (&&) hanya akan bernilai true jika kedua keadaan
yang dibandingkan bernilai true. Dan keadaan setelah negasi (!) adalah kebalikan dari keadaan semua, ini dapat
kamu perhatikan pada nyala LED2 di mana keadaan LED2 merupakan negasi dari keadaan LED1.

1.4.4 LED RUNNING


Pada percobaan ini, diinginkan 4 buah LED menyala satu persatu dengan periode tertentu. Spesifikasi program:

 LED terhubung ke pin 4,5,6, dan 7.

TF2016/Modul-1/8
 LED menyala dari kiri ke kanan dengan periode 1 detik.

Pada simulator, siapkan hardware sebagai berikut:

1. Pilih blok LED 4 buah


2. Isikan nomor pin 04 (pin pertama, implisit akan mengambil 3 pin berikutnya juga)

Gambar 10 Blok LED 4 buah

Berikut adalah kode sumber untuk melaksanakan program tersebut. Perhatikan fitur baru:

 Penggunaan konstanta

Kode 3 LED berjalan dari kiri ke kanan

1 /* File : A04_led_running.ino
2 * Program : LED Running
3 * Deskripsi : menyalakan 4 LED dari kiri ke kanan
4 * Oleh : NIM / NAMA
5 */
6
7 // konstanta pin LED pertama
8 // menggunakan direktif #define
9 #Define PIN_LED 4
10
11 // subrutin persiapan, akan jalan sekali saja saat awal
12 void setup() {
13 // atur mode 4 pin ke LED sebagai OUTPUT
14 // perhatikan penggunaan konstanta PIN_LED untuk LED pertama
15 // kemudian ditambah angka untuk LED selanjutnya
16 pinMode(PIN_LED, OUTPUT);
17 pinMode(PIN_LED+1, OUTPUT);
18 pinMode(PIN_LED+2, OUTPUT);
19 pinMode(PIN_LED+3, OUTPUT);
20 }
21

TF2016/Modul-1/9
22 // sub rutin yang akan berjalan terus berulang-ulang
23 void loop() {
24 // nyala matikan LED pertama
25 digitalWrite(PIN_LED, HIGH);
26 delay(1000);
27 digitalWrite(PIN_LED, LOW);
28
29 // nyala matikan LED kedua
30 digitalWrite(PIN_LED+1, HIGH);
31 delay(1000);
32 digitalWrite(PIN_LED+1, LOW);
33
34 // nyala matikan LED ketiga
35 digitalWrite(PIN_LED+2, HIGH);
36 delay(1000);
37 digitalWrite(PIN_LED+2, LOW);
38
39 // nyala matikan LED keempat
40 digitalWrite(PIN_LED+3, High);
41 delay(1000);
42 digitalWrite(PIN_LED+3, LOW);
43
44 /* akan berulang kembali ke LED pertama
45 */
46
*) Kode di atas mengandung kesalahan, akan terlihat saat di-compile. Coba benarkan.

Ketikkan program tersebut dengan prosedur:

1. “Save As” dulu program lama, menjadi baru


2. Kelurakan layar “Edit/View”
3. Ketik kode sumber
4. “Compile” Pada kode sumber di atas ada kesalahan. Coba betulkan.
5. “Save”
6. “Accept”

Jalankan program tersebut, amati apakah keempat LED memang menyala seperti diinginkan.

TF2016/Modul-1/10
1.4.5 KONTROL PENGULANGAN
Pada percobaan sebelumnya telah dibuat program lampu berjalan sesuai kode 3. Program tersebut akan
berjalan dengan benar, namun dari latihannya dapat dirasakan bahwa selama menulis harus dilakukan salin-
tempel dan perubahan pada sedikit variabel. Akan tetapi, untuk mengontrol LED dengan jumlah yang banyak
misalnya 100 buah atau lebih, proses ini sangat tidak efektif dan efisien. Oleh karena itu digunakan kontrol
pengulangan yang memungkinkan satu blok perintah dilaksanakan berkali-kali sesuai kondisi tertentu.

Bahasa C menyediakan tiga jenis pengulangan yaitu FOR, WHILE dan DO-WHILE. Jika digunakan dengan tepat,
kode menjadi singkat dan jalannya program akan efisien.

Ada 4 hal yang harus diperhatikan dalam menulis pengulangan :

1. Apa variabel yang berubah (contoh pada percobaan LED Running, variabel nomor pin).
2. Berapa nilai awalnya (pada contoh dimulai dengan pin 4 ).
3. Berapa besar perubahannya (pada contoh adalah 1).
4. Berapa nilai akhirnya (pada contoh adalah PIN_LED = 7).

Kode 4 Program lampu berjalan dengan pengulangan

1 /* File : A05_led_pengulangan.ino
2 * Program : LED Running
3 * Deskripsi : menyalakan 4 LED dari kiri ke kanan dengan pengulangan
4 * Oleh : NIM / NAMA
5 */
6
7 // konstanta pin LED pertama
8 // menggunakan direktif #define
9 #define PIN_LED 4
10 #define PIN_LED3 7
11
12 // subrutin persiapan, akan jalan sekali saja saat awal
13 // contoh setup dengan pengulangan
14 void setup() {
15 for(int pin=PIN_LED; // variabel yg berubah, diberi nilai awal
16 pin <= PIN_LED3; // syarat terus, sesuai nilai akhir
17 pin++) // perubahan
18 {
19 pinMode(pin,OUTPUT); // bagian yang diulang
20 }
21 }
22
23 // sub rutin yang akan berjalan terus berulang-ulang
24 // nyala dari LED1 hingga LED4 dengan pengulangan
25 void loop(){

TF2016/Modul-1/11
26 // loop for, ditulis dalam 1 baris
27 for(int pin=PIN_LED; pin <= PIN_LED3; pin++) {
28 digitalWrite(pin,HIGH);
29 delay(1000);
30 digitalWrite(pin,LOW);
31 }
32 }
Pada contoh tersebut, yang perlu dipelajari adalah :

1. Perintah pengulangan for. Nampak bahwa perintah ini memiliki bagian kontrol dalam kurung () dan
bagian yang diulang dalam kurung {}. Bagian kontrol terdiri atas:
 Inisialisasi: dijalankan sekali saja di awal pengulangan pertama.
 Pemeriksaan: dijalankan di awal setiap pengulangan, jika berharga false maka pengulangan
berhenti.
 Perubahan dijalankan di akhir setiap pengulangan.
2. Bagian pemeriksaan biasanya memakai operator komparison (==, !=, <, >, <=, >=) dikombinasikan
dengan operator boolean (&&, ||, !). Kesalahan kecil yang fatal di sini adalah salah menulis operator
(==) menjadi operator (=).
3. Pengubahan memakai operator inkremen (i++). Hal ini sama saja dengan menulis i=(i+1), namun lebih
singkat dan efisien.

1.4.6 KONTROL SELEKSI


Dengan memanfaatkan kontrol seleksi kita dapat memrogram Arduino untuk mengambil keputusan
berdasarkan input yang kita berikan. Arduino mendukung 3 pernyataan untuk kontrol seleksi ini yaitu : IF,
IF…ELSE dan SWITCH. Sebagai contoh kita akan menggunakan pernyataan IF untuk melakukannya. Spesifikasi
program yang diperlukan :

• LED terhubung ke pin 4,5,6, dan 7


• LED menyala dari kiri ke kanan dengan periode 1 detik saat tombol ditekan
• LED mati saat tombol dilepas

Kode 5 Program lampu berjalan dengan kontol seleksi

1 /* File : A06_led_seleksi.ino
2 * Program : LED Running
3 * Deskripsi : menyalakan 4 LED dengan seleksi
4 * Oleh : NIM / NAMA
5 */
6
7
8 // konstanta pin LED pertama
9 // menggunakan direktif #define
10
11 #define PIN_BUTTON1 8

TF2016/Modul-1/12
12 #define PIN_LED 4
13 #define PIN_LED3 7
14
15 // subrutin persiapan, akan jalan sekali saja saat awal
16 // contoh setup dengan pengulangan
17
18 void setup(){
19 for(int pin=PIN_LED; // variabel yg berubah, diberi nilai awal
20 pin <= PIN_LED3; // syarat terus, sesuai nilai akhir
21 pin++) // perubahan
22 {
23 pinMode(pin,OUTPUT); // bagian yang diulang
24 }
25 pinMode(PIN_BUTTON1, INPUT);
26 }
27
28 void loop () {
29 boolean input1 = digitalRead(PIN_BUTTON1);
30 if (input1==HIGH){
31 for(int pin=PIN_LED; pin <= PIN_LED3; pin++) {
32 digitalWrite(pin,LOW);
33 }
34 }
35 if (input1==LOW){
36 for(int pin=PIN_LED; pin <= PIN_LED3; pin++) {
37 digitalWrite(pin,HIGH);
38 delay(1000);
39 digitalWrite(pin,LOW);
40 }
41
42 }
43 delay(100);
44
45 }
Berdasarkan kode 5, silahkan mengatur simulator sehingga diperoleh spesifikasi seperti yang diinginkan.

TF2016/Modul-1/13
1.5 TUGAS PRAKTIKUM

1.5.1 LED DAN PUSH BUTTON PULL-UP


 Ubahlah push button ke mode koneksi normal LOW (pull-down), jalankan kemudian lihatlah perbedaan
yang terjadi.

Gambar 11 Blok Push Button diatur ke mode pull-down

 Modifikasi kode A02 dengan baris berikut :

Kode 6 Push Button mode Pull-Down

1 ...

2
3 // sub rutin yang akan berjalan terus berulang-ulang

4 void loop() {

5 boolean input1; // variabel penerima masukan

6 input1 = digitalRead(PIN_BUTTON1); // baca push button

7 input1 = !input1; // negasikan input1

8 digitalWrite(PIN_LED1, input1); // outputkan ke LED


9 }

 Jalankan kembali program, coba tekan-tekan tombol dan amati keluaran LED.

1.5.2 LED DAN 2 PUSH BUTTON


Pada baris ke 32, ubahlah operator AND (&&) menjadi operator OR (||) dan output ke LED 1 merupakan
kebalikan dari result dan output ke LED 2 bersesuaian dengan keadaan di result sehingga, kamu dapat
melengkapilah tabel berikut ini dengan ON / OFF :

Tabel 2 Logika OR (||)

BUTTON1 BUTTON2 LED1 LED2


Lepas Lepas
Tekan Lepas
Lepas Tekan
Tekan Tekan

TF2016/Modul-1/14
1.5.3 LED RUNNING
Silahkan modifikasi kode 3 agar LED menyala dari kanan ke kiri dengan mengubah urutan LOW dan HIGH pada
LED.

1.5.4 KONTROL PENGULANGAN


Modifikasilah kode 4 sehingga LED menyala dari LED4 ke LED1 (terbalik arah dari contoh kode 5) dengan metode
pengulangan for, dan operator dekremen (–) untuk pengubahannya.

1.5.5 KONTROL SELEKSI


Modifikasi kode 5 sehingga diperoleh keadaan :

 Tombol “lepas” : LED menyala dari kiri ke kanan


 Tombol “tekan” : LED menyala dari kanan ke kiri

Kamu dapat memanfaatkan kode 4 dan kode 5 sebagai rujukan untuk membuat keadaan tersebut terjadi.

1.6 LAPORAN

Untuk praktikum ini belum perlu membuat laporan.

1.7 PUSTAKA

 Jazi Eko Istiyanto, Pengantar Elektronika & Instrumentasi, Pendekatan Project Arduino, 2014

TF2016/Modul-1/15

Anda mungkin juga menyukai