PROJECT 2 - VARIASI MENGGUNAKAN PUSHBUTTON DAN LED
I. TUJUAN
- Memahami dasar-dasar pemrograman Arduino Uno untuk mengendalikan komponen digital
- Mempraktikkan konsep-konsep dasar Pemrograman Arduino Uno, khususnya penggunaan fungsi pinMode(), digitalWrite(), dan delay().
- Mampu merancang dan merakit rangkaian LED yang menyala dan mati secara berurutan (seperti lampu berjalan).
- Mengendalikan komponen keluaran (LED) berdasarkan masukan dari komponen masukan (Tombol Tekan/Push Button - PB).
- Mempelajari dan menerapkan konfigurasi pin digital sebagai masukan (INPUT_ PULLUP) dan keluaran (OUTPUT).
- Memahami penggunaan struktur kontrol (if) untuk pengambilan keputusan dalam program.
II. ALAT DAN BAHAN
# 1. TUGAS 1
(1 PB + 1 LED)
- Komputer / Laptop
- LED ( 1 )
- Resistor ( 1 )
- Pushbutton ( 1 )
- Arduino Uno Virtual
# 2. TUGAS 2
(2 PB + 1 LED ==> ON & OFF)
- Komputer / Laptop
- LED ( 1 )
- Resistor ( 1 )
- Pushbutton ( 2 )
- Arduino Uno Virtual
# 3. TUGAS 3
(2 PB + 2 LED )
PB 1 ON ==> LED 1 ON
PB 2 ON ==> LED 2 ON
- Komputer / Laptop
- LED ( 2 )
- Resistor ( 2 )
- Pushbutton ( 2 )
- Arduino Uno Virtual
# 4. TUGAS 4
(1 PB + 1 LED) ==> TOGGLE
PB TEKAN ==> LED ON
PB TEKAN ==> LED OFF
- Komputer / Laptop
- LED ( 1 )
- Resistor ( 1 )
- Pushbutton ( 1 )
- Arduino Uno Virtual
# 5. TUGAS 5
(2 PB + 1 LED) ==> LOGIKA AND
PB 1 ON ==> LED OFF
PB 2 ON ==> LED OFF
PB 1 & PB 2 ON ==> LED ON
- Komputer / Laptop
- LED ( 1 )
- Resistor ( 1 )
- Pushbutton ( 2 )
- Arduino Uno Virtual
III. GAMBAR KERJA
# 1. TUGAS 1
# 2. TUGAS 2
# 3. TUGAS 3
# 4. TUGAS 4
# 5. TUGAS 5
IV. PRINSIP KERJA
# 1. TUGAS 1
Rangkaian menggunakan Arduino Uno dengan LED pada pin 8 dan tombol pada pin 7 yang memakai mode INPUT_PULLUP, sehingga tombol terbaca HIGH saat tidak ditekan dan LOW saat ditekan. Program terus memantau kondisi tombol: ketika tombol ditekan (LOW), Arduino menyalakan LED; ketika tidak ditekan (HIGH), LED tetap mati. Rangkaian ini bekerja sebagai saklar digital yang menunjukkan alur dasar input → proses → output pada Arduino.
# 2. TUGAS 2
Sistem ini menggunakan Arduino untuk mengontrol LED dengan dua tombol (PBON dan PBOFF). PBON menghidupkan LED, sementara PBOFF mematikan LED. Kedua tombol terhubung ke pin digital Arduino dengan pull-up resistor internal, dan LED terhubung sebagai output. Sistem ini memungkinkan kontrol sederhana LED hanya dengan dua tombol.
# 3. TUGAS 3
Arduino mengontrol dua LED secara terpisah dengan dua tombol. Tombol TOMBOL1 menghidupkan LED1, dan TOMBOL2 menghidupkan LED2. Setiap tombol dan LED terhubung ke pin digital Arduino, dengan tombol dikonfigurasi menggunakan pull-up resistor internal. Sistem ini memungkinkan kontrol independen terhadap dua LED.
# 4. TUGAS 4
Arduino mengontrol LED dengan satu tombol sebagai saklar toggle. Setiap kali tombol ditekan, status LED berubah (mati jadi hidup, atau sebaliknya). Variabel statusled menyimpan status LED. Penekanan tombol mengubah nilai statusled menggunakan operator NOT, dan pin LED diatur sesuai nilai tersebut. Jeda 300ms mencegah bouncing. Sistem ini memungkinkan kontrol LED dengan satu tombol toggle.
# 5. TUGAS 5
Arduino mengontrol LED agar hanya menyala jika dua tombol ditekan bersamaan. Program membaca input dari pin digital, dan LED menyala hanya jika kedua tombol LOW (ditekan), menggunakan logika AND. Jika tidak, LED mati. Sistem ini menerapkan logika AND untuk kontrol LED.
V. PROGRAM/CODE
# 1. TUGAS 1
int LED = 8;
int Tombol = 7;
void setup() {
pinMode(LED, OUTPUT);
pinMode(Tombol, INPUT_PULLUP);
}
void loop() {
if(digitalRead(Tombol) == LOW){
digitalWrite(LED, HIGH);
}
}
# 2. TUGAS 2
int LED = 8;
int PBON = 7;
int PBOFF = 6;
void setup() {
pinMode(PBON, INPUT_PULLUP);
pinMode(PBOFF, INPUT_PULLUP);
pinMode(LED, OUTPUT);
}
void loop() {
if(digitalRead(PBON) == LOW){
digitalWrite(LED, HIGH);
}
if(digitalRead(PBOFF) == LOW){
digitalWrite(LED, LOW);
}
}
# 3. TUGAS 3
int LED1 = 8;
int LED2 = 7;
int TOMBOL1 = 12;
int TOMBOL2 = 13;
void setup() {
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(TOMBOL1, INPUT_PULLUP);
pinMode(TOMBOL2, INPUT_PULLUP);
}
void loop() {
if(digitalRead(TOMBOL1) == LOW){
digitalWrite(LED1, HIGH);
}
if(digitalRead(TOMBOL2) == LOW){
digitalWrite(LED2, HIGH);
}
}
# 4. TUGAS 4
int LED = 8 ;
int PB = 6 ;
int statusled = 0;
void setup() {
pinMode(LED, OUTPUT);
pinMode(PB, INPUT_PULLUP);
}
void loop() {
if(digitalRead(PB) == LOW) {
statusled = !statusled;
digitalWrite(LED, statusled);
delay(300);
}
}
# 5. TUGAS 5
int LED = 8;
int PB = 7;
int PBB = 6;
void setup() {
pinMode(LED, OUTPUT);
pinMode(PB, INPUT_PULLUP);
pinMode(PBB, INPUT_PULLUP);
}
void loop() {
if(digitalRead(PB) == LOW && digitalRead(PBB) == LOW)
digitalWrite(LED, HIGH);
else(digitalWrite(LED, LOW));
}
VI. KESIMPULAN
Proyek ini berhasil mendemonstrasikan kontrol I/O digital dasar pada mikrokontroler, di mana Tombol Tekan (PB) sebagai masukan mengendalikan LED sebagai keluaran. Keberhasilan ini didukung oleh pemrograman yang berfokus pada dua fungsi utama: void setup() dan void loop(). Dalam void setup(), konfigurasi pin dilakukan secara krusial; pin LED diatur sebagai OUTPUT untuk mengirimkan daya, sedangkan pin tombol diatur sebagai INPUT_PULLUP untuk menjamin logika yang jelas dan stabil (HIGH) ketika tombol tidak ditekan. Selanjutnya, di dalam void loop(), logika kontrol diimplementasikan melalui fungsi digitalRead untuk memonitor status tombol secara terus-menerus. Dengan pernyataan kondisional (if), program secara efektif menerjemahkan penekanan tombol (yang menghasilkan logika LOW) menjadi digitalWrite HIGH untuk menyalakan LED, dan sebaliknya. Jadi kesimpulan dari proyek ini membuktikan bahwa antarmuka elektronik sederhana yang menghubungkan interaksi fisik dengan respons digital dapat dibangun dengan pemahaman yang benar tentang fungsi pinMode, digitalRead, dan digitalWrite.