🚀 Program Arduino Pertama

Struktur setup() & loop(), Blink, delay, dan Serial Monitor.

📌 1. Struktur Program Arduino

Setiap program Arduino wajib punya dua fungsi:

void setup() { // Dijalankan SEKALI saat program mulai // (inisialisasi pin, Serial, dsb) } void loop() { // Dijalankan BERULANG-ULANG tanpa henti // (logika utama program) }
⚠️ setup() jalan sekali, loop() jalan terus-menerus (setara while(true)). Di simulator, loop() dianggap berjalan 1 ms per putaran, dan simulasi berhenti otomatis setelah 30 detik (waktu simulasi).

📌 2. Blink: Program Klasik Pertama

Rangkaian LED pada pin 13
Rangkaian LED pada pin 13 — resistor 220 Ω melindungi LED

Menyala-mati LED bawaan (pin 13) setiap 1 detik. Jalankan dan perhatikan Hasil Simulasi di akhir output.

Output:

Tidak ada output Serial — yang penting adalah bagian Hasil Simulasi: pin 13 berubah HIGH/LOW. Karena delay() langsung melompatkan waktu simulasi, 30 detik (waktu simulasi) = 15 kali nyala-mati.

📌 3. Fungsi delay()

delay(ms) menghentikan program selama ms milidetik — semua proses berhenti (LED tidak bisa diubah, tombol tidak bisa dibaca). Ini disebut blocking.

PanggilanArti
delay(1)1 milidetik
delay(100)0,1 detik
delay(1000)1 detik
delay(60000)1 menit
⚠️ Kebiasaan buruk: menumpuk banyak delay() membuat program tidak responsif. Solusinya dibahas di materi Waktu & Kode Non-Blocking.

📌 4. Serial Monitor: "Mata" Programmu

Serial adalah jalur komunikasi antara MCU dan komputer. Serial.println() mencetak teks ke Serial Monitor — di simulator ini, output Serial tampil langsung di kotak output.

// 1. Aktifkan Serial dengan baud rate (kecepatan) 9600 bit/detik Serial.begin(9600); // 2. Cetak teks (println = print + baris baru) Serial.println("Halo dari microcontroller!"); // 3. Cetak angka int nilai = 42; Serial.println(nilai); // 42 Serial.println(nilai, HEX); // 2A Serial.println(nilai, BIN); // 101010 // 4. Cetak desimal Serial.println(3.14159, 2); // 3.14 (2 angka di belakang koma)
Output:

static int i — variabel static di dalam fungsi tidak di-reset setiap loop() dipanggil, sehingga bisa dipakai sebagai penghitung.

📌 5. Membaca Output Simulator

Setiap Run Code menghasilkan dua bagian:

=== Program mulai berjalan === Putaran loop ke-1, LED = OFF ... ============================= HASIL SIMULASI: 10 ms, 10 iterasi loop ============================= 13 (OUTPUT): HIGH
  • Bagian atas — apa yang dicetak Serial (urutan kejadian).
  • Hasil Simulasi — total waktu simulasi, jumlah iterasi loop, dan keadaan akhir semua pin (HIGH/LOW/PWM). Ini berguna untuk memverifikasi pin output tanpa melihat papan fisik.

🧠 Latihan

  1. Ubah program Blink: LED nyala 2 detik, mati 0,5 detik.
  2. Buat program yang mencetak angka 1 sampai 100 ke Serial.
  3. Buat program "lampu lalu lintas": pin 12 (merah) 5 detik, pin 11 (kuning) 2 detik, pin 10 (hijau) 5 detik, berulang. Cetak statusnya ke Serial.
  4. Cetak angka 100 ke Serial dalam format desimal, heksadesimal, dan biner.