Laporan Akhir 2 Modul 3




Laporan Akhir 2 Modul 3
(Percobaan 6)

1. Prosedur
[Kembali]

1. Rangkai komponen sesuai percobaan dan kondisi yang dipilih.
2. Buat program menggunakan Arduino IDE.
3. Compile program yang telah dibuat lalu Upload ke dalam Arduino Uno.
4. Uji coba program pada rangkaian percobaan sesuai dengan kondisi yang diinginkan.
5. Selesai

2. Hardware dan Diagram Blok [Kembali]

Hardware :

  • Arduino UNO
  •  
  • Dipswitch
  •  
  • Dot Matriks

  • Diagram Blok 




3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]

Rangkaian Simulasi :



Prinsip Kerja :

Program ini merupakan contoh komunikasi antara dua Arduino menggunakan protokol SPI (Serial Peripheral Interface), di mana salah satu Arduino bertindak sebagai master dan yang lainnya sebagai slave. Arduino yang bertindak sebagai master akan terhubung dengan inputan yaitu Dip Switch, sedangkan Arduino yang bertindak sebagai slave terhubung ke outputnya yaitu Dot Matriks.
Prinsip kerjanya yaitu :
  • Master: Membaca status saklar Dip Switch dan mengirimkan nilai yang dibaca melalui SPI ke slave.
  • Slave: Menerima data dari master melalui SPI, kemudian menampilkan pola LED pada dot matrix yang sesuai dengan data yang diterima.

Keduanya berinteraksi melalui komunikasi SPI, di mana master mengirimkan data dan slave menerima serta menanggapinya.


4. Flowchart dan Listing Program [Kembali]

Flowchart :



Listing Program :

//Master
 #include <SPI.h>

int dip[] = {2,3,4,5,6,7,8,9};
int dipvalue[] = {};

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

 void loop(void) {
  byte Mastersend;
 // Membaca status DIP switch dan mengupdate pola LED
int x = 1;
 for(int i = 0; i < 8; i++){
dipvalue[i] = digitalRead(dip[i]);
 if(dipvalue[i] == LOW){
 x = dip[i];
 }
 }
 digitalWrite(SS, LOW);
 Mastersend = x;
 Serial.println(Mastersend);
 SPI.transfer(Mastersend); //Send the mastersend value to slave also receives value from slave
}

//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
volatile byte po;
volatile boolean received = false;

void setup() {
 SPCR |= _BV(SPE);
 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
 Serial.begin(9600);
 SPI.attachInterrupt();
}
ISR (SPI_STC_vect){
  po = SPDR;
  received = true;
}
void loop() {
  Serial.println(po);
  Serial.println(received);
 if (received) { // Jika dipilih oleh master
 byte patterns[8];
 // Menerima data pola LED dari master
 for (int i = 0; i < 8; i++) {
 patterns[i] = po;
 }
 // Menampilkan pola LED pada dot matrix
 for (int row = 0; row < 8; row++) {
 lc.setRow(0, row, patterns[row]);
 }
 }
}

5. Kondisi [Kembali]

Percobaan 6 Komunikasi SPI

6. Video Demo [Kembali]



7. Download File [Kembali]

Download HTML klik disini
Download Video Demo klik disini
Download Listing Program klik disini
Download Datasheet Arduino klik disini
Download Datasheet Dot Matrix klik disini
Download Datasheet Dip Switch klik disini

Tidak ada komentar:

Posting Komentar

  BAHAN PRESENTASI MATA KULIAH ELEKTRONIKA Nama: Vigo Danovan Saputra NIM: 2110951023 kelas: Elektronika C Dosen Pengampu ; Darwison,M.T Ref...