• Tidak ada hasil yang ditemukan

PANDUAN PRAKTIKUM DASAR ARDUINO

N/A
N/A
Protected

Academic year: 2021

Membagikan "PANDUAN PRAKTIKUM DASAR ARDUINO"

Copied!
12
0
0

Teks penuh

(1)

BBROBOTINDONESIA

PANDUAN PRAKTIKUM

DASAR ARDUINO

(2)

Praktikum 6

Belajar Arduino

Menggunakan IF-ELSE Statement Untuk Mengontrol Alur Program

Pada latihan dan praktikum arduino kita kali ini, kita akan mempelajari tentang penggunaan if-else statement. Pada praktikum sebelumnya, kita sudah sedikit bertemu dengan fungsi if ini, untuk mengontrol jalannya kode program kita. Kali ini, kita akan membahas sedikit lebih dalam tentang penggunaan if dan else statement ini untuk mengontrol jalannya alur sketch atau program kita.

Sekarang, saya akan sedikit memberikan contoh dari fungsi if-else. Perhatikan contoh pernyataan if berikut ini.

jika ( kondisi uang cukup) {

beli barang

}

Maksud dari pernyataan tersebut adalah, jika kondisi dalam kurung (uang cukup) terpenuhi, maka kode program di antara kurung kurawal { beli barang } akan di eksekusi. Sebaliknya, jika tidak terpenuhi, maka program akan mengabaikan kode dalam kurung kurawal tersebut, kemudian melanjutkan eksekusi ke baris program yang berikutnya.

kali ini, kita akan menggunakan sebuah potensiometer sebagai komponen input analog dan LED sebagai komponen output digital. Input dari sensor potensiometer ini, nantinya kita gunakan untuk mengontrol output LED agar menyala atau padam dengan jarak nilai input tertentu. Nah, untuk mengontrolnya itulah kita

menggunakan if-else statement dalam sketch kita. Untuk lebih jelasnya, kita langsung saja ke praktikumnya berikut ini. 

Komponen yang dibutuhkan

Arduino Uno 1x Protoboard 1x LED 5mm 1x Resistor 220Ohm 1x

(3)

Langkah-Langkah Praktikum

Rangkailah komponen-komponen praktikum seperti gambar di atas! Ikuti langkah-langkah berikut ini. 1.Hubungkan pin A0 dengan kaki Tengah Potensiometer menggunakan kabel jumper (warna hijau). 2. Hubungkan salah satu kaki potensimeter yang terluar (kita sebut kaki 1 Potensio) dengan pin 5v Arduino menggunakan kabel jumper (warna merah).

3. Hubungkan Kaki 2 Potensiometer dengan pin Gnd Arduino menggunakan kabel jumper (warna coklat). 4. Hubungkan pin 13 Arduino dengan kaki + LED menggunakan kabel jumper (warna kuning).

5. Hubungkan kaki - LED dengan salah satu kaki Resistor 220 Ohm.

6. Hubungkan kaki Resistor lainnya dengan pin Gnd Arduino menggunakan kabel jumper (warna hitam) 7. Pasangkan board Arduino dengan port USB komputer menggunakan kabel USB.

(4)

const int pinnyaPotensio = A0; const int pinnyaLED = 13; const int batasNilai = 500; void setup()

{

pinMode(pinnyaLED, OUTPUT); Serial.begin(9600);

}

void loop() {

int nilaiPotensio = analogRead(pinnyaPotensio); //awal dari if-else statement

if (nilaiPotensio > batasNilai) {

digitalWrite(pinnyaLED, HIGH); }

else {

digitalWrite(pinnyaLED,LOW); }

//akhir dari if-else statement

Serial.println(nilaiPotensio); delay(1);

}

8. Jika sudah, compile menggunakan tombol "verify" , cek apakah ada kesalahan pengetikan sketch. Jika masih ada error coba di perbaiki lagi, mungkin ada kesalahan pengetikan.

9. Buka jendela serial Monitor caranya, pilih Tools > Serial Monitor.

10. Upload ke Board Arduino menggunakan tombol "Upload" atau melalui File > Upload.

