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
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
}
}
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