TAKEN FROM μDESK OF DEDE HENDRIONO

Pelajaran Arduino - 1 Blink

Assalamu’alaikum. Pada pelajaran 1 ini, kita akan belajar bagaimana mem-program Arduino untuk membuat LED yang terpasang pada Arduino melakukan “Blink” atau “Kedipan”. Di dunia elektronika untuk mengucapkan salam sebelum masuk dan belajar lebih jauh tentang elektronika, maka biasanya para pakar elektronika mengarahkan kita untuk menciptakan “Blink” sebagai pengganti kata “Halo”, dalam dunia pemrograman biasanya kata salam di tulis dengan “Hello World!” atau dalam bahasa Indonesia “Halo Dunia!”. Membuat “Blink” seperti ini menjadi hal yang sangat lumrah didunia elektronika, terutama bagi mereka yang baru saja mengenal dunianya elektron dan saklar.

Ruang Lingkup

Dalam Pelajaran Arduino 1 akan dibahas beberapa hal, meliputi:

LED L

Arduino memiliki konektor di kedua sisinya, konektor ini digunakan sebagai penghubung antara perangkat elekronik atau “shield” dengan Arduino, melalui konektor ini Arduino bisa melakukan banyak hal.

Selanjutnya, Arduino memiliki sebuah lampu LED terintegrasi diatas papan Arduino yang dapat dikontrol melalui sketch atau skets. Sketch adalah sekumpulan instruksi atau perintah yang ditulis pada suatu perangkat lunak khusus dan perintah-perintah tertulis tersebut digunakan untuk mengontrol atau mengendalikan Arduino. LED yang terintegrasi diatas papan Arduino biasanya diberi label dengan huruf “L” pada sisi luar LED-nya.

Posisi LED L pada papan Arduino berbeda-beda sesuai dengan tipe papan Arduino. Namun secara umum posisi LED L ini mudah untuk ditemukan. Misal, LED L pada Arduino Uno dan Arduino Mega2560 diletakan sejajar dengan Pin 13, sedangkan pada Arduino Leonardo diletakan dekat dengan konektor MicroUSB.

Gambar 1 Posisi LED L diberi Lingkaran Merah

Memuat Contoh Sketch ‘Blink’

Kita akan dengan mudah menemukan LED L berkedip (blink) pada papan Arduino ketika dihubungkan ke Komputer melalui konektor USB. Hal ini karena papan Arduino secara umum dipasarkan dengan sudah ter-instal sketch “Blink”. Bahkan beberapa penjual papan Arduino sering melakukan pemeriksaan ulang keadaan papan Arduino dengan meng-instal sketch Blink. Jika LED L berkedip setelah di-instal sketch Blink berarti papan Arduino dalam keadaan baik tanpa masalah dan siap untuk dipasarkan.

Pada pelajaran ini, kita akan melakukan modifikasi instruksi sketch Blink dan kemudian mengubah kecepatan kedipan LED L.

Sebelum melakukan coding (coding adalah bahasa umum yang biasa digunakan oleh para penulis kode untuk menunjukan bahwa kita sedang menulis atau sedang memodifikasi sekumpulan instruksi dalam bahasa pemrograman tertentu) sebaiknya memastikan bahwa papan Arduino terpasang dan terhubung baik dengan komputer, dan pastikan bahwa Arduino IDE terkonfigurasi sesuai dengan papan Arduino yang kita hubungkan ke komputer.

Arduino IDE sudah menyiapkan banyak sekali contoh sketch didalamnya yang dapat kita muat dan gunakan baik untuk belajar atau bahkan siap digunakan. Termasuk didalamnya contoh sketch Blink untuk membuat LED L berkedip.

Load (load adalah padanan kata untuk “memanggil dan memuat”, inilah sulitnya Bahasa Indonesia) sketch Blink yang dapat kita temukan pada Menu File > Examples > 01.Basics > Blink

Gambar 2. Load Sketch Blink

Pada saat membuka sketch Blink, maka jendela baru Arduino IDE akan terbuka, aturlah ukuran jendela Arduino IDE sehingga baris kode perintah terlihat dengan baik. Hal ini untuk memudahkan kita belajar menulis dan memodifikasi instruksi.

Gambar 3. Jendela Arduino IDE dengan Sketch Blink

Menyimpan Salinan ‘Blink’

Contoh sketch yang disediakan oleh Arduino IDE di set “read-only”. Read-Only artinya hanya bisa di buka, di baca, di modifikasi tetapi tidak bisa di simpan atau pun di hapus. Hal ini berarti juga bahwa sketch contoh hanya bisa di-upload (unggah) ke Papan Ardino, tetapi tidak bisa di ubah kemudian di simpan dengan nama file yang sama.

