Laporan Akhir Modul 3 (percobaan 2)




SPI

1. Tujuan [Kembali]

    a) Memahami prinsip kerja UART, SPI, dan I2C
     b) Mengaplikasikan protokol komunikasi UART, SPI, dan I2C pada Arduino

    Kondisi : Ubah kondisi awal LED mati, lalu ketika button ditekan LED hidup berkedip delay 500ms

2. Alat dab Bahan [Kembali]


1.Power Supply

 

2.  Ground

 

Bahan
1
.Arduino



2. LED


3. Resistor


4. Push bottom

Stage 4: Complete Beginner's Guide For Arduino Hardware Platform For DIY -  CodeProject


3. Rangkain Percobaan [Kembali]










Prinsip Kerja

Pada rangkain ini terdiri dari 2 buah Arduino yang mana salah satunya berfungsi sebagai master dan satu lagi sebagai slave. Kedua Arduino ini saling terhubung maing-masing melalui pin 13-13, 12-12 dan 11-11. Kemudian pin 7 master terhubug ke resistor dan button sedangkan pin 7 slave terhubungkan ke resistor dan LED. Pada listing programnya juga saling berhubugan yang mana sama-sama menggukan library #include <SPI.h> kemudian juga terdapat pendefinisian pin-pin yang digunakan serta yag saling terhubung antar Arduino master dan slave. Pada bagian dalam programnya sesuai yang dijelaskan pada video diatas, bahwa program disusun sesuai dengan kondisi yang diminta yang diminta untuk dapat menyalkan LED secara berkedip dengan delay 500 ms pada saat push button ditekan.

Pada saat rangkai ini disimulasikan, apabila push button tidak ditekan atau dalam kondisi LOW, maka LED tidak akan menyala. Namun ketika puh button ditekan atau dalam kondisi HIGH, maka LED akan menyala berkedip denga delay waktu 500ms sesuai yang diminta pada kondisi ini.  


4. Listing Program [Kembali]

#Master

#include <SPI.h>
#define BUTTON 7
int buttonStatus;
int buttonVal;

void setup (){
  Serial.begin(115200);
  pinMode(BUTTON, INPUT);
  digitalWrite(SS, HIGH);
  SPI.begin();
  SPI.setClockDivider(SPI_CLOCK_DIV8);
}

void loop (){
  byte masterSend;
  buttonStatus = digitalRead(BUTTON);
  if (buttonStatus == HIGH){
    buttonVal = 1;
  }else{
    buttonVal = 0;
  }
  digitalWrite(SS, LOW);
  masterSend = buttonVal;
  SPI.transfer(masterSend);
  digitalWrite(SS, HIGH);
  delay(200);
}


#Slave
 

#include <SPI.h>
#define LED 7
volatile byte slaveReceived;
volatile boolean received;

void setup (){
  Serial.begin (115200);
  pinMode(LED, OUTPUT);
  pinMode(MISO, OUTPUT);
  SPCR |= _BV(SPE);
  slaveReceived = 0;
  received = false;
  SPI.attachInterrupt();
}

ISR (SPI_STC_vect)
{
  slaveReceived = SPDR;
  received = true;
}

void loop (){
  if(received){
    while(slaveReceived == 0){
      digitalWrite(LED, HIGH);
      delay(500);
      digitalWrite(LED, LOW);
      delay(500);
    }
  }
}

Flowchart













5. Vidio [Kembali]









6. Kondisi [Kembali]

1. Apakah pin SS dapat diganti denga pin digital lainya?

Jawab :

Tidak bisa karena pin yang memiliki fitur yang sama dengan pin SS ini hanya ada satu pin saja pada Arduino. Sehingga ketika pin SS dipindahkan ke pin digital, maka ragkain tidak akan berjalan sesuai dengan semestinya.

 

2. Apa yang terjadi jika pin MISO dilepas?

Jawab :

Jika pin MISO dilepaskan maka slave tidak akan dapat mengirim/ mentrasmisikan data ke master. Karena pin MISO disini berati bahwa master sabagain input dan slave sebagai output. Jika pin MISO dilepas tidak aka ada terjadi komonikasi antara master dan slave.

 

3. Apakah pada komonikasi ini dapat megguakan multi master?

Jawab :

Bisa, misalkan kita menggunakan 2 master dan 1 slave. Maka master yang pertama bisa melakukan komunikasi deng

7. Link Download [Kembali]


Download file HTML
Download file simulasi proteus
Download file program arduino
Download video simulasi proteus 
Download file datasheet arduino
Download file library arduino









Tidak ada komentar:

Posting Komentar

BAHAN PRSENTASI UNTUK MATA KULIAH SISTEM DIGITAL SEMESTER GENAP 2020-2021 OLEH ROMA IMAM RAHMAN 1910953036 TEKNIK ELEKTRO Dosen Pengampu : M...