Sekarang, cobalah putar-putar knop potensiometer Anda. Jika program yang diupload benar dan tidak ada kesalahan dalam pemasangan rangkaian elektronikanya, maka LED pada pin 13 akan menyala saat nilai analog dari potensiometer pada jendela serial monitor menunjukkan angka lebih besar dari 500 (ingat range input analog nilainya dari 0 sampai 1023). Dan sebaliknya, jika nilai analog dari potensiometer lebih kecil dari 500, maka LED padam.

(5)

Diskusi Rangkaian Elektronika

Jika Anda ingat dari pelajaran sebelumnya, potensiometer adalah resistor variable yang dapat digunakan sebagai pembagi tegangan. Pada satu kaki potensiometer kita memiliki tegangan 5 volt dari board Arduino dan satu kaki lagi terhubung dengan 0 volt / Gnd. Ketika kita memutar knop pada potensiometer, voltase pada kaki tengah potensiometer ini akan berubah sesuai dengan putaran knop tersebut. Semakin besar resistansinya maka voltase akan berkurang dan sebaliknya. Perubahan resistansi inilah yang kita manfaatkan sehingga nilai dari input analog dapat berubah-ubah sesuai dengan perubahan resistansi potensiometer tersebut.

Diskusi Sketch

Seperti pada praktikum sebelumnya, kali ini kita akan bahas tentang kode program yang telah kita buat sebelumnya. Pada pembahasan ini, kita membagi pula kode-kode program kita menjadi tiga bagian. Perhatikan kembali sketch yang tadinya sudah kita ketikkan tersebut.

//Blok Deklarasi dan Inisialisasi Variable const int pinnyaPotensio = A0; const int pinnyaLED = 13; const int batasNilai = 500; //Blok Set Up

void setup() {

pinMode(pinnyaLED, OUTPUT); Serial.begin(9600);

}

//Blok loop void loop() {

int nilaiPotensio = analogRead(pinnyaPotensio); //awal dari if-else statement

if (nilaiPotensio > batasNilai) {

digitalWrite(pinnyaLED, HIGH); }

else {

digitalWrite(pinnyaLED,LOW); }

//akhir dari if-else statement

Serial.println(nilaiPotensio); delay(1);

(6)

Konsep dasar dari sketch ini adalah mengukur tegangan pada pin analog. Dimana, pin analog ini akan berubah tegangannya sesuai dengan putaran knop Potensiometer. Kemudian, kita memberikan ambang batas

tegangan pada kisaran tertentu. dalam praktikum ini yaitu, nilai pin analog > 500. ( ingat, analog ini memiliki kisaran nilai antara 0 sampai 1023 ). Ketika pin analog memiliki nilai > 500, maka LED pada pin 13 kita

nyalakan, dan ketika < 500 kita padamkan.

Program ini mungkin terlihat agak panjang dibandingkan program-program praktikum sebelumnya. Salah satu cara yang saya gunakan untuk memahami sketch yang panjang adalah membaginya menjadi bagian-bagian atau blok. Sehingga, kita bisa fokus untuk memahami tiap blok tersebut dan hubungannya dengan blok-blok sketch yang lainnya.

Baiklah, kita bahas dan diskusikan sketch di atas. Sketch di atas kita bagi menjadi bagian-bagian atau blok-blok. bagian pertama yaitu bagian Deklarasi dan Inisialisasi Variable, bagian kedua yaitu Routine setup(), dan Bagian ketiga yaitu Routine loop(). Mari kita mulai pembahasan pada blok pertama dari sketch kita berikut ini.

BLOK PERTAMA

Blok pertama ini, kita isi dengan deklarasi dan inisialisasi variable-variable yang kita butuhkan. Perhatikan kode-kode deklarasinya berikut ini.

const int pinnyaPotensio = A0 ; const int pinnyaLED = 13; const int batasNilai = 500 ;

Hmm.. ada apa ini?! mengapa semua variable di atas memiliki const di depannya?! – Tenang, sekarang kita bahas apa maksud dari const tersebut. Keyword const ini, adalah singkatan dari constanta. Sebuah konstanta, digunanakan sebagai sebuah qualifier untuk mengunci nilai dari variable agar nilainya tidak berubah-ubah. Variable ini tidak bisa diubah nilainya oleh alur program.

