#include <LedControl.h> //Library untuk LED Dot Matrix
const int DIP_Pins[] = {13, 12, A0, A1, A2, A3, A4, A5}; // Pin DIP switch terhubung ke Arduino
LedControl lc=LedControl(2,3,4,1); // Pin DIN, CLK, LOAD (CS), dan jumlah Dot Matrix yang dihubungkan ke Arduino
byte patterns[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // Pola LED untuk ditampilkan
void setup() {
for (int i = 0; i < 8; i++) {
pinMode(DIP_Pins[i], INPUT_PULLUP); // Mengatur pin DIP switch sebagai input dengan pull-up resistor
}
lc.shutdown(0,false); // Mengaktifkan display
lc.setIntensity(0,8); // Mengatur kecerahan LED (nilai antara 0 dan 15)
lc.clearDisplay(0); // Membersihkan tampilan dot matrix
}
void loop() {
// Membaca status DIP switch dan mengupdate pola LED
int activeSwitches = 0; // Jumlah saklar yang aktif
for (int i = 0; i < 8; i++) {
if (digitalRead(DIP_Pins[i]) == LOW) {
activeSwitches++; // Menghitung jumlah saklar yang aktif
}
}
// Menampilkan angka 2, k, dan 3 secara berurutan jika 2 saklar aktif
if (activeSwitches == 2) {
byte pattern1[] = { B00011000, B00100110, B00000110, B00001100, B00011000, B00110000, B11111111, B11111111 }; // Pola LED untuk angka 2
byte patternK[] = { B11100000,B11110000,B11011000,B11011000,B11110000,B11100000,B00000000,B00000000}; // Pola LED untuk huruf k
byte pattern3[] = { B00011110, B00100001, B00100001, B00100001, B00100001, B00011110, B00000000, B00000000 }; // Pola LED untuk angka 3
// Menampilkan angka 2
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, pattern1[i]);
delay(100); // Delay untuk efek tampilan
}
// Menampilkan huruf k
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, patternK[i]);
delay(100); // Delay untuk efek tampilan
}
// Menampilkan angka 3
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, pattern3[i]);
delay(100); // Delay untuk efek tampilan
}
} else {
// Menampilkan pola LED sesuai dengan status saklar DIP seperti sebelumnya
for (int i = 0; i < 8; i++) {
if (digitalRead(DIP_Pins[i]) == LOW) {
patterns[i] = B11111111; // Mengatur semua LED menyala jika sakelar diaktifkan
} else {
patterns[i] = 0; // Mengatur semua LED mati jika sakelar tidak diaktifkan
}
}
// Menampilkan pola LED pada dot matrix
for (int row = 0; row < 8; row++) {
lc.setRow(0, row, patterns[row]);
}
}
delay(100); // Delay untuk tampilan LED stabil
}