Kita akan mengubah contoh sketch Blink dan kemudian harus menyimpan salinan tersebut dengan nama sesuai keinginan. Setelah contoh sketch Blink diubah, bukan Menu File > Save As… dan beri nama, misal “MyBlink”.

Gambar 4. Save As… Sketch

Kita sudah menyimpan Blink hasil modifikasi kita dengan nama sketch “MyBlink”, sketch ini akan tampil pada Menu File > Sketchbook. Ini berarti, kita bisa menemukan dan memanggil ulang “MyBlink” tersebut melalui Menu File > Sketchbook > MyBlink.

Gambar 5. Lokasi Sketchbook MyBlink

Meng-Unggah Blink ke Papan Arduino

Pastikan kita sudah memilih tipe papan Arduino pada Arduino IDE dengan benar, kemudian pastikan kita memilih Port COM komputer yang sudah terhubung dengan papan Arduino dengan benar. Hasil konfigurasi akan tampil pada baris informasi yang tertera pada bagian pojok kanan bawah Arduino IDE, misal pada gambar dibawah ini tertulis “Arduino/Genuino Uno on COM4”.

Gambar 6. Konfigurasi Arduino IDE

Klik tombol “Upload” yang ada pada deret toolbar pada bagian atas Arduino IDE, tombol ada pada posisi kedua dari sebelah kiri. Ketika mouse berada diatas tombol “Upload” maka pada sebelah kanan muncul tulisan “Upload”. Upload dalam bahasa Indonesia diartikan “Unggah”, selanjutnya pada artikel ini penulis menggunakan istilah “Upload” atau “Unggah”.

Gambar 7. Toolbar Arduino IDE

Jika kita lihat area status pada Arduino IDE, akan tampak baris proses dan sekumpulan pesan. Pada mulanya pesan memunculkan “Compiling Sketch…”. Proses “Compiling” ini adalah proses konversi sketch menjadi sebuah format yang cocok untuk di-upload ke papan Arduino.

Gambar 8. Proses Compiling Sketch dan Uploading

Selanjutnya, setelah selesai proses “Compiling Sketch…” maka pesan akan berubah menjadi “Uploading…”. Saat bersamaan, lampu LED yang berlabel TX dan RX akan berkedip-kedip, ini berarti proses pengiriman sketch sedang terjadi dari Arduino IDE menuju ke Papan Arduino melalui jalur USB.

Akhirnya, status berubah menjadi “Done uploading”. Ini artinya proses transfer sketch dari Arduino IDE ke Papan Arduino telah selesai.

Setelah proses unggah selesai, maka papan akan melakukan proses restart dan kedipan LED L dimulai. Setiap selesai proses unggah maka papan Arduino pasti akan melakukan restart. Restart adalah proses mematikan dan menghidupkan papan Arduino, memuat Bootloader, dan terakhir memuat sketch. Begitulah urutan yang terjadi pada papan Arduino setelah selesai proses Upload. Papan Arduino melakukan restart dalam waktu yang relatif singkat, kecepatan restart tergantung banyaknya instruksi yang ada didalam sketch.

Bagaimana Kode ‘Blink’ Bekerja

Dibawah ini adalah sketch Blink. Sketch Blink di ambil dari contoh Arduino IDE versi 1.8.2

/*
 Blink
 Turns on an LED on for one second, then off for one second, repeatedly.

 Most Arduinos have an on-board LED you can control. On the UNO, MEGA and ZERO 
 it is attached to digital pin 13, on MKR1000 on pin 6. LED_BUILTIN is set to
 the correct LED pin independent of which board is used.
 If you want to know what pin the on-board LED is connected to on your Arduino model, check
 the Technical Specs of your board at https://www.arduino.cc/en/Main/Products
 
 This example code is in the public domain.

 modified 8 May 2014
 by Scott Fitzgerald
 
 modified 2 Sep 2016
 by Arturo Guadalupi
 
 modified 8 Sep 2016
 by Colby Newman
*/

