Kendali LED dengan Tombol Tekan ESP32 (Tekan)
LED menyala ketika tombol ditekan dan mati ketika dilepas. Menunjukkan cara memakai pin input digital ESP32 dan resistor pull-up internalnya. Mode INPUT_PULLUP membuat resistor eksternal tidak diperlukan.

Video
Skema rangkaian

Kode sumber
1// ─────────────────────────────────────────
2// BlueGrays · bluegrays.com
3// Kendali LED dengan Tombol Tekan ESP32 (Tekan)
4// ─────────────────────────────────────────
5// LED tetap nyala selama tombol ditahan dan mati ketika dilepas. Pin
6// tombol memakai pull-up internal (INPUT_PULLUP), jadi tidak perlu
7// resistor eksternal.
8//
9// Pin:
10// GPIO 5 -> LED merah (dengan resistor 220 ohm)
11// GPIO 4 -> Tombol (kaki lainnya ke GND)
12
13const int LED_PIN = 5; // Output LED
14const int BUTTON_PIN = 4; // Input tombol
15
16void setup() {
17 pinMode(LED_PIN, OUTPUT);
18 pinMode(BUTTON_PIN, INPUT_PULLUP); // Membaca HIGH ketika tidak ditekan
19}
20
21void loop() {
22 // Tombol yang ditekan menarik pin ke GND: LOW = ditekan
23 if (digitalRead(BUTTON_PIN) == LOW) {
24 digitalWrite(LED_PIN, HIGH);
25 } else {
26 digitalWrite(LED_PIN, LOW);
27 }
28}
29
FAQ
Bagaimana cara menyambungkan tombol dengan INPUT_PULLUP?
Satu kaki tombol disambung ke pin GPIO, dan kaki lainnya ke GND. Resistor pull-up internal menahan pin di HIGH; ketika tombol ditekan, pin ditarik ke GND dan terbaca LOW. Tidak perlu resistor eksternal.
Kenapa logikanya terbalik?
Ketika resistor pull-up dipakai, nilainya terbaca HIGH ketika tombol tidak ditekan dan LOW ketika ditekan. Karena itu kondisi 'if (digitalRead(button) == LOW)' di kode menandakan bahwa tombol sedang ditekan.
Pin mana yang tidak punya pull-up internal?
GPIO 34, 35, 36, dan 39 hanya pin input dan tidak punya resistor pull-up atau pull-down internal. Jika kamu ingin memakai tombol di pin-pin ini, kamu harus menambahkan resistor eksternal 10 kΩ.
Bisakah aku mengganti tombol dengan sensor sentuh?
Bisa, ESP32 punya pin sentuh bawaan (mis. GPIO 4, 13, 14, 15, 27). Kamu bisa memakai `touchRead()` untuk mendeteksi sentuhan pada kabel atau pelat logam seolah-olah itu tombol.
