TP 1

*Klik teks untuk menuju

Percobaan III

DIP Switch dan LED dot matrix
1. Prosedur [Kembali]
  • Rangkailah seperti rangkaian berikut
  • Buka Arduino IDE dan masukan listing program
  • Upload program ke arduino
  • aktifkan 3 switch dan amati keluarannya pada LCD

2. Hardaware dan Diagram Blok [Kembali]

  •    1. Arduino Uno

        2. Dip Switch 8



        3. Dot Matrix


        4. MAX7219

        5. Power supply

        6. Ground


    Diagram Blok:




3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]






Gambar 1. Rangkaian Simulasi.

Prinsip Kerja:

    Pada rangkaian percobaan 3 kondisi 6 ini menggunakan Dip Switch dan LED dot matrix. Dip Switch yang berfungsi sebagai input dan Matrix berfungsi sebagai output. Dimana ketika ada tiga buah switch on 1 (High) maka output pada LCD akan menampilkan "2, 2, 4". Dan ketika lebih/kurang dari tiga buah switch yang on  1 (HIGH) maka outputnya akan menyalakan LED pada Matrix sesuai barisan urutan switchnya. 






4. Flowchart dan listing Program [Kembali]

Flowchart :
Flowchart:




Listing Program:
#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
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 mengupdate pola LED
    int activeSwitches = 0; // Jumlah saklar yang aktif
    for (int i = 0; i < 8; i++) {
        if (digitalRead(DIP_Pins[i]) == LOW) {
            activeSwitches++; // Menghitung jumlah saklar yang aktif
        }
    }

    // Menampilkan angka 2, 2, dan 4 secara berurutan jika 3 saklar aktif
    if (activeSwitches == 3) {
        byte pattern1[] = { B00000000, B00011000, B00100110, B00000110, B00001100, B00011000, B00110000, B01111111, }; // Pola LED untuk angka 2
        byte pattern2[] = { B00011000, B00111100, B11000110, B11000110, B11111111, B00000110, B00000110, B00000110 }; // Pola LED untuk angka 4
        
        // Menampilkan angka 2
        for (int i = 0; i < 8; i++) {
            lc.setRow(0, i, pattern1[i]);
            delay(100); // Delay untuk efek tampilan
        }
        // Menampilkan angka 2
        for (int i = 0; i < 8; i++) {
            lc.setRow(0, i, pattern1[i]);
            delay(200); // Delay untuk efek tampilan
        }
        // Menampilkan angka 4
        for (int i = 0; i < 8; i++) {
            lc.setRow(0, i, pattern2[i]);
            delay(100); // Delay untuk efek tampilan
        }
    } else {
        // Menampilkan pola LED sesuai dengan status saklar DIP seperti sebelumnya
        for (int i = 0; i < 8; i++) {
            if (digitalRead(DIP_Pins[i]) == LOW) {
                patterns[i] = B11111111; // Mengatur semua LED menyala jika sakelar diaktifkan
            } else {
                patterns[i] = 0; // Mengatur semua LED mati jika sakelar tidak diaktifkan
            }
        }

        // Menampilkan pola LED pada dot matrix
        for (int row = 0; row < 8; row++) {
            lc.setRow(0, row, patterns[row]);
        }
    }

    delay(100); // Delay untuk tampilan LED stabil
}

5. Kondisi [Kembali]

  Ketika 3 switch aktif dot matrix akan menampilkan kombinasi 2,2,4

6. Video Simulasi [Kembali]




7. Download File [Kembali]
HTML Disini
Simulasi Disini
Gambar Hardware Disini
Video Simulasi Disini
Listing Program Disini

No comments:

Post a Comment

almajri

  Bahan Presentasi Ini Dibuat Untuk Memenuhi  Tugas Mata Kuliah Sistem Digital Dosen : Darwison, M.T Oleh : ALMAJRI KUSMAIDI 2110952003 Ju...