LATIHAN PENGULANGAN PROGRAM ARDUINO
Kode Arduino yang Anda bagikan berfungsi untuk mengatur
kecepatan kedipan dua LED secara bergantian menggunakan dua tombol.
Berikut adalah penjelasan detail mengenai cara
kerja logika program tersebut:
Analisis Komponen & Konfigurasi Pin
- Tombol
1 (Pin 2):
Dikonfigurasi sebagai INPUT_PULLUP, artinya pin ini bernilai HIGH (1) secara bawaan dan akan
bernilai LOW (0) saat tombol ditekan.
Tombol ini berfungsi untuk memperlambat kedipan.
- Tombol
2 (Pin 3):
Dikonfigurasi sebagai INPUT_PULLUP. Tombol ini berfungsi untuk mempercepat
kedipan.
- LED
1 & LED 2 (Pin 4 & 5): Dikonfigurasi sebagai OUTPUT untuk menyalakan dan
mematikan LED secara bergantian.
Cara Kerja Logika Program
- Nilai
Awal:
Variabel tunda (waktu jeda/delay)
diinisialisasi sebesar 500 milidetik (0,5 detik).
- Menambah
Jeda (Memperlambat): Ketika tombol pada Pin 2 ditekan (digitalRead(2)==0) dan nilai tunda masih di bawah 2000, maka
nilai tunda akan ditambah 50
milidetik setiap siklusnya. Batas maksimal jeda adalah 2000 ms (2
detik).
- Mengurangi
Jeda (Mempercepat): Ketika tombol pada Pin 3 ditekan (digitalRead(3)==0) dan nilai tunda masih di atas 50, maka
nilai tunda akan dikurangi 50
milidetik. Batas minimal jeda adalah 50 ms.
- Efek
Flip-Flop: LED
pada Pin 4 dan Pin 5 akan menyala bergantian dengan durasi mati/nyala
sesuai dengan nilai variabel tunda terbaru.
Catatan untuk Pengembangan (Tips)
Karena fungsi delay(tunda) memblokir jalannya program (blocking code),
pembacaan tombol hanya akan terjadi setelah satu siklus kedipan selesai
(total waktu tunggu 2 x tunda). Jika Anda menekan tombol dan
responsnya terasa lambat, hal itu disebabkan oleh efek delay tersebut.
