Project ini mengembangkan konsep push button dasar jadi 3 pasang tombol dan LED independen. Setiap LED menyala hanya saat tombol pasangannya ditekan, dan mati saat dilepas — ketiganya bekerja terpisah tanpa saling mempengaruhi.
| Komponen | Pin Arduino | Fungsi |
|---|---|---|
| Anoda LED 1 (kaki panjang) | Pin 13 | Menyala saat Tombol 1 ditekan |
| Anoda LED 2 (kaki panjang) | Pin 12 | Menyala saat Tombol 2 ditekan |
| Anoda LED 3 (kaki panjang) | Pin 11 | Menyala saat Tombol 3 ditekan |
| Katoda LED 1, 2, 3 (kaki pendek) | GND (masing-masing lewat resistor 220Ω) | Jalur kembali arus |
| Kaki 1 Push Button 1 | Pin 7 | Membaca status Tombol 1 |
| Kaki 1 Push Button 2 | Pin 6 | Membaca status Tombol 2 |
| Kaki 1 Push Button 3 | Pin 5 | Membaca status Tombol 3 |
| Kaki 2 (diagonal) tiap Push Button | GND | Jalur ground tombol |
Pasang 3 LED di breadboard. Tiap LED, hubungkan kaki panjang (anoda) ke pin sesuai tabel melalui resistor 220Ω, lalu kaki pendek (katoda) ke jalur GND. Pasang 3 push button, satu kaki tiap tombol ke pin sesuai tabel, kaki diagonalnya ke GND. Tidak perlu resistor tambahan untuk tombol karena memakai pull-up internal Arduino.
Sambungkan Arduino ke laptop pakai kabel USB, pastikan board dan port sudah dipilih dengan benar di menu Tools.
Salin kode di bawah ini ke Arduino IDE, klik tombol Upload, dan tunggu sampai muncul tulisan “Done uploading”.
// Created by Irham Azhari Aulia
// Program: LED menyala saat Push Button ditekan
// Pin 13 = LED, Pin 2 = Push Button
const int tombolPin1 = 7; // Pin push button
const int tombolPin2 = 6; // Pin push button
const int tombolPin3 = 5; // Pin push button
const int ledPin1 = 13; // Pin LED
const int ledPin2 = 12; // Pin LED
const int ledPin3 = 11; // Pin LED
int statusTombol1 = 0; // Variabel penyimpan status pembacaan tombol
int statusTombol2 = 0; // Variabel penyimpan status pembacaan tombol
int statusTombol3 = 0; // Variabel penyimpan status pembacaan tombol
void setup() {
pinMode(ledPin1, OUTPUT); // LED sebagai output
pinMode(ledPin2, OUTPUT); // LED sebagai output
pinMode(ledPin3, OUTPUT); // LED sebagai output
pinMode(tombolPin1, INPUT_PULLUP); // Tombol sebagai input dengan pull-up internal
pinMode(tombolPin2, INPUT_PULLUP); // Tombol sebagai input dengan pull-up internal
pinMode(tombolPin3, INPUT_PULLUP); // Tombol sebagai input dengan pull-up internal
}
void loop() {
statusTombol1 = digitalRead(tombolPin1);
if (statusTombol1 == LOW) { // LOW = tombol ditekan (karena INPUT_PULLUP)
digitalWrite(ledPin1, HIGH); // LED menyala
} else {
digitalWrite(ledPin1, LOW); // LED mati
}
statusTombol2 = digitalRead(tombolPin2);
if (statusTombol2 == LOW) { // LOW = tombol ditekan (karena INPUT_PULLUP)
digitalWrite(ledPin2, HIGH); // LED menyala
} else {
digitalWrite(ledPin2, LOW); // LED mati
}
statusTombol3 = digitalRead(tombolPin3);
if (statusTombol3 == LOW) { // LOW = tombol ditekan (karena INPUT_PULLUP)
digitalWrite(ledPin3, HIGH); // LED menyala
} else {
digitalWrite(ledPin3, LOW); // LED mati
}
}
Program ini mengulang pola yang sama sebanyak 3 kali di dalam loop(): baca status tombol, cek apakah LOW (ditekan), lalu nyalakan atau matikan LED pasangannya. Karena setiap pasangan tombol-LED punya variabel dan pin sendiri-sendiri, ketiganya bekerja independen — menekan Tombol 1 tidak mempengaruhi LED 2 atau LED 3.
Perhatikan pengulangan pola kode ini. Semakin banyak pasangan tombol-LED yang ditambahkan, kode akan semakin panjang dan repetitif — ini jadi alasan bagus untuk nanti belajar array dan for-loop supaya kode lebih ringkas.