Laporan Akhir (Percobaan 2) Modul 3 Mikro

 
LED

 
 
 
 
 
 
 
 
 
 
 
 
Push Button

 
 
 
 
 
 
 
 
 
 
 
 
Arduino Uno

 
 
 
 
 
 
 
 
 
 
Komunikasi SPI

 
 
Flowchart Master

Flowchart Slave



 
MASTER
#include <SPI.h> //Deklarasi library SPI
#define button 2
void setup (void) {
  pinMode(button, INPUT_PULLUP);
  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;
  int nilai=digitalRead(button);
  if(nilai==0){
   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>
#define led 2

char buff [50];
volatile byte indx;
volatile boolean process;

void setup (void) {
  Serial.begin (115200);
  pinMode(led, 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) {
    digitalWrite(led, HIGH);
    process = false; //reset the process
    Serial.println (buff); //print the array on serial monitor
    indx = 0; //reset button to zero
    delay(1000);
  }
  else
  {
    digitalWrite(led, LOW);
  }
}

 





1. Apa fungsi library SPI.h ?

Fungsi library SPI.h adalah menangani komunikasi serial synchronus SPI pada ardunio. Komunikasi serial synchronous merupakan protokol komunikasi data secara serial yaitu komunikasi data yang memerlukan jalur clock untuk mengirimkan data dan sinkronisasi antara transmitter dan receiver.

2. Bagaimana jika pin SS tidak dihubungkan?

Jika pin SS (Slave Select) tidak dihubungkan maka LED tidak akan menyala karena pin ss berfungsi untuk memilih slave mana yang akan berkomunikasi dengan master sehingga bila tidak dihubungkan maka perintah yang dikirim master tidak dapat diterima oleh slave.

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

Jika ditambahkan resistor 100k ohm maka LED tidak akan menyala karena nilai tahanan yang sangat besar menghambat arus masuk ke button dan LED sehingga LED tidak mendapatkan arus yang cukup untuk menyala  
 
4. Bisakah menggunakan banyak master? Jelaskan alasannya
 
Komunikasi SPI hanya bisa menggunakan 1 master saja karena master merupakan pengontrol seluruh komunikasi serial sinkron pada SPI. Namun untuk slave dapat digunakan lebih dari 1 slave karena master dapat memilih slave mana yang akan berkomunikasi dengannya melalui pin SS.

7. Link Download [back]
Link download video [disini]
Link download rangkaian [disini]
Link download library arduino [disini]
Link download listing program arduino master [disini]
Link download listing program arduino slave [disini]
Link download HTML [disini]


Tidak ada komentar:

Posting Komentar