Memahami Pull-Down Resistor dengan Push Button
Praktik sederhana membaca tombol dengan Arduino UNO dan menyalakan LED. Bukan hanya membuat rangkaian bekerja, tetapi memahami mengapa pin input membutuhkan kondisi HIGH atau LOW yang jelas.
🎯 Tujuan Praktik
Pada praktik ini kita akan membuat sebuah push button sebagai input Arduino. Ketika tombol ditekan, LED menyala. Ketika tombol dilepas, LED mati.
Yang lebih penting, kita akan memahami konsep pull-down resistor dan mengapa sebuah pin input tidak boleh dibiarkan dalam kondisi floating.
- Menggunakan digital pin sebagai input.
- Membaca kondisi push button dengan
digitalRead(). - Mengontrol LED menggunakan digital output.
- Memahami fungsi resistor pull-down 10 kΩ.
- Memahami perbedaan HIGH, LOW, dan floating.
🧰 Komponen
| Komponen | Jumlah | Fungsi |
|---|---|---|
| Arduino UNO | 1 | Mikrokontroler |
| Push Button | 1 | Input |
| Resistor 10 kΩ | 1 | Pull-down |
| LED | 1 | Output |
| Resistor 220 Ω | 1 | Membatasi arus LED |
| Breadboard | 1 | Media rangkaian |
| Kabel jumper | Secukupnya | Penghubung |
🔌 Rangkaian
Kita menggunakan pin D2 untuk membaca tombol dan pin D8 untuk mengendalikan LED.
+5V
│
│
┌────┴────┐
│ BUTTON │
└────┬────┘
│
├────────────── D2
│
10 kΩ
│
GND
D8 ──────────[ 220 Ω ]─────────►|──────── GND
LED
📌 Hubungan pin
| Bagian | Hubungkan ke |
|---|---|
| Kaki button 1 | 5V Arduino |
| Kaki button 2 | D2 Arduino |
| Resistor 10 kΩ | D2 → GND |
| Anoda LED | D8 melalui resistor 220 Ω |
| Katoda LED | GND |
🧠 Mengapa Disebut Pull-Down?
Sekarang kita masuk ke konsep utama.
Kata pull-down berasal dari fungsi resistor yang "menarik" tegangan pada pin input ke bawah, yaitu menuju GND.
Ketika tombol tidak ditekan, hubungan dengan 5V terputus. Resistor 10 kΩ kemudian memberikan jalur dari D2 menuju GND.
Button dilepas
5V
│
BUTTON
│
X ← Terputus
D2 ─────[ 10 kΩ ]───── GND
│
↓
"ditarik" ke LOW
Jadi Arduino membaca:
Tombol dilepas → LED mati
Ketika tombol ditekan
Saat tombol ditekan, D2 terhubung ke 5V.
5V
│
BUTTON
│
├────────── D2
│ │
│ ↓
│ HIGH
│
[10 kΩ]
│
GND
Arduino kemudian membaca:
Tombol ditekan → LED menyala
🚫 Apa yang Terjadi Jika Resistor Pull-Down Tidak Ada?
Ini bagian yang sangat penting dalam memahami input digital.
Misalnya rangkaiannya hanya seperti ini:
5V
│
BUTTON
│
└──────── D2
Button dilepas:
D2 ─────── ????
Ketika tombol dilepas, D2 tidak terhubung secara jelas ke 5V maupun GND. Kondisi seperti ini disebut floating input.
Pin input yang floating tidak mempunyai level logika yang ditentukan dengan jelas. Akibatnya pembacaan dapat menjadi tidak stabil dan sensitif terhadap gangguan listrik.
Di sinilah resistor pull-down bekerja:
💻 Program Arduino
int buttonPin = 2;
int ledPin = 8;
void setup() {
pinMode(buttonPin, INPUT);
pinMode(ledPin, OUTPUT);
}
void loop() {
int buttonState = digitalRead(buttonPin);
if (buttonState == HIGH) {
digitalWrite(ledPin, HIGH);
} else {
digitalWrite(ledPin, LOW);
}
}
🔍 Membaca program
Baris berikut menentukan bahwa D2 digunakan sebagai input:
pinMode(buttonPin, INPUT);
Sedangkan D8 digunakan sebagai output:
pinMode(ledPin, OUTPUT);
Kemudian Arduino membaca kondisi D2:
int buttonState = digitalRead(buttonPin);
Jika hasil pembacaan adalah HIGH:
if (buttonState == HIGH) {
digitalWrite(ledPin, HIGH);
}
Artinya: tombol ditekan → D2 HIGH → LED menyala.
📊 Mari Amati Logikanya
🔘 Tombol Dilepas
D2 ditarik ke GND oleh resistor 10 kΩ.
D2 = LOWLED = OFF
🔘 Tombol Ditekan
D2 terhubung ke 5V melalui tombol.
D2 = HIGHLED = ON
🧪 Hands-on Challenge
Setelah rangkaian berhasil, jangan berhenti pada sekadar "LED menyala". Coba beberapa eksperimen berikut.
Eksperimen 1 — Tukar pin LED
Pindahkan LED dari D8 ke D7. Apa yang harus diubah di program?
ledPin.
Eksperimen 2 — Gunakan Serial Monitor
Tambahkan komunikasi serial sehingga Arduino menampilkan HIGH atau LOW ketika tombol berubah.
Eksperimen 3 — Coba tanpa resistor pull-down
Lepaskan resistor 10 kΩ dan amati apakah pembacaan tombol tetap konsisten.
Eksperimen 4 — Pelajari Pull-Up
Arduino juga memiliki resistor pull-up internal. Salah satu cara mengaktifkannya adalah:
pinMode(buttonPin, INPUT_PULLUP);
Pada konfigurasi ini logikanya menjadi terbalik:
| Kondisi | Pull-Down | Pull-Up |
|---|---|---|
| Tombol dilepas | LOW | HIGH |
| Tombol ditekan | HIGH | LOW |
💡 Inti Konsep
Cara paling mudah mengingatnya:
PULL-DOWN
Input ───── resistor ───── GND
│
↓
default LOW
PULL-UP
Input ───── resistor ───── 5V
│
↓
default HIGH
Jadi pada rangkaian kita:
BUTTON → D2 → digitalRead() → IF → LED
Tombol memberikan sinyal HIGH ketika ditekan, sedangkan resistor pull-down memastikan D2 kembali ke LOW ketika tombol dilepas. Dengan demikian Arduino selalu mendapatkan kondisi input yang jelas: HIGH atau LOW, bukan floating.
🚀 Lanjut ke Praktik Berikutnya
Setelah memahami push button dan pull-down resistor, langkah berikutnya adalah mengembangkan rangkaian menjadi:
- Push button sebagai saklar LED.
- Two-button control.
- Toggle LED seperti saklar ON/OFF.
- Traffic light dengan push button.
- Counter menggunakan push button.
- Input sensor dan konsep pull-up/pull-down.
Materi hands-on Arduino — PRIATNA.ID
0 Comments