PANDUAN PRAKTIKUM DASAR ARDUINO - BB Robot...

10
BBROBOTINDONESIA PANDUAN PRAKTIKUM DASAR ARDUINO www.BELAJARBIKINROBOT.WEEBLY.com

Transcript of PANDUAN PRAKTIKUM DASAR ARDUINO - BB Robot...

BBROBOTINDONESIA

PANDUAN PRAKTIKUM

DASAR ARDUINO

www.BELAJARBIKINROBOT.WEEBLY.com

Praktikum 5 Belajar Arduino Meredupkan dan Menerangkan LED menggunakan PWM dan

analogWrite()

Pada praktikum kali ini, kita akan belajar menggunakan analogWrite() untuk meredupkan atau menerangkan output nyala dari sebuah LED. Sebelumnya, kita sudah mempelajari bagaimana menggunakan analogRead() untuk membaca input analog. Pertanyaannya sekarang adalah -- “apakah bisa menggunakan analog sebagai output?!”. Jawabannya adalah, “bisa!” namun dengan sedikit trik yang berbeda. Untuk itulah, praktikum kali ini akan menjelaskan kepada Anda bagaimana cara kita melakukannya. Untuk melakukannya, kita menggunakan pin-pin digital khusus yang ada pada arduino. Meskipun ini adalah pin digital, namun pin ini bisa digunakan “seakan-akan” pin ini merupakan pin analog.

Ada beberapa pin pada pin-pin Arduino yang memiliki label seperti ini ~ coba lihat board arduino Anda. Pin yang memiliki tanda ini adalah pin PWM (pin 3, pin 5, pin 6, pin 9, pin 10, dan pin 11). PWM ini adalah metode untuk mengubah pulsa digital "seakan-akan" menjadi pulsa analog. Berbeda dari input analog yang menghasilkan nilai antara 0 sampai 1023, nilai keluaran dari PWM ini yaitu bernilai dengan rentang dari 0 sampai 255. Pada praktikum ini, kita tidak membahas lebih dalam bagaimana cara kerja PWM secara teoritis. Kita hanya akan mempraktekkan bagaimana cara menggunakannya. Untuk Anda yang membutuhkan penjelasan lebih lanjut tentang PWM boleh berkunjung ke situs www.arduino.cc.. Okelah, tanpa perlu berlama-lama, kita langsung saja ke praktikumnya berikut ini.

Komponen yang dibutuhkan

Arduino Uno 1x Protoboard 1x

LED 5mm 1x

Resistor 220Ohm 1x

Kabel Jumper 2x

Langkah-Langkah Praktikum

Rangkailah komponen praktikum seperti gambar di atas! Berikut ini langkah-langkahnya. 1.Hubungkan Kaki + LED dengan pin 9 Arduino menggunakan kabel jumper (warna kuning). 2. Hubungkan Kaki - LED dengan salah satu kaki Resistor kita sebut saja kaki 1 Resistor. 3. Hubungkan Kaki Resistor lainnya/ Kaki 2 Resistor 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.

int led = 9; int brightness = 0; int fadeAmount = 5; void setup() { pinMode(led, OUTPUT); } void loop() { analogWrite(led, brightness); brightness = brightness + fadeAmount;

if (brightness == 0 || brightness == 255) { fadeAmount = -fadeAmount ; } delay(30); }

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 program yang diupload benar dan tidak ada kesalahan dalam pemasangan rangkaian elektronikanya, maka LED akan menyala secara perlahan dari gelap, kemudian secara perlahan menjadi terang. Kemudian, kembali lagi dari terang, secara perlahan mejadi gelap. Demikian seterusnya.

Diskusi Sketch

Sekarang, kita akan mencoba membahas program yang telah kita buat di atas. Berikut ini adalah sketch program yang telah kita ketikkan, coba kita perhatikan kembali! int led = 9; int brightness = 0; int fadeAmount = 5; void setup() { pinMode(led, OUTPUT); } void loop() { analogWrite(led, brightness); brightness = brightness + fadeAmount; if (brightness == 0 || brightness == 255) { fadeAmount = -fadeAmount ;

} delay(30); } Seperti biasa, untuk lebih mudah memahami sketch tersebut, kita bagi program tersebut menjadi tiga bagian. Pertama, blok deklarasi variable. Kedua, blok routine setup(). Dan ketiga, blok routine loop(). Kita mulai dari blok yang pertama yaitu, blok deklarasi dan inisialisasi variable.

BLOK PERTAMA

Baiklah, sekarang kita perhatikan apa yang ada pada blok deklarasi dan inisialisasi variable kita berikut ini.

