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