Laporan Akhir 2 Modul 3





SPI






//MASTER

#include <SPI.h>
#define button 2
void setup() 
{
  Serial.begin(9600);
  digitalWrite(SS,HIGH);
  pinMode(button,INPUT_PULLUP);
  SPI.begin();
  SPI.setClockDivider(SPI_CLOCK_DIV8);
  
}

void loop()
{
  char c;
  int nilai = digitalRead(button);
  if (nilai == 0){
  digitalWrite(SS,LOW);
  for(const char *p= "Hello,World\r"; c = *p;p++)
  {
    SPI.transfer (c);
    Serial.print (c);
  }
  }
  else{
    
  }
  digitalWrite (SS,HIGH);
  delay(2000);

}

//SLAVE

#include <SPI.h>
char buff[50];
volatile byte indx;
volatile boolean process;

#define led 5
void setup() {
  pinMode(led, OUTPUT);
  Serial.begin(9600);
  pinMode(MISO, OUTPUT);
  SPCR |= _BV(SPE);
  indx = 0;
  process = false;
  SPI.attachInterrupt();
}
ISR (SPI_STC_vect)
{
  byte c = SPDR;
  if (indx < sizeof buff)
  {
    buff[indx++] = c;
    if (c == '\r')
      process = true;
  }
}
void loop() {
 // digitalWrite(SS,LOW);
  if (process)
  {
    Serial.println (buff);
    indx = 0;
    digitalWrite (led, HIGH);
    delay (2000);
    digitalWrite (led, LOW);
    process = false;
  }
  else {
    Serial.println("error");
  }


}


    2. Bagaimana proses pengiriman data pada SPI ?
Berdasarkan teori, Serial Peripheral Interface (SPI) merupakan salah satu mode komunikasi serial synchronous kecepatan tinggi yang dimiliki oleh ATmega 328. Komunikasi SPI memiliki 3 jalur yaitu MOSI, MISO, dan SCLK. Dan sesuai dengan teori tersebut, dapat diketahui setelah percobaan dilakukan, bahwa proses pengiriman data pada SPI ialah sebagai berikut:
a. clock akan memberikan sinyal dari master ke slave, dimana fungsi dari clock adalah untuk menyamakan/ menyinkronkan data antara master dan slave.
b. lalu, master akan mengirimkan data kepada slave, dan master dapat memilih slave mana yang akan dikirimkan data melalui slave select.
c. data yang dikirimkan dari master ke slave dapat melalui jalur MOSI ataupun jalur MISO sesuai dengan jalur mana yang diatur sebagai outputnya atau sebagai pengirim data.
d. kondisi yang diujikan pada percobaan ini ialah ketika tobol button ditekan, maka LED akan menyala, dan ketika tidak ada lagi data yang dikirim maka master akan menghentikan clock dan memonaktifkan slave.
            Kekurangan pada komunikasi menggunakan SPI ini adalah meskipun data dapat dikirimkan ke banyak slave, tetapi untuk mengirimkan data tersebut membutuhkan pin yang banyak sesuai dengan slave yang digunakan.






Download HTML disini
Download Video Praktikum disini

Tidak ada komentar:

Posting Komentar

Featured Post

Oleh: Lifia Permata Suri 1710951027 Dosen Pengampu: Darwison,M.T. Referensi : a. Boyles...

Popular Posts