int led = 9; int brightness = 0; int fadeAmount = 5; Pada bagian pertama ini, ada tiga variable yang kita gunakan. Variable pertama yaitu " led ", variable ini kita beri nama led dan kita inisialisasikan 9. Karna, pada pin 9 Arduinolah kita menghubungkan LED ( tentunya dengan tambahan resistor 220 Ohm ) dengan Arduino. Variable selanjutnya, yaitu variable " brightness ". Variable ini, kita gunakan untuk menyimpan sementara nilai dari kecerahan nyala LED kita. Kemudian, variable yang terakhir yaitu, variable " fadeAmount ". Variable ini berfungsi untuk menambah atau mengurangi tingkatan kecerahan dari LED. Setelah kita mendeklarasikan dan menginisialisasikan variable seperti yang kita bahas di atas, kita beralih ke blok yang selanjutnya yaitu, blok fungsi setup().

BLOK KEDUA

Berikut ini adalah kode program pada routine setup() kita kali ini. Untuk itu, mari kita perhatikan bersama kodenya berikut ini.

void setup() { pinMode(led, OUTPUT); } Pada bagian program ini, satu-satunya hal yang kita lakukan yaitu, mengatur mode dari pin. Pada kode program di atas, kita menentukan mode dari pin 9 sebagai OUTPUT menggunakan fungsi pinMode ( ). Ingat kembali, fungsi pinMode ( ) memerlukan dua parameter yaitu, nomor pin dan mode yang diinginkan. Dalam kasus ini, kita menetapkan variable " led " atau pin 9 untuk parameter pertama dan mode OUTPUT sebagai parameter yang kedua. Saya rasa, anda telah memahami blok program ini, karna kita sudah pernah membahasnya pada praktikum-praktikum kita sebelumnya. Oke, sekarang setelah bagian setup ini sudah selesai kita seting, kini saatnya kita melanjutkan pembahasan kita ke blok program yang berikutnya, yaitu blok routine loop().

BLOK KETIGA

Sekarang, kita sudah sampai ke pembahasan pada blok yang ketiga. Di sini, kita memiliki routine loop(). Berikut ini kode pada routine kita ini.

void loop() { analogWrite(led, brightness); brightness = brightness + fadeAmount; if (brightness == 0 || brightness == 255) { fadeAmount = -fadeAmount ; } delay(30); } Blok routine loop() ini diawali dengan fungsi analogWrite ( ). Fungsi inilah yang kita gunakan untuk memanggil Pulse Width Modulation atau yang sering kita singkat PWM. PWM pada dasarnya adalah metode yang digunakan untuk mengubah output digital menjadi output yang " seakan-akan " analog. Sehingga, kita bisa menggunakan output ini layaknya sebuah pin output analog.

Skala output dari PWM ini memberikan pin nilai antara 0 sampai 255 dimana, 0 sebagai tegangan terendah dan 255 sebagai tegangan tertinggi. Untuk lebih jelasnya tentang PWM silahkan kunjungi situs resmi Arduino.

Baik, kita kembali ke pembahasan tentang analogWrite ( ). Seperti yang telah kita pahami bahwa fungsi analogWrite ( ) membutuhkan dua parameter, yaitu parameter angka pin dan nilai output antara 0 sampai 255. analogWrite ( pin, value ) Dalam sketch ini kita menggunakan parameter : analogWrite ( led , brightness) ; Jadi, hal pertama yang kita lakukan dalam blok routine loop() ini adalah memberikan nilai pada variable " led " atau pin 9 dengan nilai dari variable " brightness ". Karna variable “brightness” ini nilai awalnya adalah 0 maka, LED kita akan mulai dari padam terlebih dahulu.

Baris berikutnya dari kode kita pada blok ketiga ini yaitu, brightness = brightness + fadeAmount; Jika kita ubah menjadi angka-angka, isi dari variable-variable pada kode di atas akan terbaca seperti ini. ( 0 ) = ( 0 ) + ( 5 ) Jadi, di sini kita mengambil nilai dari variable " brightness " kemudian menambahkan brightness tersebut dengan nilai " fadeAmount ". Nilai ini kemudian tersimpan sementara, sehingga sekarang nilai variable “brightness” yang awalnya 0 sekarang menjadi 5. Sekarang, kita sudah tahu bahwa variable " brightness " nilainya sudah berubah menjadi 5, dan akan bertambah terus dalam kelipatan 5. kira-kira gambaran pertambahannya seperti ini, 0 - 5 - 10 - 15 - 20 - ...sampai... - 255. Setiap pertambahan nilai “brightness” tersebutlah yang membuat LED dari padam perlahan-lahan menjadi terang.

