TP MODUL 1


Percobaan 3 Kondisi 7
DIP SWITCH DAN LED DOT MATRIX

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 percobaan 3 Kondisi 7 diminta untuk ketika 3 switch aktif dot matrix akan menampilkan d,r,z.
Disini kita menggunakan 1 buah DIPSW_3 yang mana terhubung ke arduino pin digital 11,12,13 dan dimana DIPSW_3 terhubung juga ke ground, fungsi ground disini untuk memberikan logika 0 atau perintah untuk mematikan. Pada percobaan 3 kondisi 7 ini akan ditampilkan melalui dotmatrix 8x8 terkoneksi IC MAX7219 yang terhubung ke arduino pin digital 2,3,4 sebagai inputan. Dimana masing-masing inputannya DIN ke pin d2, Load ke pin d4, dan CLK ke pin d3. Kenapa tidak ke pin digital 0 ataupun 1, karena pin tersebut biasanya digunakan sebagai pin komunikasi. Pada IC MAX7219 juga terdapat pin ISET yg terhubung ke sumber yang terkoneksi resistor, dan DOUT ke ground, dimana fungsi resistor sebagai pengaman untuk dot matriks dan IC agar tidak ada arus berlebih.

  • 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 

x HTML klik disini  
Simulasi  klik disini
Gambar Simulasi  klik disini
Video Simulasi   klik disini
Listring Program  klik disini


Tidak ada komentar:

Posting Komentar