Mengapa kita menggunakan konstanta ?! -- Pada saat mengetikkan atau memperbaiki sketch, kemungkinan kita lupa dan tidak sengaja mengetikkan nilai baru pada variable di tengah-tengah proses pengetikan sketch. Hal ini, sering kali terjadi. Jadi, saya sarankan untuk menggunakan konstanta ketika kita membuat variable yang nilainya tidak ingin kita ubah-ubah.

Pada kode program tersebut, kita mendeklarasikan dan menginisialisasikan tiga buah variable. Variable pertama yaitu, variable yang kita beri nama “pinnyaPotensio”. Sesuai dengan namanya, variable ini digunakan untuk menyimpan nilai dari pin Arduino yang kita hubungkan ke Potensiometer—dan dalam praktikum ini yaitu pin A0.

Selanjutnya, untuk variable kedua, kita memberikan nama “pinnyaLED”. Variable ini kita gunakan untuk menginisialisasikan pin 13 Arduino yang kita hubungkan ke LED kita.

Sedangkan variable yang ketiga yaitu variable “batasNilai”. Variable inilah yang kita gunakan untuk

menyimpan nilai ambang batas untuk mengatur besaran nilai — kapan LED padam dan kapan LED menyala. Baiklah, setelah kita sudah beres dengan deklarasi dan inisialisasi variable. Sekarang, kita lanjutkan ke blok program yang selanjutnya, yaitu routine setup().

(7)

BLOK KEDUA

Blok kedua kita kali ini, yaitu routine setup(). Pada routine ini, kita mengatur mode untuk pin led menjadi output dan mengatur baud rate komunikasi serial. Berikut ini kode pada routine ini.

void setup ( ) {

pinMode ( lednyaPin , OUTPUT ) ;

Serial.begin ( 9600 ) ;

}

Kita sudah familiar dengan kode-kode program di atas. Hanya saja, jika Anda perhatikan di sini, kita hanya mengatur mode untuk “lednyaPin” menjadi OUTPUT. Tetapi, mengapa kita tidak mengatur mode untuk “pinnyaPotensio”?! Bukankah harusnya kita mengatur modenya menjadi INPUT?!

Semoga Anda masih ingat, pada praktikum yang telah lewat saya pernah sampaikan bahwa semua pin Arduino pada dasarnya telah terseting secara default sebagai INPUT, Sehingga kita tidak perlu lagi mengatur mode untuk pin A0 ( analog pin yang kita hubungkan ke potensiometer ) sebagai INPUT. Jika Anda tetap ingin mengatur modenya, silahkan saja, hasilnya akan sama saja.. 

Kode program selanjutnya pada blok ini, yaitu kode program untuk komunikasi serial. Kode yang kita gunakan, sama dengan kode komunikasi serial seperti praktikum-praktikum sebelumnya yaitu, fungsi begin ( ) dari library serial dengan baud rate 9600.

Baiklah, sekarang kita sudah mengatur mode penggunaan pin dan baudrate komunikasi serial kita. Tentu Anda sudah paham apa yang kita lakukan pada routine ini. Karna kita sudah pernah melakukan hal yang sama pada praktikum-praktikum kita sebelumnya.

Oke, untuk mempersingkat waktu, kita lanjutkan kembali pembahasan kita ke blok program kita yang selanjutnya. Berikut ini blok program kita yang ketiga.

BLOK KETIGA

Blok ketiga kita kali ini, seperti biasa, kita isi dengan routine loop ( ). Berikut ini adalah sketch yang kita punya pada routine loop kita kali ini.

void loop() {

int nilaiPotensio = analogRead(pinnyaPotensio); //awal dari if-else statement

if (nilaiPotensio > batasNilai) {

digitalWrite(pinnyaLED, HIGH); }

else {

(8)

}

//akhir dari if-else statement

Serial.println(nilaiPotensio); delay(1);

}

Kode program pada routine loop() kita kali ini, kita awali dengan sebuah kode program untuk membaca nilai yang masuk dari potensiometer kita. Berikut ini kode sketch tersebut.

