Minggu, 28 April 2024

TP Modul 3 Percobaan 6





PERCOBAAN 6 
Rangkaian Percobaan Komunikasi SPI


1. Prosedur
[Kembali]

1. Rangkai semua komponen sesuai modul
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]

A. Hardware
                                                   
1. Arduino Uno

2. MAX 7219

3. Dipswitch

4. Dot Matriks


            B. Digram Blok



3. Rangkaian Simulasi dan Prinsip kerja [Kembali]

Gambar Rangkaian Sebelum Disimulasikan


Gambar Rangkaian Setelah Disimulasikan


              
Prinsip Kerja 

Master:
    Pada rangkaian  di atas merupakan percobaan Komunikasi SPI. Arduino yang diatas bertindak sebagai master dalam sebuah sistem yang menggunakan switch sebagai input. Setiap switch saat ditekan yang mana terdapat 8 buat switch yang terhubung kearduino, Arduino akan terus memeriksa status setiap tombol dengan menggunakan fungsi digitalRead(). Jika sebuah switch ditekan, Arduino akan mengirimkan karakter yang sesuai dengan menggunakan fungsi SPI.transfer. Karakter yang dikirimkan akan sesuai dengan switch yang ditekan, dan akan dibaca oleh perangkat  arduino lain. 

Slave:
    Pada arduino yang kedua betinda sebagai Slave dimana  nantinya akan menerima inputan dari Arduino master dan mengeluarkan output berupa Dot matriks 8 x 8. Prinsip kerja rangkaian  di atas adalah untuk mengontrol output dot matriks yang terhubung ke pin Arduino berdasarkan status 8 switch yang terhubung ke pin digital lainnya. Pada setup(), pin-pin yang terhubung ke switch diatur sebagai input. Pada loop(), program akan terus memeriksa status switch tersebut. Jika switch on maka dot matriks pada baris dipswitch tersebut akan hidup hingga seterusnya serta sebaliknya.


4. FlowChart [Kembali]

A. Listing Program 

//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
#include <SPI.h>
#include <LedControl.h> //Library untuk LED Dot Matrix
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]);
 }
 }
}


B. Flowchart



5. Kondisi [Kembali]

Percobaan 6 berdasarkan Modul 3 tanpa kondisi.


6. Video Simulasi [Kembali]


7. Download File [Kembali]

Download HMTL Klik disini
Download Simulasi Rangkaian Klik disini
Download Video Simulasi Klik disini

Tidak ada komentar:

Posting Komentar

Entri yang Diunggulkan

LA MODUL 3 PERCOBAAN 2

  PERCOBAAN 2 [KEMBALI KE MENU SEBELUMNYA] DAFTAR ISI 1. Jurnal 2. Alat dan Bahan 3. Rangkaian Simulasi 4. Prinsip Kerja Rangka...