Arduino IDE
Sebelum menulis instruksi, kita memerlukan "buku catatan" khusus bernama Arduino IDE (Integrated Development Environment). Di sinilah kita menerjemahkan logika ke dalam bahasa C++ yang dipahami oleh perangkat keras.
-
✓
Verify (Centang)
Mengecek kode apakah ada kesalahan sintaks (typo) tanpa mengirimnya ke alat.
-
➜
Upload (Panah Kanan)
Kompilasi kode dan mentransfernya ke memori mikrokontroler melalui kabel USB.
void setup() { // kode awal, dieksekusi 1x } void loop() { // kode utama, berulang terus }
Siklus Hidup: Setup & Loop
Setiap program Arduino wajib memiliki dua fungsi utama. Jika tidak, program tidak akan berjalan. Mari kita lihat perbedaan fungsi keduanya.
Deklarasi Awal: Tempat mengenalkan nama variabel atau modul sebelum sistem menyala.
Fungsi setup(): Berjalan HANYA SEKALI saat mikrokontroler menyala. Digunakan untuk mengatur mode pin (sebagai INPUT atau OUTPUT).
Fungsi loop(): Berjalan BERULANG-ULANG tanpa henti. Di sinilah logika deteksi sensor dan aktuasi ditempatkan.
// 1. Deklarasi (Global) int pinLampu = 13; // 2. Setup (Persiapan) void setup() { // Pin 13 diset sebagai keluaran daya pinMode(pinLampu, OUTPUT); } // 3. Loop (Aksi Berulang) void loop() { digitalWrite(pinLampu, HIGH); // Nyala delay(1000); // Tunggu 1 dtk digitalWrite(pinLampu, LOW); // Mati delay(1000); // Tunggu 1 dtk }
Variabel: Menyimpan Ingatan Sementara
Mikrokontroler tidak memiliki hard disk yang besar. Kita menggunakan variabel di memori RAM untuk mengingat angka atau huruf secara sementara.
| Tipe Data | Kegunaan / Isi | Contoh Sintaks |
|---|---|---|
| int | Menyimpan angka bulat (integer). Sering dipakai untuk nomor PIN atau hasil sensor. | int jumlahLampu = 5; |
| float | Menyimpan angka desimal (pecahan). Berguna untuk suhu, kelembaban, atau jarak presisi. | float suhuRuangan = 27.5; |
| bool | Menyimpan nilai kebenaran: Benar (true) atau Salah (false). Untuk status ON/OFF. |
bool isMenyala = true; |
| String | Menyimpan teks atau kumpulan huruf. Harap berhati-hati karena memakan banyak memori. | String pesan = "Halo Dunia"; |
Berbicara dengan Arduino: Serial Monitor
Saat alat bekerja, kita tidak tahu apakah sensor membaca dengan benar karena tidak ada layar. Arduino memiliki alat bernama Serial Monitor yang memungkinkan alat mengirim teks kembali ke laptop melalui kabel USB.
Syarat:
- Di dalam
setup()tulisSerial.begin(9600); - Di dalam
loop()tulisSerial.println("Pesan");
Tekan tombol di atas untuk melihat respon Serial Monitor di samping.
Tantangan: LED Berkedip Fleksibel
Kita sudah membahas tipe data integer (int). Tugas Anda adalah mengubah program Blink standar agar waktu jeda (delay) disimpan di dalam sebuah variabel, bukan ditulis langsung di fungsinya.
void setup() { pinMode(13, OUTPUT); } void loop() { digitalWrite(13, HIGH); delay(1000); digitalWrite(13, LOW); delay(1000);}
// Variabel dibuat di luar fungsi int waktuJeda = 500; void setup() { pinMode(13, OUTPUT); } void loop() { digitalWrite(13, HIGH); delay(waktuJeda); // Menggunakan variabel digitalWrite(13, LOW); delay(waktuJeda);}
Melihat dengan Suara: Sensor Ultrasonik
Setelah berhasil mengontrol LED, saatnya mikrokontroler kita bisa "melihat" dunia sekitar layaknya seekor kelelawar, menggunakan sensor jarak ultrasonik (HC-SR04).
Cara Kerja HC-SR04:
- Trig (Trigger): Mengeluarkan suara ultrasonik.
- Echo: Mendengarkan pantulan suara (gema).
- Dengan mengukur waktu tempuh suara, Arduino bisa menghitung jarak objek di depannya!
// Deklarasi pin int trigPin = 9; int echoPin = 10; long durasi; int jarak; void setup() { pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); Serial.begin(9600); // Memulai Serial Monitor } void loop() { // Tembakkan suara digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); // Baca waktu pantulan durasi = pulseIn(echoPin, HIGH); // Hitung jarak (cm) jarak = durasi * 0.034 / 2; // Tampilkan ke layar laptop Serial.print("Jarak: "); Serial.print(jarak); Serial.println(" cm"); delay(500); }