Senin, 04 Maret 2024

TP 1 Percobaan P3K2



MODUL 1
PERCOBAAN 3 KONDISI 2

1. Prosedur
[Kembali]

+ Rangkai semua komponen sesuai kondisi yang dipilih
+ buat program di aplikasi arduino IDE
+ setelah selesai masukkan program ke arduino di proteus
+ aktifkan 3 switch dan lihat outputan pada Matrix red LED
+ Selesai

2. Hardware dan diagram blok [Kembali]
      a. hardware
                                        

          
1. 100 WATT 0R1
2. DIPSW_8
3. Arduino Uno
4. Matrix 8x8 red
5. Max 7219
6. resistor

            b. Digram Blok





3. Rangkaian Simulasi dan Prinsip kerja [Kembali]



                                        
PRINSIP KERJA

    Saat program dijalankan dan di masukan ke arduino, maka saat kita aktifkan 2 buah switch pada DIPSW akan terbaca oleh arduino uno dan akan di proses, dimana saat yang bersamaan IC MAX7219 akan membaca hasil outputan dari arduino uno dan akan mengirimkan hasil outputan ke setiap kaki yang ada pada Matrix, hasil matrix akan keluar sesuai dengan inputan dan keinginan kita pada program arduino uno nantinya, dimana hasil akan keluar pada matrix dengan lampu berwarna merah.

4. FlowChart [Kembali]

a. 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, k, dan 3 secara berurutan jika 2 saklar aktif
    if (activeSwitches == 2) {
        byte pattern1[] = { B00011000, B00100110, B00000110, B00001100, B00011000, B00110000, B11111111, B11111111 }; // Pola LED untuk angka 2
        byte patternK[] = { B11100000,B11110000,B11011000,B11011000,B11110000,B11100000,B00000000,B00000000}; // Pola LED untuk huruf k
        byte pattern3[] = { B00011110, B00100001, B00100001, B00100001, B00100001, B00011110, B00000000, B00000000 }; // Pola LED untuk angka 3
        
        // Menampilkan angka 2
        for (int i = 0; i < 8; i++) {
            lc.setRow(0, i, pattern1[i]);
            delay(100); // Delay untuk efek tampilan
        }
        // Menampilkan huruf k
        for (int i = 0; i < 8; i++) {
            lc.setRow(0, i, patternK[i]);
            delay(100); // Delay untuk efek tampilan
        }
        // Menampilkan angka 3
        for (int i = 0; i < 8; i++) {
            lc.setRow(0, i, pattern3[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
}

b. Flowchart


Mulai | |--- Switch 1 Aktif? ---| | | Ya Tidak | | |--- Switch 2 Aktif? ---| |--- Switch 2 Aktif? ---| | | | | Ya Ya Ya | | | | Tampilkan "2,k,3" Tampilkan "_,k,3" Tampilkan "_,_,3" | | | | Tidak Tidak Tidak | | | | Tampilkan "2,_,3" Tampilkan "_,_,3" Tampilkan "_,_,3" Selesai


5. Kondisi [Kembali]

Kondisi  →Percobaan 3 Kondisi 2 : (DIP Switch dan LED dot matrix):  Ketika 2 switch aktif dot matrix akan menampilkan kombinasi 2,k,3


6. Video Simulasi [Kembali]




7. Download File [Kembali]

Download HMTL Klik disini
Download Rangkaian Klik disini
Download Video Simulasi klik disini
Download listing Program Klik disini
Download Datasheet ARDUINO UNO klik disini

Tidak ada komentar:

Posting Komentar