Kondisi 1 (1 Â button menghidupkan 3 LED, 2 button menghidupkan 6 LED blink)
Code Program
// Definisi pin untuk tombol
const int button1Pin = A0;
const int button2Pin = A1;
// Definisi pin untuk LED
const int ledPins1[] = {2, 3, 4}; // LED untuk button1
const int ledPins2[] = {5, 6, 7, 8, 9, 10}; // LED untuk button2
// Variabel untuk menyimpan status tombol
int button1State = 0;
int button2State = 0;
void setup() {
 // Inisialisasi pin untuk tombol sebagai input
 pinMode(button1Pin, INPUT);
 pinMode(button2Pin, INPUT);
 // Inisialisasi pin untuk LED sebagai output
 for (int i = 0; i < 3; i++) {
  pinMode(ledPins1[i], OUTPUT);
 }
 for (int i = 0; i < 6; i++) {
  pinMode(ledPins2[i], OUTPUT);
 }
}
void loop() {
 // Membaca status tombol
 button1State = digitalRead(button1Pin);
 button2State = digitalRead(button2Pin);
 // Jika tombol pertama ditekan, hidupkan 3 LED
 if (button1State == HIGH) {
  for (int i = 0; i < 3; i++) {
   digitalWrite(ledPins1[i], HIGH);
  }
 } else {
  for (int i = 0; i < 3; i++) {
   digitalWrite(ledPins1[i], LOW);
  }
 }
 // Jika tombol kedua ditekan, buat 6 LED berkedip
 if (button2State == HIGH) {
  for (int i = 0; i < 6; i++) {
   digitalWrite(ledPins2[i], HIGH);
  }
  delay(500); // Tunggu 500 milidetik
  for (int i = 0; i < 6; i++) {
   digitalWrite(ledPins2[i], LOW);
  }
  delay(500); // Tunggu 500 milidetik
 } else {
  for (int i = 0; i < 6; i++) {
   digitalWrite(ledPins2[i], LOW);
  }
 }
}
Prinsip Kerja
Program ini dirancang untuk mengontrol LED berdasarkan input dari dua tombol yang terhubung ke papan microcontroller, seperti Arduino. Berikut adalah penjelasan prinsip kerja dari kode tersebut:
Di dalam fungsi setup(), program menginisialisasi dua pin sebagai input untuk tombol dan enam pin sebagai output untuk LED. Pin-pin ini didefinisikan untuk tombol dan LED yang berbeda dengan tujuan masing-masing. Setelah inisialisasi, fungsi loop() dijalankan secara berulang.
Fungsi loop() dimulai dengan membaca status dari kedua tombol menggunakan digitalRead(). Status dari tombol pertama (dihubungkan ke pin A0) dan tombol kedua (dihubungkan ke pin A1) disimpan dalam variabel button1State dan button2State.
Jika tombol pertama ditekan (status button1 State adalah HIGH), maka tiga LED yang terhubung ke pin-pin tertentu akan dinyalakan. Ini dilakukan dengan menggunakan perulangan for yang mengatur semua pin LED menjadi HIGH. Sebaliknya, jika tombol pertama tidak ditekan, semua LED tersebut dimatikan dengan mengatur pin-pin LED menjadi LOW.
Untuk tombol kedua, jika tombol ini ditekan (status button2State adalah HIGH), maka semua enam LED yang terhubung ke pin-pin tertentu akan berkedip. Ini dicapai dengan menyalakan LED, menunggu selama 500 milidetik, kemudian mematikan LED dan menunggu lagi selama 500 milidetik. Proses ini diulang setiap kali tombol kedua ditekan. Jika tombol kedua tidak ditekan, semua LED tersebut akan dimatikan.
Flowchart
Link Download
Gambar Rangkaian DisiniÂ
Program Disini
Flowchart Disini
File Rangkaian Disini
Kondisi 2 (1 Â button menghidupkan 6 LED, 2 button menghidupkan 3 LED blink)
Code Program
// Definisi pin untuk tombol
const int button1Pin = A0;
const int button2Pin = A1;
// Definisi pin untuk LED
const int ledPins1[] = {2, 3, 4, 5, 6, 7}; // LED untuk button1
const int ledPins2[] = {8, 9, 10}; Â Â Â Â // LED untuk button2
// Variabel untuk menyimpan status tombol
int button1State = 0;
int button2State = 0;
void setup() {
 // Inisialisasi pin untuk tombol sebagai input
 pinMode(button1Pin, INPUT);
 pinMode(button2Pin, INPUT);
 // Inisialisasi pin untuk LED sebagai output
 for (int i = 0; i < 6; i++) {
  pinMode(ledPins1[i], OUTPUT);
 }
 for (int i = 0; i < 3; i++) {
  pinMode(ledPins2[i], OUTPUT);
 }
}
void loop() {
 // Membaca status tombol
 button1State = digitalRead(button1Pin);
 button2State = digitalRead(button2Pin);
 // Jika tombol pertama ditekan, hidupkan 6 LED
 if (button1State == HIGH) {
  for (int i = 0; i < 6; i++) {
   digitalWrite(ledPins1[i], HIGH);
  }
 } else {
  for (int i = 0; i < 6; i++) {
   digitalWrite(ledPins1[i], LOW);
  }
 }
 // Jika tombol kedua ditekan, buat 3 LED berkedip
 if (button2State == HIGH) {
  for (int i = 0; i < 3; i++) {
   digitalWrite(ledPins2[i], HIGH);
  }
  delay(500); // Tunggu 500 milidetik
  for (int i = 0; i < 3; i++) {
   digitalWrite(ledPins2[i], LOW);
  }
  delay(500); // Tunggu 500 milidetik
 } else {
  for (int i = 0; i < 3; i++) {
   digitalWrite(ledPins2[i], LOW);
  }
 }
}
Prinsip Kerja
Program ini mengontrol LED berdasarkan input dari dua tombol yang terhubung ke papan mikrokontroler, seperti Arduino. Dalam fungsi setup(), pin-pin yang terhubung ke tombol dan LED diinisialisasi; pin untuk tombol sebagai input dan pin untuk LED sebagai output. Fungsi loop() dijalankan secara berulang untuk membaca status dari kedua tombol.
Ketika tombol pertama (terhubung ke pin A0) ditekan, status button1State menjadi HIGH, dan program akan menyalakan semua 6 LED yang terhubung ke pin-pin di array ledPins1. Jika tombol pertama tidak ditekan, LED-LED tersebut akan dimatikan.
Sebaliknya, jika tombol kedua (terhubung ke pin A1) ditekan, status button2State menjadi HIGH. Program akan menyalakan semua 3 LED yang terhubung ke pin-pin di array ledPins2, membuatnya menyala selama 500 milidetik, kemudian mematikannya selama 500 milidetik, dan mengulangi siklus ini untuk menciptakan efek berkedip. Jika tombol kedua tidak ditekan, LED-LED tersebut akan dimatikan.
Flowchart
Link Download
Gambar Rangkaian Disini
Program Disini
Flowchart Disini
File Rangkaian Disini
Baca konten-konten menarik Kompasiana langsung dari smartphone kamu. Follow channel WhatsApp Kompasiana sekarang di sini: https://whatsapp.com/channel/0029VaYjYaL4Spk7WflFYJ2H