// the setup function runs once when you press reset or power the board
void setup() {
 // initialize digital pin LED_BUILTIN as an output.
 pinMode(LED_BUILTIN, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
 digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
 delay(1000); // wait for a second
 digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
 delay(1000); // wait for a second
}

Hal yang pertama terpikirkan ketika melihat sketch Blink diatas adalah tampak “rumit”, padahal sebagian besar baris kode tersebut hanyalah “comment” atau “komentar”. Komentar bukanlah instruksi program, komentar hanya digunakan untuk menjelaskan bagaimana program tersebut bekerja. Hal ini berarti, komentar tidak punya peranan untuk mempengaruhi unjuk kerja program. Ada dan tidak ada komentar tidaklah berpengaruh pada program. Segala hal yang terdapat diantara /* dan */ seperti pada contoh sketch diatas disebut blok komentar, biasanya digunakan untuk menjelaskan fungsi secara keseluruhan dari sketch tersebut.

Sedangkan segela hal yang diletakan setelah // sampai akhir baris disebut dengan komentar tunggal, ini biasanya digunakan untuk menjelaskan fungsi kode secara detail, baris demi baris. Komentar tunggal juga tidak mempengaruhi fungsi program.

Selanjutnya, kita memiliki fungsi ‘setup’. Segala hal yang ada didalam fungsi ‘setup’ hanya akan dijalankan sekali saja ketika tombol ‘Reset’ di tekan dan atau pada saat sumber listrik dihubungkan ke papan Arduino. Ini juga berarti bahwa sketch akan dijalankan ketika papan direset dengan cara apapun, misal ketika sumber tegangan pertama kali dihubungkan atau ketika proses upload sketch selesai dilakukan.

void setup() {
 // initialize digital pin LED_BUILTIN as an output.
 pinMode(LED_BUILTIN, OUTPUT);
}

Setiap sketch Arduino harus dan wajib memiliki fungsi ‘setup’ dan ini adalah bagian di mana kita ingin menuliskan instruksi, maka instruksi tersebut harus dituliskan di antara { dan }.

Pada contoh diatas, perintah hanya terdiri dari satu perintah, seperti halnya dijelaskan pada baris komentar bahwa Pin LED (LED_BUILTIN) ditetapkan sebagai pin ‘OUTPUT’ atau keluaran. Maksudnya pin ditetapkan sebagai ‘output’ (pin ‘keluaran’) itu layaknya kran air, sebagai titik berhentinya air dan atau titik keluarnya air.

LED_BUILTIN adalah pin Digital 13 pada Arduino Uno. Sedangkan pada papan Arduino tipe lain, LED_BUILTIN ditetapkan pada pin lainnya. Sederhananya LED_BUILTIN = Pin 13 pada Arduino Uno.

Selain wajib menuliskan fungsi ‘setup’, perintah wajib berikutnya adalah fungsi ‘loop’. Tidak seperti fungsi ‘setup’ yang hanya dijalan sekali saja setiap papan Arduino di-reset, fungsi ‘loop’ akan dijalankan setelah fungsi ‘setup’, dan fungsi ‘loop’ akan dijalankan berulang. Segala hal yang ada didalam fungsi ‘loop’ akan dijalankan berulang dari awal baris hingga akhir baris, kemudian kembali lagi keawal baris hingga akhir baris lagi, terus menerus berulang-ulang hingga papan Arduino di-reset atau dimatikan.

void loop() { 
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level) 
delay(1000); // wait for a second 
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW 
delay(1000); // wait for a second 
}

Perhatikan contoh sketch diatas. Didalam fungsi ‘loop’, perintah pertama digunakan untuk menetapkan pin LED_BUILTIN pada posisi HIGH. HIGH jika di konversi menjadi tegangan, pin LED_BUILTIN akan mengeluarkan tegangan 5 volt (positif). Perintah berikutnya adalah ‘delay’ dengan nilai 1000 milidetik. Perintah ‘delay’ (penundaan) digunakan untuk menahan fungsi diatasnya agar tetap bekerja selama 1000 milidetik. 1000 milidetik sama dengan 1 detik. Setelah 1 detik, fungsi berikut dijalankan. Perintah berikutnya menetapkan pin LED_BUILTIN pada posisi LOW. LOW jika di konversi menjadi tegangan, pin LED_BUILTIN akan mengeluarkan tegangan 0 volt (negatif). Perintah ini akan dijalankan selama 1000 milidetik lagi.

Sederhananya, LED L akan dinyalakan selama 1 detik (1000 milidetik) dan akan dipadamkan selama 1 detik (1000 milidetik) juga, dan terus berulang.

Mempercepat Kedipan

Sekarang kita akan memodifikasi kedipan LED L menjadi lebih cepat. Jika kita perhatikan penjelasan diatas, maka akan ditemukan kunci untuk melakukan modifikasi. Kunci untuk mengubah kecepatan kedipan adalah pada nilai yang ada didalam fungsi ‘delay’. Ubahlah nilai 1000 yang ada diantara ( dan ) menjadi nilai yang lebih tinggi atau lebih rendah.

Gambar 9. Memodifikasi Kedipan LED

