// Deklarasi variabel untuk menyimpan status tombol (true/false)
bool button;
void setup() {
// Mengatur pin 25 sebagai input dengan pull-up internal
// INPUT_PULLUP memungkinkan penggunaan tanpa resistor eksternal
pinMode(25, INPUT_PULLUP);
// Mengatur pin 26 sebagai output untuk mengontrol perangkat (misalnya LED)
pinMode(26, OUTPUT);
// Memulai komunikasi Serial untuk debugging dengan baud rate 9600
Serial.begin(9600);
}
void loop() {
// Membaca status tombol dari pin 25
// HIGH (1) jika tombol tidak ditekan
// LOW (0) jika tombol ditekan karena fitur pull-up
button = digitalRead(25);
// Mengatur pin 26 sesuai status tombol dengan logika terbalik
// Tombol ditekan (LOW) -> LED menyala (HIGH)
// Tombol tidak ditekan (HIGH) -> LED mati (LOW)
digitalWrite(26, !button);
// Menampilkan status tombol terbalik di Serial Monitor
Serial.println(!button);
// Menunggu 500 ms sebelum pembacaan berikutnya
delay(500);
}
/*
Catatan:
1. Pada ESP32, fitur INPUT_PULLUP memungkinkan resistor pull-up internal diaktifkan,
sehingga tidak perlu menggunakan resistor eksternal untuk membaca tombol.
2. Status tombol akan terbalik karena pull-up:
- HIGH (1): Tombol tidak ditekan.
- LOW (0): Tombol ditekan.
3. Fungsi `digitalWrite(26, !button)` digunakan untuk mengatur LED:
- Tombol ditekan -> LED menyala.
- Tombol tidak ditekan -> LED mati.
4. Delay 500 ms digunakan untuk menghindari pembacaan terlalu sering (debouncing sederhana).
*/