Tugas Pendahuluan 2 (Modul 1)
Percobaan 3
Dip Switch dan 7-Segment
1. Kondisi [Kembali]
Percobaan 5 Kondisi 6
Setiap 1 Switch aktif muncul angka berbeda pada digit ke 1, Setiap 2 Switch aktif muncul angka pada kedua digit.
2. Alat dan Bahan [Kembali]
- Dipswitch-8
- Arduino UNO
- Dual Seven Segment
- Virtual Monitor
- VCC
- Ground
- Resistor
3. Gambar Rangkaian Simulasi [Kembali]
4. Flowchart dan Listing Program [Kembali]
#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
byte DPattern[8] = {
B11111110,
B11111111,
B11000011,
B11000011,
B11000011,
B11000011,
B11111111,
B11111110
};
byte RPattern[8] = {
B11111110,
B11111111,
B11000011,
B11111110,
B11111100,
B11001110,
B11000111,
B11000011
};
byte ZPattern[8] = {
B11111111,
B11111111,
B00000011,
B00001100,
B00011000,
B00110000,
B11111111,
B11111111
};
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 menampilkan pola LED yang sesuai
if (digitalRead(DIP_Pins[0]) == LOW) {
displayPattern(DPattern);
} else if (digitalRead(DIP_Pins[1]) == LOW) {
displayPattern(RPattern);
} else if (digitalRead(DIP_Pins[2]) == LOW) {
displayPattern(ZPattern);
} else {
displayPattern(patterns); // Menampilkan pola normal jika tidak ada switch yang aktif
}
delay(100); // Delay untuk tampilan LED stabil
}
void displayPattern(byte pattern[]) {
// Menampilkan pola LED pada dot matrix
for (int row = 0; row < 8; row++) {
lc.setRow(0, row, pattern[row]);
}
}
6. Video Rangkaian [Kembali]
6. Prinsip Kerja Rangkaian [Kembali]
Rangkaian percobaan ini merupakan rangkaian Dip Switch dan Dual 7-Segment. Dip Switch mengatur keluaran dari Dual 7-Segment. Dimana ketika semua switch pada dip switch berlogika 0, maka tidak akan muncul apapun. Ketika SW1 berlogika 1, maka muncul angka berurutan 0-9 pada digit 1. dan ketika SW1 dan SW2 berlogika 1 atau ON, maka muncul angka 0-9 berurutan pada digit 1 dan 2 sehingga membentuk dual digit counter.