BBROBOTINDONESIA
PANDUAN PRAKTIKUM DASAR ARDUINO
www.BELAJARBIKINROBOT.WEEBLY.com
Praktikum 9 Belajar Arduino Switch Case Statement Pada praktikum sebelumnya, kita telah mempelajari cara mengontrol program baik menggunakan For Loop, If –else, dan Array serta kombinasinya. Kali ini kita akan mengenal teknik pengontrolan program yang lain dari sebelumnya dan teknik ini disebut switch - case statement. Mungkin gambaran berikut bisa membantu untuk lebih memahami apa yang kita akan pelajari. Bayangkan ketika kita menanyakan sesuatu kepada orang yang berkunjung ke rumah kita. Jika kita menawarkan dengan bertanya “ mau minum apa? “ maka kemungkinan jawabannya adalah “Jangan repot-repot” atau “apa saja boleh”. Namun, lain halnya jika kita menanyakan dengan memberikan pilihan. Contohnya , “ mau minum kopi, teh, atau jus lemon?”. Cara ini akan lebih baik diterima oleh tamu tanpa ragu untuk memilih yang disukai dari opsi yang kita berikan. Right! Nah, dalam programming, cara yang kedua ini seringkali digunakan – cara inilah yang disebut dengan switch case statement. Untuk lebih mempermudah pemahamannya, kita langsung saja mempraktikkannya. Let’s go!
Komponen yang dibutuhkan
Arduino Uno 1x
Protoboard 1x
Langkah-Langkah Praktikum
Potensiometer 10Kohm 1x
Kabel Jumper 3x
1. Hubungkan Kaki 1 Potensiometer denaan pin 5 volt Arduino menggunakan kabel jumper (warna merah). 2. Hubungkan Kaki Tengah Potensiometer dengan pin A0 Arduino menggunakan kabel jumper (warna kuning). 3. Hubungkan Kaki 2 Potensiometer dengan pin Gnd Arduino menggunakan kabel jumper (warna hitam). 4. Pasangkan board Arduino dengan port USB komputer menggunakan kabel USB. 5. Bukalah IDE Arduino kemudian ketikkan sketch berikut.
const int PotensioMin = 0; const int PotensioMax = 1023; void setup() { Serial.begin(9600); } void loop() { int bacaanPotensio = analogRead(A0); int range = map(bacaanPotensio, potensioMin, potensioMax, 0, 3); switch (range) { case 0: Serial.println("level 1"); break; case 1: Serial.println("level 2"); break; case 2: Serial.println("level 3"); break; case 3: Serial.println("level 4"); break; } delay(1); } 6. Jika sudah, compile menggunakan tombol "verify" , cek apakah ada kesalahan pengetikan sketch. Jika masih ada error coba di perbaiki lagi, mungkin ada salah ketik. 7. Upload ke Board Arduino menggunakan tombol "Upload" atau melalui File > Upload. Jika prosesnya benar, cobalah putar potensiometer perhatikan hasilnya pada IDE arduino yaitu jendela komunikasi serial caranya, pilih Tools > Serial Monitor.
Ketika kita memutar potensiometer kita, maka tampilan pada serial monitor akan menunjukkan level-level, mulai dari level 1 sampai level 4 sesuai dengan jarak-jarak nilai yang telah kita tentukan melalui variable “range”.
Diskusi Sketch Baiklah, sekarang kita akan membahas program atau sketch yang telah kita ketikkan di atas. Seperti pada praktikum yang sebelumnya, kode-kode program tersebut kita bagi menjadi beberapa blok program sebagai berikut.
BLOK PERTAMA Seperti biasa, pada bagian awal program kali ini, kita mendeklarasikan dan menginisialisasikan variable yang akan kita gunakan di dalam program kita. Berikut ini adalah kodenya. const int PotensioMin = 0; const int PotensioMax = 1023; Pada kode ini, kita mendeklarasikan 2 buah variable. Variable yang pertama kita berinama “PotensioMin”, yang fungsinya untuk menunjukkan nilai awal dari potensiometer yaitu 0. Sedangkan, variable kedua yang kita berinama “PotensioMax”, menunjukkan nilai maksimum dari input potensiometer yaitu 1023. (ingat bahwa input analog akan bernilai antara 0 sampai 1023). Saya yakin, Anda sudah familiar dengan metode deklarasi variable di atas pada praktikum-praktikum sebelumnya. Jadi, kita lanjutkan pembahasan kita ke bagian yang selanjutnya yaitu routine setup().
BLOK KEDUA Block program yang kedua yaitu routine setup(). Pada routine ini, Satu-satunya yang kita lakukan adalah mensetup komunikasi serial antara Arduino dengan Komputer—dan untuk itu, kita menggunakan fungsi begin() dari library serial, yang kita gunakan untuk membaca hasil inputan dari potensiometer pada layar serial monitor kita. Berikut ini adalah kode sketchnya. void setup() { Serial.begin(9600); } Dengan kode ini, maka nantinya hasil bacaan dari potensiometer dapat ditampilkan pada layar serial monitor IDE Arduino kita. Saya rasa Anda sudah paham, karna sebelumnya kita sudah pernah menggunakan kode ini pada praktikum komunikasi serial.
BLOK KETIGA Berlanjut ke kode yang berikutnya yaitu, routine loop(). Pada routine ini, kita mengecek kondisi dari potensiometer, kemudian menyimpan nilainya pada sebuah variable yang kita beri nama “bacaanPotensio”.
int bacaanPotensio = analogRead(A0); fungsi analogRead() ini, kita gunakan untuk membaca nilai dari pin A0 yang telah kita hubungkan ke potensiometer. Hasil bacaan inilah yang kemudian disimpan nilainya dalam variable “bacaanPotensio”. Kemudian, pada kode program berikutnya, kita memetakan jarak nilai dari analogRead() yang sebelumnya kita simpan nilainya dalam variable “bacaanPotensio”. Ingat, nilai dari input analog pada Arduino akan menghasilkan nilai bacaan dari 0 sampai 1023. Range atau jarak dari 0 sampai 1023 ini, kemudian kita petakan menjadi 4 bagian -- yaitu 0, 1, 2, dan 3. Berikut ini adalah kode untuk pemetaan tersebut. int range = map(bacaanPotensio, potensioMin, potensioMax, 0, 3);
Dengan memetakan jarak nilai dari 0 sampai 1023 menjadi 4 bagian dan kemudian menyimpan nilai pemetaan tersebut kedalam sebuah variable yang kita beri nama “range”, akan mempermudah kita untuk menggunakannya pada switch case statement kita. Perhatikan kembali, switch case statement yang telah kita buat berikut ini, switch (range) { case 0: Serial.println("level 1"); break; case 1: Serial.println("level 2"); break; case 2: Serial.println("level 3"); break; case 3: Serial.println("level 4"); break; } Kita dapat lihat di sini, dimana kita mengetes nilai dari masukan potensiometer menjadi 4 bagian dan kemudian menyimpan nilai bacaan potensiometer tersebut kedalam sebuah variable yang kita beri nama “range”. Dengan metode ini, sekarang kita bisa melihat hasil bacaan tersebut pada jendela serial monitor kita. Ketika nilai inputan potensiometer bernilai antara 0 256 maka, hasil bacaannya pada serial monitor di komputer
kita adalah “level 1”. Selanjutnya, ketika nilainya antara 257 512 maka, hasil bacaannya adalah “level 2”. Dan seterusnya (sampai level 4). Sekarang, saya harap Anda sudah bisa paham bagaimana switch case statement dapat digunakan dalam mengontrol alur program Anda. Baiklah, seluruh kode pada switch case statement ini telah kita bahas. Sekarang, kita tinggal melanjutkan satu kode program lagi yang belum di eksekusi. Kode program itu adalah, delay(); Anda sudah paham penggunaan kode ini bukan?! -- Ya, kode program yang terakhir ini, kita gunakan sekedar agar program stabil saat mengeksekusi komunikasi serial dengan komputer. Tapi hal ini sangat penting, jika kita tidak menggunakan fungsi ini, terkadang hasil bacaan pada serial monitor tampil tidak karuan. :D Akhirnya, selesai sudah seluruh kode program pada praktikum ini kita bahas. Selanjutnya, selamat berkarya! :D
Latihan Mandiri Untuk latihan mandiri kali ini, cobalah kerjakan tugas berikut ini! 1. Tambahkan jumlah pemetaannya menjadi 10 bagian. Dan buat case menjadi 10 level.
www.BELAJARBIKINROBOT.WEEBLY.com