← Daftar materi Arduino

Bab 9 · Arduino Uno R3

Percabangan, Perulangan, dan Fungsi pada Arduino

Latihan if, else, for, dan fungsi dengan tombol serta LED bawaan Arduino Uno.

Saat program harus memilih

Pada program tombol, LED menyala hanya jika tombol ditekan. Keputusan seperti ini ditulis dengan if dan else. Siapkan tombol yang menghubungkan pin 2 ke GND ketika ditekan. Kita memakai INPUT_PULLUP, sehingga tombol yang dilepas terbaca HIGH dan tombol yang ditekan terbaca LOW.

Contoh utuh: tiga kedipan saat tombol ditekan

const int PIN_TOMBOL = 2;
const int PIN_LED = LED_BUILTIN;

void kedip(int banyak) {
  for (int i = 0; i < banyak; i++) {
    digitalWrite(PIN_LED, HIGH);
    delay(200);
    digitalWrite(PIN_LED, LOW);
    delay(200);
  }
}

void setup() {
  pinMode(PIN_TOMBOL, INPUT_PULLUP);
  pinMode(PIN_LED, OUTPUT);
}

void loop() {
  bool ditekan = digitalRead(PIN_TOMBOL) == LOW;
  if (ditekan) {
    kedip(3);
  } else {
    digitalWrite(PIN_LED, LOW);
  }
}

Jika tombol ditahan, tiga kedipan akan diulang lagi. Program ini belum mendeteksi satu kejadian penekanan; ia membaca keadaan tombol setiap kali loop berjalan. Selama rangkaian kedipan berlangsung, perubahan tombol belum dibaca lagi.

Cara membaca for

int i = 0 dijalankan sekali saat perulangan dimulai. i < banyak diperiksa sebelum setiap putaran. i++ menambah i setelah putaran selesai. Untuk banyak = 3, isi blok berjalan pada i = 0, 1, dan 2. Penghitung pendek seperti i wajar dipakai untuk perulangan sederhana.

Fungsi membantu memisahkan pekerjaan

kedip adalah nama fungsi, banyak adalah parameter, dan kedip(3) memberikan nilai 3 ke parameter tersebut. void berarti fungsi ini tidak mengembalikan nilai. Fungsi dapat juga menghitung dan mengembalikan hasil, misalnya:

int tambahDua(int angka) {
  return angka + 2;
}
// Contoh pemakaian di dalam loop():
// int hasil = tambahDua(5);  // hasil berisi 7

Lebih dari satu syarat

Gunakan && ketika kedua syarat harus benar, || jika cukup salah satunya, dan ! untuk membalik nilai benar/salah. Contohnya, cahaya < 400 && modeOtomatis berarti lampu hanya boleh menyala saat gelap sekaligus mode otomatis aktif. Untuk beberapa pilihan berurutan, gunakan if, else if, lalu else.

Latihan

Ganti kedip(3) menjadi kedip(5). Lalu ubah program agar tombol yang dilepas membuat LED menyala terus. Perkirakan hasilnya dulu sebelum mengunggah. Jika ingin tombol tetap responsif selama LED berkedip, lanjutkan ke materi millis().