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.