Tugas Pendahuluan Modul 1 (Percobaan 3)


Percobaan 3 Kondisi 7

Dipswitch dan Led Dot Matriks

1. Prosedur [Kembali]

  • Rangkai semua komponen 
  • Buat program di aplikasi arduino IDE
  • Setelah selesai masukkan program ke arduino 
  • Jalankan program pada simulasi dan cobakan sesuai kondisi


  • Rangkaian




  • Prinsip Kerja
     Pada rangkaian ini digunakan sebuah Arduino Uno (Atmega328) yang mendapat input dari pin d11-d13 yang terhubung dengan 3Dipswitch sebagai pengatur inputnya. Pada rangkaian ini juga menggunakan IC MAX7219 yang tiga inputnya berasal dari output Arduino Uno, diantara pin itu ialah pin DIN yang terhubung dengan pin d2, pin LOAD yang terhubung dengan pin 4 dan pin CLK yang terhubung dengan pin d3.

      Sementara itu pada output pin DIG0 - DIG7, pin A-G, dan pin DP pada IC MAX7219 terhubung dengan Dot matriks 8x8 seperti yang terlihat pada gambar rangkaian. Pada percobaan 3 kondisi 7 diminta sebuah kondisi dimana "ketika 3 switch aktif dot matrix akan menampilkan d,r,z". Agar dapat menampilkan output yang diminta, dapat diatur dari 3Dipswitch yang terhubung dengan Arduino Uno (Atmega328) yang sebelumnya sudah diberi program dari Arduino IDE berisi tentang defenisi dan posisi pada tiap Dot matriks agar dapat menampilkan output yang diminta, yaitu d, r, dan z.


  • Flowchart


  • Listing Program
#include <LedControl.h> // Library untuk LED Dot Matrix

const int DIP_Pins[] = {13, 12, 11}; // 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]);
  }
}

4. Kondisi [Kembali]

Ketika 3 switch aktif dot matrix akan menampilkan d,r,z 

Komentar