LA1M2







Percobaan 5 Kondisi 2

Semua Switch pull-down, switch 1 dan 3 motor ke kanan, switch 1 dan 4 panah ke kanan

1.Prosedur

Langkah-langkah percobaan :

1. Rangkai semua komponen sesuai kondisi yang dipilih

2. buat program di aplikasi arduino IDE

3. setelah selesai masukkan program ke arduino di proteus

4. jalankan program pada simulasi dan cobakan sesuai dengan modul dan kondisi

5. Selesai

2. Hardware dan Diagram Blok

  • dipswitch
  • arduino una
  • resitor 
  • power supply
  • ground
  • IC Max7219 
  • LED dot matrix


3. Rangkaian Simulasi dan Prinsip Kerja

    Pada percobaan ini terdapat adanya kondisi interupt pada codingan arduino ide, ketika interupt digunakan maka rangkaian akan berhenti dan akan bekerja sesuai dengan kondisi interupt nya. interupt dibuat untuk mendahulukan kondisi yang dianggap sangat perlu. ketika interupt diaktifkan maka adanya riset pada percobaan praktikum.


A. Flowchart


B. Listing Program

#include <LedControl.h>

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 pattern5[] = {B11111110, B10000000, B10000000, B11111100, B00000010, B00000010, B00000010, B11111100}; // Pola untuk angka 5
byte pattern7[] = {B11111110, B00000010, B00000010, B00000010, B00000010, B00000010, B00000010, B00000010}; // Pola untuk angka 7

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() {
  boolean anySwitchActive = false; // Flag untuk menandakan apakah salah satu switch aktif

  // Membaca status DIP switch
  for (int i = 0; i < 8; i++) {
    if (digitalRead(DIP_Pins[i]) == LOW) {
      anySwitchActive = true; // Setel flag jika salah satu switch aktif
      break; // Hentikan iterasi jika sudah ditemukan switch aktif
    }
  }

  // Menampilkan pola LED pada dot matrix sesuai dengan status switch
  if (anySwitchActive) {
    displayNumber(pattern5); // Menampilkan angka 5 pada dot matrix
    delay(1000); // Delay agar angka 5 ditampilkan selama 1 detik
    displayNumber(pattern7); // Menampilkan angka 7 pada dot matrix
    delay(1000); // Delay agar angka 7 ditampilkan selama 1 detik
    displayNumber(pattern7); // Menampilkan angka 7 pada dot matrix
    delay(1000); // Delay agar angka 7 ditampilkan selama 1 detik
  } else {
    lc.clearDisplay(0); // Membersihkan dot matrix jika tidak ada switch yang aktif
  }
}

// Fungsi untuk menampilkan pola pada dot matrix
void displayNumber(byte pattern[]) {
  for (int row = 0; row < 8; row++) {
    lc.setRow(0, row, pattern[row]);
  }
}



Semua Switch pull-down, switch 1 dan 3 motor ke kanan, switch 1 dan 4 panah ke kanan.

Tidak ada komentar:

Posting Komentar