int nilaiPotensio = analogRead ( pinnyaPotensio ) ;

Di sini, kita menggunakan fungsi analogRead ( ) untuk membaca nilai yang masuk dari pin potensiometer kita (pin A0). Ingat kembali, bahwa analogRead ( ) akan membaca nilai antara 0 sampai 1023. Nilai ini akan berubah ketika kita memutar knop potensiometer pada protoboard. Jadi, baris kode ini berfungsi untuk memeriksa putaran potensiometer kemudian menyimpan nilainya pada variable " nilaiPotensio ".

Nah, kode program berikutnya adalah kode program utama yang kita bahas untuk praktikum kali ini. Berikut ini adalah penggunaan dari pernyataan if-else statement.

if ( nilaiPotensio > batasNilai ) {

// nyalakan LED

digitalWrite ( pinnyaLED , HIGH ) ; }

else {

// Padamkan LED

digitalWrite ( pinnyaLED , LOW ) ; }

Hal yang kita lakukan pada kode program di atas adalah, membandingkan nilai potensiometer yang telah disimpan oleh variable " nilaiPotensio " dengan nilai batas yang telah kita tentukan, dalam hal ini yaitu nilai dari variable " batasNilai ".

Jika pada praktikum sebelumnya kita pernah menggunakan if-statement. Maka sekarang, kita menambahkan dengan satu statement lagi yaitu else-statement. Else Statement ini, adalah pasangan dariif statement. Jadi, jika kondisi pada if statement tidak terpenuhi, maka else statement inilah yang akan menjadi rencana cadangannya. 

if-statement akan memeriksa kondisi yang ada di dalam kurung buka dan kurung tutup setelahnya. Jika kondisi didalam kurung terpenuhi atau benar (TRUE) , maka kode program yang ada diantara kurung kurawal buka dan kurung kurawal tutup pada if-statement ini akan di eksekusi – Sebaliknya, jika tidak terpenuhi atau salah (FALSE), maka program akan dilanjutkan ke ' else-statement '. Untuk lebih jelasnya, perhatikan analogi program berikut ini.

(9)

if

( Jeruk Masih Segar )

{

Masukkan ke Keranjang;

}

Else

{

Buang ke Tempat Sampah;

}

Kita dapat melihat pada ilustrasi di atas bahwa else-statement ,memberikan kita kontrol atau rencana cadangan atas apa yang harus dilakukan ketika kondisi pada if-statement tidak terpenuhi.

Kembali ke pembahasan kode programnya. Kondisi yang di cek pada if-statement kali ini, yaitu kode yang ada di dalam kurung buka dan kurung tutup setelah kalimat if. Berikut ini kondisi yang kita periksa pada if

statement kita kali ini.

(nilaiPotensio > batasNilai)

Jika kondisi ini terpenuhi atau BENAR, maka kode program pada kurung kurawal if akan dieksekusi. Dan dalam praktikum ini yang kita lakukan adalah menyalakan LED dengan menggunakan fungsi digitalWrite ( ) .

Perhatikan kode programnya berikut ini!

if ( nilaiPotensio > batasNilai ) {

digitalWrite ( pinnyaLED , HIGH ) ; }

Jika kondisi di atas tidak terpenuhi atau SALAH, maka yang akan dieksekusi adalah kode program berikutnya. Inilah kode program yang akan dieksekusi jika statement if sebelumnya tidak terpenuhi. Kode ini, kita sebut sebagai else statement.

(10)

else {

digitalWrite ( ledPin , LOW ) ; }

Pada else statement di atas, kode program yang kita gunakan di dalam kurung kurawalnya yaitu, digitalWrite ( ledPin , LOW ) ;. Seperti yang telah kita pahami bersama, fungsi ini kita gunakan untuk membuat LED pada pin 13 kita padam.

Untuk sedikit tambahan materi, mari kita melakukan review singkat operator-operator perbandingan : Kondisi yang kita akan cek pada if-else statement kita kali ini yaitu menggunakan apa yang disebut Operator Perbandingan. Referensi dari website resmi Arduino adalah sebagai berikut,

