Arduino adalah platform prototyping elektronik sumber terbuka (open-source) yang sangat populer di kalangan pemula, hobiis, hingga profesional. Inti dari sistem Arduino adalah mikrokontroler yang dapat diprogram untuk mengontrol berbagai komponen elektronik, seperti lampu LED, motor, sensor suhu, dan lain-lain. Agar mikrokontroler ini dapat menjalankan perintah yang kita inginkan, diperlukan sebuah bahasa pemrograman khusus.
Secara teknis, bahasa pemrograman yang digunakan untuk Arduino dikenal sebagai Wiring. Namun, Wiring ini sendiri merupakan abstraksi atau penyederhanaan dari bahasa pemrograman yang lebih mendasar, yaitu C/C++. Ketika kita menulis kode untuk Arduino menggunakan IDE (Integrated Development Environment) Arduino, kode tersebut akan dikompilasi menjadi bahasa mesin yang dimengerti oleh chip mikrokontroler (biasanya dari keluarga AVR atau ARM).
Penggunaan C/C++ sebagai fondasi membuatnya sangat efisien dan memberikan kontrol yang mendalam terhadap hardware. Namun, Arduino Project sengaja membuat lingkungan yang lebih ramah pemula dengan menambahkan pustaka (library) dan struktur fungsi yang lebih sederhana, sehingga programmer tidak perlu terlalu mendalami kompleksitas C/C++ tingkat lanjut untuk memulai proyek dasar.
Setiap program Arduino, yang disebut Sketch, harus memiliki dua fungsi utama yang menjadi fondasi eksekusi: setup() dan loop().
Fungsi ini hanya akan dieksekusi sekali saja ketika papan Arduino pertama kali dinyalakan atau tombol reset ditekan. Fungsi ini sangat penting untuk inisialisasi, seperti mengatur mode pin (input atau output) dan memulai komunikasi serial.
Setelah setup() selesai, fungsi loop() akan dieksekusi berulang-ulang tanpa henti selama Arduino masih mendapatkan daya. Di sinilah logika utama program Anda berada, seperti membaca sensor dan mengendalikan aktuator.
Program "Blink" adalah program pertama yang hampir selalu dijalankan oleh pengguna baru Arduino. Tujuannya sederhana: mematikan dan menyalakan lampu LED internal (biasanya terhubung ke pin 13) secara berkala.
void setup() {
// Menginisialisasi pin 13 sebagai OUTPUT
pinMode(13, OUTPUT);
}
void loop() {
// Menyalakan LED
digitalWrite(13, HIGH);
delay(1000); // Tunggu selama 1000 milidetik (1 detik)
// Mematikan LED
digitalWrite(13, LOW);
delay(1000); // Tunggu lagi selama 1 detik
}
Dalam contoh di atas, kita menggunakan fungsi bawaan: pinMode() untuk konfigurasi, digitalWrite() untuk memberikan tegangan HIGH (ON) atau LOW (OFF) pada pin, dan delay() untuk jeda waktu. Semua fungsi dasar ini adalah bagian dari pustaka Wiring yang menyederhanakan C/C++.
Meskipun berbasis C/C++, bahasa pemrograman Arduino memberikan beberapa keuntungan signifikan:
Kesimpulannya, Arduino bahasa pemrograman adalah pintu gerbang yang sangat efektif menuju dunia elektronika digital. Dengan menguasai struktur dasar setup() dan loop() serta beberapa fungsi inti I/O, siapa pun dapat mulai membuat perangkat elektronik cerdas mereka sendiri dengan cepat dan efisien.