Visualisasi sederhana dari papan mikrokontroler.
Arduino, sebagai platform prototyping elektronik yang populer, sangat bergantung pada bahasa pemrograman yang spesifik agar dapat menerima perintah dan mengontrol komponen eksternal seperti LED, motor, atau sensor. Meskipun sering disebut sebagai bahasa tersendiri, penting untuk diketahui bahwa pemrograman Arduino sebenarnya berbasis pada bahasa pemrograman C/C++.
Lingkungan Pengembangan Terpadu (IDE) Arduino secara otomatis menambahkan beberapa fungsi dan struktur dasar yang diperlukan untuk berinteraksi dengan mikrokontroler. Inilah yang membuat proses coding menjadi jauh lebih mudah diakses, terutama bagi pemula yang baru memasuki dunia elektronika dan mikrokontroler.
Setiap program yang diunggah ke papan Arduino (yang disebut sebagai "sketsa" atau sketch) harus memiliki dua fungsi utama yang dideklarasikan. Struktur ini adalah fondasi dari semua kode Arduino:
Fungsi setup() hanya dijalankan sekali ketika mikrokontroler dinyalakan atau ketika papan di-reset. Bagian ini digunakan untuk melakukan inisialisasi konfigurasi awal:
void setup() {
// Mengatur Pin 13 sebagai OUTPUT
pinMode(13, OUTPUT);
}
Fungsi loop() adalah inti dari program Arduino. Setelah setup() selesai dijalankan, fungsi ini akan dieksekusi berulang kali (berputar) tanpa henti selama papan masih mendapatkan daya. Di sinilah logika utama aplikasi Anda ditempatkan.
void loop() {
// Menyalakan LED
digitalWrite(13, HIGH);
delay(1000); // Tunggu 1 detik
// Mematikan LED
digitalWrite(13, LOW);
delay(1000);
}
Karena Arduino menggunakan kerangka kerja yang dibangun di atas C++, programmer memiliki akses penuh ke fitur-fitur C++. Ini mencakup penggunaan struktur data kompleks, pointer (meskipun jarang dibutuhkan pemula), operator aritmatika, dan berbagai pustaka (libraries) yang tersedia dalam ekosistem C++.
Ketika Anda menulis kode di Arduino IDE dan mengkompilasinya, kode tersebut diterjemahkan menjadi kode C++ standar dan kemudian dikompilasi menjadi bahasa mesin yang dimengerti oleh mikrokontroler (seperti ATmega328P pada board Uno). Penguasaan dasar C++ akan sangat membantu ketika Anda perlu mengoptimalkan kode, bekerja dengan tipe data yang lebih spesifik, atau menggunakan pustaka pihak ketiga yang lebih canggih.
Arduino menyediakan serangkaian fungsi bawaan yang menyederhanakan interaksi dengan perangkat keras. Fungsi-fungsi ini adalah bagian dari pustaka inti Arduino:
digitalWrite(pin, value): Mengirimkan tegangan HIGH (5V) atau LOW (0V) ke pin digital.digitalRead(pin): Membaca keadaan digital dari pin (HIGH atau LOW).analogRead(pin): Membaca nilai tegangan analog (0 hingga 1023) dari pin input analog.analogWrite(pin, value): Mengirimkan sinyal Pulse Width Modulation (PWM) untuk mengontrol kecepatan motor atau kecerahan LED (nilai 0 hingga 255).Fungsi delay(milliseconds) adalah yang paling umum digunakan untuk memberikan jeda waktu dalam milidetik di antara eksekusi perintah. Meskipun sangat berguna, penggunaan delay() yang berlebihan seringkali memblokir eksekusi kode lainnya, sehingga programmer tingkat lanjut sering beralih menggunakan teknik non-blocking seperti millis().
Bahasa pemrograman pada Arduino adalah jembatan antara logika perangkat lunak dan dunia fisik elektronika. Dengan menguasai struktur dasar setup() dan loop(), serta memahami fungsi-fungsi wiring yang disederhanakan, siapa pun dapat mulai memprogram mikrokontroler mereka. Meskipun akar bahasanya adalah C/C++, kurva pembelajarannya yang landai menjadikan Arduino alat yang sangat efektif untuk inovasi cepat.