LAPORAN AKHIR (PERCOBAAN 2)

 


1. Hardware[Kembali]

a. arduino Uno





b.LED



c. Button

2.      Rangkaian Simulasi [Kembali]

3.      Flowchart[Kembali]

Flowchart master:
Flowchart Slave:

4.  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 Simulasi [Kembali]




6. Kondisi[Kembali]

Percobaan 2

1.      Apa fungsi library SPI.h ?

Jawab:

Fungsi library SPI.h yaitu mendeklarasikan library dari SPI, sehingga kita dapat menjalankan SPI dan tidak terjadi error ketika program di running

2.      Bagaimana jika pin SS tidak dihubungkan?

Jawab:

Jika pin SS tidak dihubungkan, master tidak dapat memilih slave yang akan diberikan perintah. Pin SS berfungsi untuk memilih slave yang akan diberikan perintah

3.      Jika pada push button (input) dan led (output) ditambahkan resistor 100k, bagaimana pengaruhnya terhadap jalannya rangkaian?

Jawab:

 

Jika resistor 100k ohm ditambahkan pada led dan push button, maka led tidak bisa menyala. Hal inidisebabkan resistor 100k ohm mempunyai nilai hambatan yang sangat besar sehingga arus menuju led menjadi sangat kecil yaitu sebesar 5v/100k ohm = 0,05 mA. Dengan arus yang sangat kecil ini tidak mampu untuk menghidupkan led.

 

4.      Bisakah menggunakan banyak master? Jelaskan alasannya

Jawab:

Tidak. Pada komunikasi SPI hanya terbatas antara 1 master dan beberapa slave. Hal ini dikarenakan pada komunikasi SPI hanya terdapat port slave select (SS) yang berfungsi memilih slave mana yang akan menerima pengiriman data. Jika terdapat lebih dari 1 master yang terhubung ke beberapa slave,saat kedua master memilih slave yang sama pada waktu bersamaan maka slave tidak dapat memilih master mana yang akan mengirimkan data terlebih dahulu sehingga terjadi tabrakan data.

7. Link Download [Kembali]

Tidak ada komentar:

Posting Komentar