Arduino adalah platform prototyping elektronik yang open-source, mudah digunakan, dan populer di kalangan hobiis, seniman, hingga profesional. Inti dari Arduino adalah mikrokontroler, sebuah chip kecil yang dapat diprogram untuk membaca input dari dunia fisik—seperti sensor cahaya, suhu, atau tombol—dan mengontrol output, seperti menyalakan LED, menggerakkan motor, atau menampilkan informasi di layar. Papan Arduino (misalnya Uno, Nano) berfungsi sebagai papan sirkuit tempat mikrokontroler diletakkan bersama komponen pendukung lainnya.
Untuk memprogram Arduino, kita menggunakan Arduino IDE (Integrated Development Environment). IDE ini adalah perangkat lunak yang memungkinkan kita menulis kode, mengompilasinya (mengubah kode menjadi bahasa yang dimengerti mikrokontroler), dan mengunggahnya (upload) ke papan Arduino melalui kabel USB. Kode yang ditulis di Arduino IDE sebagian besar menggunakan bahasa pemrograman C/C++ yang disederhanakan.
Setiap program Arduino, yang secara resmi disebut "sketch", memiliki dua fungsi utama yang wajib ada: setup() dan loop().
Fungsi ini dieksekusi tepat satu kali ketika papan Arduino dinyalakan atau di-reset. Bagian ini biasanya digunakan untuk menginisialisasi mode pin (apakah pin akan berfungsi sebagai input atau output), memulai komunikasi serial, atau mengatur kondisi awal lainnya.
Setelah setup() selesai, fungsi loop() akan dieksekusi berulang kali tanpa henti selama papan diberi daya. Di sinilah logika utama program Anda berada, di mana mikrokontroler terus-menerus membaca sensor dan mengontrol aktuator sesuai kebutuhan.
Contoh struktur kode minimal:
void setup() {
// Jalankan sekali saat boot: Inisialisasi pin
pinMode(13, OUTPUT);
}
void loop() {
// Jalankan berulang kali: Logika utama
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
}
Pemrograman Arduino sangat bergantung pada fungsi bawaan (built-in functions) yang mempermudah interaksi dengan hardware. Beberapa fungsi yang paling mendasar meliputi:
pinMode(pin, mode): Mengatur pin digital sebagai INPUT atau OUTPUT.digitalWrite(pin, HIGH/LOW): Memberikan tegangan (HIGH/5V) atau mematikan pin (LOW/0V) untuk pin OUTPUT.digitalRead(pin): Membaca status tegangan dari pin INPUT (akan mengembalikan HIGH atau LOW).delay(milliseconds): Menghentikan eksekusi program selama waktu yang ditentukan dalam milidetik.analogRead(pin): Membaca nilai tegangan analog (biasanya antara 0 hingga 1023) pada pin A0-A5.analogWrite(pin, value): Mengirimkan output PWM (Pulse Width Modulation) pada pin yang mendukung.
Program paling klasik dalam dunia Arduino adalah "Blink," yang bertujuan membuat LED internal papan berkedip. Program ini mengajarkan Anda cara menggunakan fungsi pinMode(), digitalWrite(), dan delay(). LED internal pada kebanyakan papan Arduino terhubung ke pin digital 13. Dengan memahami cara membuat LED berkedip, Anda telah menguasai dasar-dasar kontrol waktu dan output digital—fondasi penting sebelum melangkah ke sensor yang lebih kompleks.
Setelah menguasai dasar-dasar ini, Anda siap untuk menghubungkan komponen eksternal seperti resistor, tombol (input), dan sensor suhu, membuka potensi tak terbatas dari prototyping elektronik Anda.