Laporan Akhir ( SPI )

    [KEMBALI KE MENU SEBELUMNYA]



LAPORAN AKHIR MODUL 3 PERCOBAAN 2







Gambar 1. Arduino (SIMULANO) Master





Gambar 2. Arduino (SIMULANO) Slave




Gambar 3. Led-Red


Gambar 4. Button


2. Rangkaian Simulasi [Kembali]






Gambar 5. rangkaian simulasi


3. Flowchart [Kembali]









Gambar 6. Flowchart Slave





Gambar 7. Flowchart Master





4. Listing Program [Kembali]


//MASTER

 

#include <SPI.h>

 

void setup (void) {

   Serial.begin(115200);

//set baud rate to 115200 for usart

   digitalWrite(SS, HIGH);

// disable Slave Select

   SPI.begin ();

   SPI.setClockDivider(SPI_CLOCK_DIV8);//divide the clock by 8

}

 

void loop (void) {

   char c;

   digitalWrite(SS, LOW); // enable Slave Select

   // send test string

   for (const char * p = "Hello, world!\r" ; c = *p; p++)

   {

      SPI.transfer (c);

      Serial.print(c);

   }

   digitalWrite(SS, HIGH); // disable Slave Select

   delay(2000);

}

//SLAVE

 

#include <SPI.h>

char buff [50];

volatile byte indx;

volatile boolean process;

 

void setup (void) {

   Serial.begin (115200);

   pinMode(MISO, OUTPUT); // have to send on master in so it set as output

   SPCR |= _BV(SPE); // turn on SPI in slave mode

   indx = 0; // buffer empty

   process = false;

   SPI.attachInterrupt(); // turn on interrupt

}

ISR (SPI_STC_vect) // SPI interrupt routine

{

   byte c = SPDR; // read byte from SPI Data Register

   if (indx < sizeof buff) {

      buff [indx++] = c; // save data in the next index in the array buff

      if (c == '\r') //check for the end of the word

      process = true;

   }

}

void loop (void) {

   if (process) {

      process = false; //reset the process

      Serial.println (buff); //print the array on serial monitor

      indx= 0; //reset button to zero

   }

}



5. Analisa  [Kembali]


1

1.     1.  Bisakah pada SPI menggunakan lebih dari 1 master? Jelaskan beserta alasannya

Jawab :

Menurut saya tidak bisa, karena pada SPI yang boleh banyak itu slave dikarenakan master disini untuk menerima atau mengirim data. Kalau master yang boleh hanya 1. Seperti pada SPI dapat membuat mikrokontroller lain dari slave dan master logikanya 1. Padas SPI ini clock antara master dengan slave harus sama..

2.       2.   Jelaskan pengaruh input pullup dan pulldown pada rangkaian !

Jawab:

Input pullup dan pulldown berpengaruh pada led dimana apabila button dalam keadaan pullup maka berlogika low atau 0. Ketika keadaan pulldown maka berlogika high atau bernilai 1. Berpengaruh pada led Karena  apabila data yang dibaca master selain dari nilai pullup dan pulldown maka led tidak menyala atau berlogika low.

3.      3. Jelaskan prinsip kerja SPI pada rangkaian

Jawab:

Pada komunikasi SPI yaitu komunikasi dua arah sinkron artinya slave dan master dapat berkomunikasi dua arah secara bersama secara sinkron yang di atur oleh clock. Pada SPI ini membutuhkan 3 buah pin komunikasi yaitu MISO, MOSI, dan SCLK dan 1 buah pin SS/CS untuk mengatur slave atau chip nya. Jadi pada komunikasi SPI ini terdapat pin MOSI yang megirimkan data dari Master ke Slave sedangkan  pin MISO yang berfungsi meminta data dari Slave ke Master. Pada pin SCLK akan disinkronkan data data tadi. MOSI dapat memilih Slave mana yang akan dikirimkan data berdasarkan Slave Select yang diatur pada pin SS.

1.    


6. Vidio  [Kembali]








7. Link Download[Kembali]


Download Video disini
Download listing program master disini
Download listing program slave disini
Download Rangkaian disini
Download HTML disini

Tidak ada komentar:

Posting Komentar