Ingat bahwa periode ‘delay’ (penundaan) ditetapkan dalam satuan milidetik. Jadi, jika kita ingin mempercepat kedipan LED L menjadi 2 kali lebih cepat, maka ubahlah nilai 1000 menjadi 500 pada kedua fungsi ‘delay’. Hasilnya, LED L akan menyala selama setengah detik dan akan padam selama setengah detik.

Upload lagi sketch hasil modifikasi tersebut dan lihatlah hasilnya, LED L akan menyala dan padam lebih cepat dari sebelumnya.

Silahkan modifikasi lagi nilai penundaan sesuai keinginan anda, dan jangan lupa Upload lagi ke papan Arduino untuk melihat hasilnya. Demikianlah Pelajaran Arduino Seri 1 ini. Kita akan bertemu lagi pada Pelajaran Arduino seri berikutnya dengan materi yang lebih menantang. Mohon ma’af jika ada kesalahan tulisan dan atau ada kata yang tidak sesuai, karena begitulah Bahasa Indonesia. Sangat sulit mencari padanan kata dari Bahasa Inggris Teknik ke Bahasa Indonesia.

Rencana Kedepan

Rencana kedepan penulis akan membuat tutorial Arduino dalam bentuk video, namun karena penulis sampai hari ini belum memiliki alat pembuat video (kamera), maka sementara waktu disuguhkan dulu dalam bentuk tulisan. Mudah-mudahan Allah SWT memudahkan penulis untuk memiliki peralatan yang memadai dalam membuat Video Tutorial Belajar Arduino. Sampai jumpa di artikel berikutnya…

Wassalamu’alaikum…


Artikel Terkait

Apa itu Arduino?

Arduino adalah pengendali mikro (mikrokontroler) papan tunggal yang bersifat open-source (sumber terbuka), diturunkan dan dikembangkan dari platform Wiring, dirancang untuk memudahkan penggunaan elektronik dalam berbagai bidang. Hardwarenya menggunakan prosesor Atmel AVR dan softwarenya memiliki bahasa pemrograman sendiri dengan antar-muka diambil dari Processing....

Memilih Arduino Uno Untuk Pemula

Arduino Uno Original, Arduino Compatible dan Arduino Clone menjadi sangat membingungkan bagi para pemula yang hendak belajar tentang pemrograman Arduino. Arikel ini membahas tips dan trik menentukan pilihan papan Arduino Uno yang tepat terutama bagi pemula. Tepat sesuai dengan tujuan penggunaan dan tepat sesuai dengan dana yang dimiliki oleh penggunanya. Informasi tentang jenis-jenis Arduino yang ada dipasaran Indonesia tidak terlalu jelas, bahkan beberapa penjual Arduino sengaja tidak memberikan informasi detail tentang Arduino Uno yang dijualnya....

Kesalahan dan Solusi Kode Arduino

Mencari kesalahan yang terjadi pada Arduino memang merupakan hal yang sangat menguras waktu dan pikiran, terkadang kita dibuat bingung dengan kesalahan tersebut. Entah itu kesalahan penulisan kode ataupun kesalahan komunikasi data. Walaupun perangkat lunak Arduino menyertakan konsol pesan (text message console) namun tetap saja kesalahan tersebut terkadang sulit untuk ditemukan. Untuk memudahkan dalam mencari dan menemukan kesalahan, artikel kali ini akan membahas cara menyederhanakan kesalahan-kesalahan yang terjadi pada Arduino agar lebih mudah dalam menemukan dan menyelesaikan permasalahan pada kode Arduino....

Solusi avrdude stk500_getsync() pada Arduino

Artikel sebelumnya telah membahas permasalahan dan solusi pada Arduino. Pembahasan artikel tersebut mengarah pada kesalahan penulisan kode. Artikel kali ini membahas permasalahan umum yang sering muncul pada Arduino. Namun permasalahan kali ini mengarah pada kesalahan komunikasi antara Komputer dengan Arduino. Kesalahan komunikasi atau Upload error tidaklah serumit kesalahan kode, namun karena sifatnya yang mengarah ke fisik, biasanya mengarah ke papan Arduino. Dan dalam kasus yang fatal, Mikrokontroller harus diganti. Jika anda menemukan masalah seperti ini, jangan langsung mengambil kesimpulan terparah, pelajari dulu masalah yang menyebabkan kesalahan komunikasi tersebut. Artikel kali ini memaparkan permasalahan yang terjadi dan solusinya jika terjadi kesalahan avrdude: stk500_getsync(): not in sync: resp=0x00....

Mengenal Mikrokontroler

