Logo Yayasan Assajadah
Yayasan Assajadah
Orientasi WICE Series

MEMAHAMI KODE ARDUINO

Mengenal lingkungan pengembangan (IDE) dan dasar-dasar bahasa pemrograman C++ untuk memberi "nyawa" pada mikrokontroler.

Fase 01

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.

sketch_nov21a | Arduino Uno
void setup() {
  // kode awal, dieksekusi 1x
}

void loop() {
  // kode utama, berulang terus
}
Anatomi

Siklus Hidup: Setup & Loop

Setiap program Arduino wajib memiliki dua fungsi utama. Jika tidak, program tidak akan berjalan. Mari kita lihat perbedaan fungsi keduanya.

1

Deklarasi Awal: Tempat mengenalkan nama variabel atau modul sebelum sistem menyala.

2

Fungsi setup(): Berjalan HANYA SEKALI saat mikrokontroler menyala. Digunakan untuk mengatur mode pin (sebagai INPUT atau OUTPUT).

3

Fungsi loop(): Berjalan BERULANG-ULANG tanpa henti. Di sinilah logika deteksi sensor dan aktuasi ditempatkan.

anatomi.ino
// 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";
Debugging

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:

  1. Di dalam setup() tulis Serial.begin(9600);
  2. Di dalam loop() tulis Serial.println("Pesan");

Tekan tombol di atas untuk melihat respon Serial Monitor di samping.

Serial Monitor (COM3) 9600 baud
--- Monitor Dimulai ---
Misi Mandiri

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.

Blink Standar
void setup() {
    pinMode(13, OUTPUT);
}

void loop() {
    digitalWrite(13, HIGH);    delay(1000);    digitalWrite(13, LOW);    delay(1000);}
Blink dengan Variabel
// 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);}
Proyek Lanjutan

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).

Arduino dan Sensor 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!
jarak_ultrasonik.ino
// 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);
}