== ( Sama dengan ) ! = ( Tidak sama dengan ) < ( Kurang dari )

> ( Lebih besar dari )

< = ( Kurang dari atau sama dengan ) > = ( Lebih besar dari atau sama dengan )

Dengan operator-operator perbandingan ini, kita dapat membuat pilihan kondisi yang lebih banyak. Sesekali, cobalah untuk mencoba mengganti kondisi pada if statement yang Anda gunakan.

Baiklah, kita kembali ke baris program pada blok ketiga ini. Setelah if-else statement beres kita bahas, kita lanjutkan dengan melihat nilai analog yang dihasilkan oleh potensiometer, di layar komputer kita. Untuk melihat perubahan nilai potensiometer pada praktikum ini, kita menggunakan kode program dari library serial seperti pada praktikum-praktikum yang menggunakan komunikasi serial sebelumnya. Berikut inilah kodenya.

Serial.println ( nilaiPotensio ) ;

Baris kode di atas ini, menggunakan fungsi println ( ) dari library serial. Inilah yang mengirimkan nilai dari Arduino ke komputer kita. Putar potensiometer! -- maka kita akan melihat nilai akan berubah-ubah pada jendela Serial Monitor di komputer kita.

Selanjutnya, sampailah kita pada kode yang terakhir di routine loop ini, yaitu:

delay ( 1 ) ;

Fungsi ini kita gunakan untuk menunda atau men-delay program beberapa saat agar sketch dapat dieksekusi dengan sempurna dan stabil, sehingga data dapat kita baca dengan baik pada jendela serial monitor IDE Arduino kita.

Akhirnya, sekarang kita sudah dapat memahami, bagaimana if-else statement dapat sangat berguna untuk mengontrol program kita. -- Pada materi pelajaran kita selanjutnya if-else statement ini akan sangat sering kita jumpai. Jadi, pastikan Anda sudah memahaminya pada praktikum ini.

Demikian untuk praktikum kita kali ini. Selamat berlatih dan sampai jumpa pada praktikum-praktikum Arduino kita berikutnya.. 

(11)

Latihan Mandiri

Untuk latihan mandiri kali ini coba beberapa hal berikut!

1. Ganti nilai dari int batasNilai dan ubahlah operator pembandingnya, jelaskan bagaimana hasilnya! 2. Buat sketch agar LED menyala jika batasNilai lebih kecil dari 100 dan lebih besar dari 800. Jika nilai ada di antara 100 dan 800, padamkan LED!

(12)

Referensi

Dokumen terkait

Apabila tdk belajar/tdk melatih fungsi--fungsinya fungsinya (terutama intelektual) kemampuan cenderung (terutama intelektual) kemampuan cenderung tdk berkembang sampai usia 40

✎ [Tergantung pada modelnya] Jika Anda memilih atau memutar media dari perangkat dengan fungsi home theater, Speaker HT akan terhubung secara otomatis.. Pastikan untuk

Ini adalah fungsi yang dapat Anda gunakan untuk program yang sedang Anda tonton atau ingin ditonton, juga memundurkan program yang sedang Anda tonton dalam waktu nyata. Langsung

b) Kelas S2 (cukup sesuai). Lahan mempunyai pembatas yang cukup besar untuk mempertahankan tingkat pengelolaan yang harus diterapkan. Pembatas akan mengurangi produksi

Tahap membaca kalimat merupakan tahap paling matang dari keterampilan membaca ini. Anak sudah menguasai banyak kosa kata dan dapat merangkainya menjadi kalimat.

Hasil penelitian menujukkan bahwa, pola distribusi pupuk bersubsidi yang ada di Kabupaten Klungkung saat ini, dimana pola distribusi ini terdiri atas 9 (sembilan) kios

Setiap melakukan evaluasi yang selalu melekat adalah &#34;nilai.&#34; Ketika kita mengevaluasi, apa yang kita lakukan terlibat dalam beberapa proses yang dirancang

Simpangan baku(S) adalah nilai yang menunjukan tingkat variasi kelompok data atau ukuran standar penyimpangan dari nilai rata-ratanya... X = nilai rata-rata data n = jumlah data