LED berkedip biasanya merupakan latihan pemrograman arduino paling dasar. Ini merupakan sebuah latihan yang cukup mudah dengan membuat sebuah LED yang terhubung ke pin 13 menyala selama selang waktu 1 detik kemudian mati selama selang waktu 1 detik dan begitu seterusnya. Pada percobaan ini tidak terdapat banyak fungsi yang digunakan tapi merupakan dasar untuk bisa memahami bahasa pemograman yang lebih kompleks nantinya.
Kebutuhan Komponen
Untuk membuat rangkain LED berkedip dengan arduino, kita membutuhkan alat dan bahan sebagai berikut:
- Arduino UNO
- LED
- Resistor 330Ω
- Power Supply 5 Volt DC
Rangkaian Arduino
Menulis Source Code / Sketch Program Arduino
Buka Aplikasi Arduino IDE kemudian tuliskan sketch di bawah ini:
/*
Belajar Arduino Dasar
Latihan LED Berkedip
Menyala 1 detik, Padam 1 detik
https://ahmadzipur.com/led-berkedip-dengan-arduino/
*/
void setup(){
pinMode(13, OUTPUT); // Menentukan pin D13 sebagai output
}
void loop()
{
digitalWrite(13, HIGH); // Menyalakan LED
delay(1000); // Jeda 1 detik
digitalWrite(13, LOW); // Mematikan LED
delay(1000); // Jeda 1 detik
}
Penjelasan Source Code Program
Arduino merupakan sebuah mikrokontroler yang bersifat open source. Dirancang untuk memudahkan penggunaan elektronik di berbagai bidang. Arduini ini memiliki processor IC Atmel AVR dengan bahasa pemrograman tersendiri yang biasa kita menyebutnya dengan kata “sketch”. Sketch biasanya ditulis dengan menggunakan bahasa java, C, Basic, dll. Sketch terdiri dari beberapa susunan kode instruksi yang hanya bisa dimengerti oleh Arduino.
Comment
Sketch selain berisi barisan kode instruksi juga terdapat beberapa catatan atau “comment” yang biasanya berfungsi untuk memberikan keterangan atau penjelasan pada baris kode instruksi. Comment tidak akan mempengaruhi terhadap fungsi kode instruksi. Comment juga berbeda warnanya dengan kode, sehingga akan jelas mana baris kode dan mana baris comment.
Apabila kita ingin membuat comment sebanyak satu paragraph, kita harus mengawalinya dengan garis miring dengan bintang “/*”. Kemudian mengakhirinya dengan bintang garis miring “*/”
/*
Belajar Arduino Dasar
Latihan LED Berkedip
Menyala 1 detik, Padam 1 detik
https://ahmadzipur.com/led-berkedip-dengan-arduino/
*/
Untuk membuat comment satu baris kita harus mengawalinya dengan menulis garis miring dua kali “//”, maka huruf atau kalimat setelahnya adalah sebuah comment sampai awal garis baru.
// Menentukan pin D13 sebagai output
Fungsi
Sebuah blok baris kode instruksi adalah “fungsi” yang dapat menjalankan perintah tertentu. Semua sketch Arduino harus memiliki 2 fungsi utama, yaitu “setup()” dan “loop()”. Arduino akan menjalankan kedua fungsi tersebut secara otomatis ketika pertama kali menyala atau ketika kita menekan tombol reset.
setup()
Fungsi setup() berjalan pertama kali dan hanya satu kali ketika Arduino menyala atau ketika kita menekan tombol reset. Biasa kita gunakan untuk penulisan kode yang hanya membutuhkan satu kali instruksi saja atau pertama saja seperti inisialisasi.
loop()
Sedangkan fungsi loop() akan berjalan berulang-ulang. Ketika baris instruksi terakhir dalam fungsi loop() sudah selesai, maka arduino akan kembail ke awal baris instruksi pada fungsi loop().
pinMode()
Arduino, dalam hal ini Arduino Uno memiliki 14 pin input/output. Pin-pin tersebut dapat kita konfigurasi sebagai input ataupun output. Untuk mengkonfigurasi pin tersebut dapat menggunakan fungsi bawaan arduino, yaitu pinMode().
pinMode(13, OUTPUT); // Menentukan pin D13 sebagai output
Fungsi pinMode() memerlukan dua parameter yang berada di dalam tanda kurung. Parameter pertama adalah nomor pin dan parameter kedua adalah sebuah kata dengan huruf besar yaitu INPUT atau OUTPUT.
Pada contoh sketch ini kita menentukan pin 13 sebagai output (pin yang terhubung dengan sebuah LED). Kita menyetting pin 13 sebagai output karena kita menginginkan Arduino untuk mengirim tegangan ke LED.
Semua pin digital (14 pin mulai dari pin 0 sampai dengan pin 13) pada Arduino stabil bila kita setting sebagai input atau output dengan kondisi on/off. Pada pin digital hanya terdapat dua keadaan yaitu 5 Volt (HIGH) dan 0 Volt (LOW).
digitalWrite()
Fungsi digitalWrite() adalah fungsi bawaan bahasa Arduino untuk membuat sebuah pin output digital dalam kondisi HIGH atau LOW. Fungsi ini memerlukan dua parameter yaitu sebuah nomor pin dan kata HIGH atau LOW.
digitalWrite(13, HIGH); // Menyalakan LED
Dalam contoh ini kita menghubungkan sebuah LED, kaki anoda LED pada pin 13 dan kaki katoda LED ke Ground. Agar LED menyala, maka kita perlu mengirim tegangan ke kaki anoda LED dengan menulis baris instruksi kondisi output HIGH.
digitalWrite(13, LOW); // Mematikan LED
Untuk mematikan LED kita menulis baris instruksi kondisi output LOW, maka LED akan mati karena tidak menerima tegangan dari Arduino.
delay()
Fungsi delay() merupakan sebuah fungsi untuk jeda atau berhenti beberapa saat. Fungsi ini memerlukan sebuah parameter nilai waktu dalam satuan miliseconds.
delay(1000); // Jeda 1 detik
delay(1000) adalah fungsi untuk memberi jeda waktu selama 1000 milidetik atau 1 detik.
Kesimpulan
Semua gabungan dari baris instruksi pada contoh sketch ini akan menjadikan sebuah program Arduino untuk menyalakan LED selama satu detik kemudian mati selama satu detik. Ketika Arduino selesai menjalankan baris instruksi pada akhir fungsi loop(), maka Arduino akan kembali menjalankan kumpulan baris instruksi yang berada dalam fungsi loop() dari awal secara terus menerus. Sehingga program ini akan membuat LED berkedip secara terus menerus.