laporan percobaan 2 modul 3









1. Prosedur Percobaan[kembali]

Prosedur Percobaan:
1. Pastikan semua supply dalam keadaan off
2. Hubungkan jumper dari arduino yang sebagai master ke arduino yang sebagai slave
3. Buatlah listing program yang sesuai dengan kondisi yang diinginkan
4. periksakan rangkaian kepada asisten yang mengawas
5. Hidupkan semua supply
6. Upload program dari laptop ke modul
7. Tekan tombol Reset
8. Amati percobaan, jika tidak sesuai perbaiki rangkaian atau program
9. Jika sesuai, maka selesai dan demokan pada asisten yang mengawas
10. Jelaskan prinsip kerja + program dan hubungan keduanya kepada asisten
11. Videokan hasil percobaan yang dilakukan
12. Matikan supply

2. Hardware [kembali]




3. Listing Program [kembali]
MASTER
#include  <SPI.h>  //Deklarasi library SPI
void setup (void) {
  Serial.begin(115200); //Set baud rate 115200
  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.Video [kembali]



6. Analisa [kembali]



Prinsip Kerja SPI
Prinsip kerjanya pada SPI terdapat 4 buah jalur yaitu MOSI, MISO, SCK dan SS/CS. Jalur ini diinisialisasikan ke dalam pin-pin 11, 12 dan `13. Bentuk komunikasi berupa komunikasi synchronous yang mana membutuhkan clock untuk bisa menjalankan komunikasi tersebut. Berbeda dengan UART prinsip kerja UART jalur komunikasi nya diinisialisasikan dengan Tx dan Rx. Sinyal clock dialirkan dari master ke slave yang berfungsi untuk sinkronisasi. Master dapat memilih slave mana yang akan dikirimkan data melalui slave select, kemudian data dikirimkan dari master ke slave melalui MOSI. Jika master butuh respon data maka slave akan mentransfer data ke master melalui MISO.



7. Link Download [kembali]

1. File HTML
    Download File
2. Video percobaan
    Download File

Tidak ada komentar:

Posting Komentar