Tugas Pendahuluan 2


Percobaan VI

Komunikasi SPI

1. Prosedur [Kembali]

  • Rangkailah seperti rangkaian berikut
  • Buka Arduino IDE dan masukan listing program
  • Upload program ke arduino
  • Jalankan dan amati keluarannya

2. Hardware dan Diagram Blok [Kembali]

    1. Arduino Uno

    2. DipSwitch


    3. Max7219



    4. Dot Matriks
    5. Power supply

    6. Ground


Diagram Blok:




Gambar 1. Rangkaian Simulasi.

Prinsip Kerja:
        Ketika Dipswith sebagai input di ubah-ubah nilainya, selanjutnya arduino uno yg berperan sebagai Master akan mengirim input yg didapat dari dipswitch tersebut ke arduino uno yg berperan sebagai Slave, kemudian  menyalakan LED pada dot matriks sesuai pola data yg diterima.

4. Flowchart dan Listing Program [Kembali]

Flowchart:




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]);
 }
 }
}


5. Kondisi [Kembali]

        Pada percobaan kali ini tidak terdapat kondisi.

6. Video Simulasi [Kembali]

᭒ HTML↠ klik disini
Rangkaian Simulasi ↠ klik disini
᭒ Gambar Simulasi ↠ klik disini
᭒ Video Simulasi ↠ klik disini
᭒ Listing Program ↠ klik disini

















Tidak ada komentar:

Posting Komentar

Unggulan

Aplikasi Encoder Decoder

APLIKASI ROLLING TOKO OTOMATIS [KEMBALI KE MENU SEBELUMNYA] DAFTAR ISI 1. Tujuan 2. Alat dan Bahan 3. Dasar Teori 4. Percobaan ...