Permasalahan selanjutnya yang kita hadapi adalah, bagaimana jika nilai variable " brightness " sudah menjadi 255 ? Apakah LED akan terus menyala ? lalu, bagaimana cara meredupkannya kembali ?! Untuk itulah kita menggunakan kode yang selanjutnya yaitu fungsi if statement. Fungsi if ( kondisi ) adalah fungsi kontrol yang sangat sering digunakan. Fungsi ini, bekerja dengan mengecek sebuah kondisi - dan jika kondisi yang di cek tersebut terpenuhi, maka kode yang ada di dalam kurung kurawal fungsi if ini akan di eksekusi. Sebagai contoh, coba perhatikan analogi berikut, if (apel matang DAN tidak busuk) { ambil apel () masukkan ke keranjang () }

Yang tadi saya sebut " kondisi " adalah apa yang kita ketikkan di dalam kurung dari fungsi if tersebut. Di dalam kurung ini, kita mengetik kode yang kita gunakan sebagai kondisi. Dalam analogi di atas, jika " apel matang DAN tidak busuk " terpenuhi, maka kode fungsi yang ada di dalam kurung kurawal akan di eksekusi. - " ambil apel " kemudian " masukkan ke keranjang ". Jadi, ayo kita lihat bagaimana fungsi if membantu kita mengembalikan LED menjadi padam kembali. if ( brightness == 0 | | brightness == 255 ) { fadeAmount = - fadeAmount ; } Mungkin awalnya terlihat sedikit membingungkan, tapi tenang saja kita akan bahas perlahan. Siap..? Kita awali dari pembahasan | | . Dua garis itu artinya adalah OR (dlm bahasa indonesia ATAU). Jadi, kondisi di atas artinya " jika variable brightness sama dengan 0 ATAU 255. Selanjutnya, kita bahas tanda == . Tanda dua sama dengan ini adalah operator perbandingan yang membandingkan dua nilai yang sama. Apa bedanya dengan tanda sama dengan = . Untuk mudahnya, kita lihat contoh berikut. brightness = 0 / / pernyataan ini memberikan nilai ke variabel “brightnes” dengan nilai “0” sedangkan, brightness == 0 / / pernyataan ini membandingkan variabel “brightnes” kecerahan dengan 0.

Kondisi dalam kondisi fungsi if ini akan menghasilkan salah satu dari 2 nilai berikut -- bernilai TRUE (benar) atau FALSE (salah). Jika TRUE, maka kode yang ada di dalam kurung kurawal akan di eksekusi. Ingat, kelipatan dari variable " brightness " yang bertambah?! Kondisi pada if akan terus bertambah sampai brightness mencapai 255. Nah, sekarang jika kondisi ini terpenuhi. Bagaimana selanjutnya ?! if ( brightness == 0 | | brightness == 255 ) Kondisi ini terpenuhi - selanjutnya apa ? { fadeAmount = - fadeAmount ; } Yang kita lakukan selanjutnya yaitu, merubah nilai variable " fadeAmount " menjadi minus/negatif. fadeAmount = - fadeAmount ;

Jadi, sekarang jika variable “brightness” sudah bernilai 255, maka nilai dari “fadeAmount” akan menjadi negatif. Sehingga, “brightness” sekarang akan dikurangi 5 , karna nilai fadeAmount ( - 5 ). Dan seterusnya sampai “brightness” kembali lagi menjadi Nol dan “fadeAmount” berubah kembali menjadi positif 5 ini hitungan yang terjadi " (-(-5)) ".

Ok, kita sudah cukup untuk membahas tentang fungsi if. Kita lanjutkan ke kode selanjutnya, yaitu kode agar kita dapat melihat perubahan kecerahan dan keredupan dari LED dengan mendelay program selama beberapa milidetik. Berikut ini kode delay tersebut. delay (30); Kode ini kita gunakan, karna mata manusia kurang cepat dalam menangkap perubahan jika tidak kita delay. Dalam praktikum ini, kita mendelaynya selama 30 milidetik. Tujuannya, agar kita dapat dengan jelas melihat perubahannya. Nah, bagaimana?! -- Sekarang Anda sudah dapat menikmati lampu LED anda berkelap-kelip secara perlahan. Demikianlah pembahasan kita pada praktikum kali ini. Terimakasih atas perhatiannya, selamat berlatih, dan sampai jumpa pada praktikum kita selanjutnya..

Latihan Mandiri

Untuk latihan mandiri kali ini, cobalah beberapa hal berikut ini! 1. Ganti nilai dari variable int “fadeAmount”. Jelaskan, bagaimana hasilnya?! 2. Kurangi nilai dari fungsi delay(), apa yang terjadi? Jelaskan! 3. Tambahkan 1 LED lagi pada rangkaian hubungkan dengan pin 11 Arduino. Kemudian buatlah kedua LED tersebut fade in dan fade out seperti hasil praktikum di atas

www.BELAJARBIKINROBOT.WEEBLY.com