Memahami cara Arduino membaca sinyal digital dari tombol, konsep pull-up/pull-down, dan penggunaannya dalam sistem peringatan/alarm.
Bayangkan Arduino sebagai manusia. Di pertemuan sebelumnya, Arduino kita tugaskan untuk "berbicara" menggunakan cahaya (menyalakan LED melalui OUTPUT). Nah, sekarang kita akan mengajari Arduino untuk "mendengarkan" sekitarnya.
Jika digitalWrite() digunakan untuk MENGELUARKAN tegangan, maka digitalRead()digunakan untuk MEMBACA tegangan dari luar. Pin digital Arduino hanya mengerti dua kondisi:
Komponen yang paling sering kita gunakan untuk memberi input digital adalah Pushbutton (tombol tekan). Tombol ini berfungsi seperti jembatan yang bisa menyambung (saat ditekan) dan memutus (saat dilepas) arus listrik.
Jika kita hanya menyambungkan pin Arduino dengan tombol dan Ground, ada masalah besar! Saat tombol dilepas, pin Arduino tidak tersambung kemana-mana. Kondisi ini disebut Floating (Mengambang).
Solusinya adalah menggunakan Resistor Pull-Up atau Pull-Down:
pinMode(pin, INPUT_PULLUP). Ini cara paling praktis!Bagaimana kita tahu apa yang dibaca oleh Arduino? Di sinilah Serial Monitor berperan. Serial Monitor seperti "layar chat" antara kita dengan Arduino di komputer.
Kita bisa meminta Arduino "mengetik" hasil bacaan tombolnya ke layar menggunakan perintah Serial.println(). Ini sangat berguna untuk debugging (mencari kesalahan) saat tombol kita tidak merespons seperti yang diharapkan.
Serial.begin(9600); - Ditulis di setup() untuk menyalakan fitur komunikasi. Angka 9600 adalah kecepatannya.Serial.print("Halo"); - Menulis kata "Halo".Serial.println("Halo"); - Menulis kata "Halo" lalu pindah ke baris baru (enter).Jika kita membuat kode "LED menyala selama tombol ditekan, mati saat dilepas", itu sangat mudah. Tapi bagaimana jika kita ingin membuat "Sistem Toggle" seperti saklar lampu senter? Tekan sekali nyala, lepas tetap nyala. Tekan lagi mati.
Untuk melakukannya, Arduino perlu punya "ingatan". Arduino harus tahu apakah sebelumnya tombol sudah ditekan atau belum. Kita menggunakan konsep State Machine sederhana dengan menggunakan variabel bool (True/False).
Kita juga harus mendeteksi yang namanya Falling Edge: momen spesifik ketika tombol baru saja berubah dari tidak ditekan (HIGH) menjadi ditekan (LOW).
Mari kita gabungkan semuanya! Kita akan membuat sistem alarm yang menggunakan tombol. Jika tombol ditekan, alarm aktif (LED Merah menyala dan Serial Monitor memberi peringatan). Jika ditekan lagi, alarm mati.
Solusi:Ini disebut fenomena 'Bouncing'. Tombol fisik memiliki per mekanik yang memantul. Pastikan delay(50) untuk 'Debounce' sudah ditambahkan di kode.
Solusi:Periksa sambungan tombol. Pastikan kabel pin 7 tersambung secara diagonal terhadap kabel GND pada pushbutton 4 kaki.
Solusi:Pastikan pinMode(LED_RED, OUTPUT) sudah ada di setup. Jika tidak di-set OUTPUT, pin Arduino tidak bisa mengeluarkan arus yang cukup.
Modifikasi kode di atas dengan menambahkan satu tombol lagi di Pin 6. Buatlah agar:
Petunjuk: Kamu tidak perlu variabel toggle (!alarmAktif) lagi. Cukup atur nilai alarmAktif menjadi true saat tombol 1 ditekan, dan false saat tombol 2 ditekan.
Luangkan 2–3 menit untuk menjawab pertanyaan di bawah secara jujur.
Apa yang paling mengejutkan atau menarik hari ini?
Apa hal baru yang kamu pelajari tentang cara kerja tombol tekan dan logika Arduino hari ini?
Apa yang masih membingungkan atau ingin kamu pahami lebih dalam?
Apakah konsep 'logika terbalik' pada INPUT_PULLUP masih membingungkan bagimu?
Apa yang ingin kamu coba atau pelajari minggu depan?
Bagaimana sistem logika toggle alarm ini bisa diaplikasikan di alat-alat sekitarmu?
Refleksi tidak dinilai — ini adalah ruang jujurmu untuk berpikir.