Memang cukup membingungkan ketika mendengar istilah Mikrokontroler dan Mikroprosesor. Bagi para pengguna yang masih awam kedua istilah diatas dianggap sama, bahkan ada yang menganggap hanya beda istilah saja. Anggapan tersebut tidak salah 100% namun juga tidak benar 100%. Mikrokontroler dan Mikroprosesor adalah dua benda yang beda target penggunaan, beda kelengkapan fungsinya dan beda perusahaan yang awal menciptakan, namun berangkat dari ide yang sama, arsitektur yang sama, bahkan dari tahun lahir yang hampir sama pula. Lalu apa sebenarnya Mikrokontroler dan Mikroprosesor?...

Memahami Pull-up Resistor

Pull-up Resistor sangat umum digunakan pada mikrokontroler (MCU) atau pada perangkat logika digital (digital logic device). Artikel kali ini akan membahas kapan dan dimana harus menggunakan pull-up resistor, melakukan perhitungan sederhana dan menunjukan mengapa pull-up resistor itu penting....

Mengenal Arduino Uno

Arduino Uno adalah papan mikrokontroler berbasis ATmega328. Arduino Uno memiliki 14 digital pin input/output, dimana 6 pin digunakan sebagai output PWM, 6 pin input analog, 16 MHz resonator keramik, koneksi USB, jack catu daya eksternal, header ICSP, dan tombol reset. Sebuah ATmega16U2 yang terdapat pada papan digunakan sebagai media komunikasi serial melalui USB dan muncul pada hardware komputer sebagai COM Port Virtual untuk berkomunikasi dengan perangkat lunak pada komputer. Firmware 16U2 menggunakan driver standar USB COM, sehingga tidak membutuhkan driver eksternal....

Mengenal Arduino Mega2560

Arduino Mega2560 adalah papan mikrokontroler berbasiskan ATmega2560 (datasheet ATmega2560). Arduino Mega2560 memiliki 54 pin digital input/output, dimana 15 pin dapat digunakan sebagai output PWM, 16 pin sebagai input analog, dan 4 pin sebagai UART (port serial hardware), 16 MHz kristal osilator, koneksi USB, jack power, header ICSP, dan tombol reset. Ini semua yang diperlukan untuk mendukung mikrokontroler. ...

Mengenal Arduino Leonardo

Arduino Leonardo adalah papan mikrokontroler berbasis ATmega32u4. Arduino Leonardo memiliki 20 digital pin input/output (yang mana 7 pin dapat digunakan sebagai output PWM dan 12 pin sebagai input analog), 16 MHz kristal osilator, koneksi micro USB, jack power suplai tegangan, header ICSP, dan tombol reset. Ini semua yang diperlukan untuk mendukung mikrokontroler. Cukup dengan menghubungkannya ke komputer melalui kabel USB atau power dengan adaptor AC-DC atau baterai untuk mulai mengaktifkannya....

Mengenal Arduino Nano

Papan pengembangan elektronika mikrokontroler yang diberi nama Arduino ini memiliki banyak sekali turunannya. Baik itu yang diturunkan langsung dari pihak Arduino sendiri atau pihak ketiga yang ikut mengembangkan papan Arduino. Hal ini karena Arduino bersifat Open Source Hardware (OSH), karena sifatnya yang terbuka ini maka membuat para pengembang tidak perlu takut dengan Hak Atas Kekayaan Intelektual. Siapapun dapat membangun papan Arduino dengan versi sendiri dan disesuaikan dengan kebutuhan sendiri atau bahkan disesuaikan dengan dana yang dimiliki, namun tetap bekerja normal layaknya papan Arduino aslinya. Salah satu papan Arduino yang dikembangkan pihak ke tiga dan dapat diterima oleh pasar dengan baik adalah Arduino Nano. Seperti apa Arduino Nano?...

Mengenal Arduino Pro Mini

Satu lagi anggota keluarga Arduino yang cukup populer, yaitu Arduino Pro Mini. Merupakan keluarga Arduino yang murah, sederhana dan ukurannya yang kecil membuat popularitas Arduino Pro Mini hampir mengalahkan Arduino Uno. Selain itu, Arduino Pro Mini hadir dalam 2 versi yaitu versi 3,3 Volt 8 Mhz dan versi 5 Volt 16 MHz yang membuatnya mudah untuk dipilih sesuai kebutuhan. Dimensi yang kecil membuat Arduino Pro Mini bisa langsung ditanamkan pada proyek-proyek robotika. Kelemahan Arduino Pro Mini adalah tidak ditanamkannya USB Adapter pada papan sehingga para pengguna harus menyediakan sendiri USB Adapter terpisah....

Silahkan Berkomentar