Minggu, 28 April 2024

Tugas Pendahuluan 1 (MODUL 3)






1. Prosedur
[Kembali]

    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 [Kembali]

Hardware

1. Arduino Uno

2. Dipswitch

3. Max7219

4. Dot Matrix

Diagram Blok


3. Rangkaian simulasi dan prinsip kerja [Kembali]

Rangkaian percobaan sebelum disimulasi


Rangkaian percobaan setelah disimulasi


Prinsip Kerja

Set pengujian 6 modul 3 mencakup 2 unit Arduino, sakelar 18-pin, maks 7219, dan matriks titik 8x8. Arduino yang terhubung ke dip switch dilaporkan sebagai master (pengontrol) dalam program, dan Arduino terhubung ke max 7219 dan dot matriks dilaporkan sebagai slave (dikendalikan) dalam program. Prinsip operasinya adalah ketika rangkaian bekerja, saklar celup yang diprogram sebagai master mengontrol keluaran matriks yang diprogram sebagai budak, ketika pin pertama dari saklar celup diaktifkan, baris pertama dari matriks titik. menyala dan ketika pin pertama saklar celup mati, baris pertama dot matriks mati dan begitu pula yang lainnya di sepanjang pin baris..

4. Flowchart dan listing program [Kembali]

Flowchart


Listing Program

Master:
//Master
#include <SPI.h>

const int SS_PIN = 10; // Slave Select pin
const int DIP_Pins[] = {2, 3, 4, 5, 6, 7, 8, 9}; // Pin DIP switch terhubung ke Arduino
byte patterns[8] = {0}; // Pola LED untuk ditampilkan

void setup() {
SPI.begin();
pinMode(SS_PIN, OUTPUT);
digitalWrite(SS_PIN, HIGH); // Tidak memilih slave saat ini
for (int i = 0; i < 8; i++) {
pinMode(DIP_Pins[i], INPUT_PULLUP); // Mengatur pin DIP switch sebagai input dengan pull-up resistor
}
}

void loop() {
// Membaca status DIP switch dan mengupdate pola LED
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
}
}

// Mengirim data pola LED ke slave
digitalWrite(SS_PIN, LOW); // Memilih slave
for (int i = 0; i < 8; i++) {
SPI.transfer(patterns[i]);
}
digitalWrite(SS_PIN, HIGH); // Melepas slave
delay(100); // Delay untuk tampilan LED stabil
}

Slave:
//Slave
#include <SPI.h>
#include <LedControl.h>

const int SS_PIN = 10; // Slave Select pin
LedControl lc = LedControl(2, 3, 4, 1); // Pin DIN, CLK, LOAD (CS), dan jumlah Dot Matrix yang dihubungkan ke Arduino

void setup() {
  SPI.begin();
  pinMode(SS_PIN, INPUT); // SS_PIN sebagai input agar Arduino berperan sebagai slave
  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() {
  if (digitalRead(SS_PIN) == LOW) { // Jika dipilih oleh master
    byte patterns[8];
    // Menerima data pola LED dari master
    for (int i = 0; i < 8; i++) {
      patterns[i] = SPI.transfer(0);
    }
    // Menampilkan pola LED pada dot matrix
    for (int row = 0; row < 8; row++) {
      lc.setRow(0, row, patterns[row]);
    }
  }
}

5. Kondisi [Kembali]

Percobaan 6 tanpa kondisi : setiap pin dipswitch on maka tiap baris dot matrix on.

6. Video simulasi [Kembali]




7. Link Download [Kembali]
Download HTML klik disini
Download Simulasi Rangkaian klik disini
Download Video Praktikum klik disini
Download Listing Program klik disini
Download Library Arduino Uno klik disini
Donwload Datasheet Arduino Uno klik disini
Donwload Datasheet Max7219 klik disini
Donwload Datasheet Dot Matrix klik disini
Download Datasheet Dipswitch klik disini











Tidak ada komentar:

Posting Komentar

Entri yang Diunggulkan

  [ MENUJU AKHIR ] [KEMBALI KE MENU SEBELUMNYA] DAFTAR ISI 1. Pendahuluan 2. Tujuan 3. Alat dan Bahan 4. Dasar Teori 5. Perc...