a) Memahami prinsip kerja UART, SPI, dan I2C
b) Mengaplikasikan protokol komunikasi UART, SPI, dan I2C pada Arduino
b) Mengaplikasikan protokol komunikasi UART, SPI, dan I2C pada Arduino
1.1. Kondisi
Pada percobaan ini, kondisi yang diberikan adalah ganti LED dengan buzzer, sehingga ketika button ditekan buzzer akan hidup dengan delay 200 ms lalu mati, jika button tidak di tekan buzzer mati.
2. Hardware[Kembali]
-. Alat
a. Arduino
b. Button
Push button switch (saklar tombol tekan) adalah perangkat / saklar sederhana yang berfungsi untuk menghubungkan atau memutuskan aliran arus listrik dengan sistem kerja tekan unlock (tidak mengunci). Sistem kerja unlock disini berarti saklar akan bekerja sebagai device penghubung atau pemutus aliran arus listrik saat tombol ditekan, dan saat tombol tidak ditekan (dilepas), maka saklar akan kembali pada kondisi normal.c. Buzzer
Buzzer merupakan sebuah komponen elektronika yang masuk dalam keluarga transduser, yang dimana dapat mengubah sinyal listrik menjadi getaran suara-. Bahan
a. Software Arduino IDE
Lingkungan Pengembangan Terpadu Arduino adalah aplikasi lintas platform yang ditulis dalam fungsi-fungsi dari C dan C ++. Ini digunakan untuk menulis dan mengunggah program ke papan Arduino yang kompatibel, tetapi juga, dengan bantuan core pihak ketiga, papan pengembangan vendor lainnya.
3. Rangkaian Percobaan[Kembali]
Prinsip Kerja :Pada percobaan ini, terdapat 2 buah arduino yaitu arduino sebagai master dan arduino sebagai slave. Pada masing-masing arduino terdapat listing program yang akan di eksekusi. Ketika simulasi dijalankan, program pada arduino master dan slave akan di eksekusi atau dijalankan. Saat dijalankan, buzzer dalam logika 0 atau low dan button juga dalam keadaan logika low atau 0. Ketika button ditekan maka buzzer akan hidup dengan delay 200 ms lalu buzzzer mati.
4. Listing Program[Kembali]
MASTER :
//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(200);
}
SLAVE :
//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
}
}
4.1. Flowchart
5. Analisa[Kembali]
1). Apakah pin SS bisa diganti dengan pin digital lain?
Jawab :
Pada komunikasi SPI, pin SS dapat diganti dengan pin digital lainnya namun pada program harus dideklarasikan pin SS yang diganti dengan pin digital lainnya agar device master dapat berkomunikasi dengan device slave nya
2). Apa yang terjadi jika pin MISO di lepas?
Jawab :
Apabila pin MISO dilepas, maka arduino master tidak bisa mendapatkan respon atau data dari arduino slave karena jika dikonfigurasi pada master, maka pin MISO akan berfungsi sebagai input dan jika dikonfigurasi pada slave, maka pin MISO akan berfungsi sebagai output. Dengan adanya pin MISO tersebut, master dapat berkomunikasi dengan slave.
3). Apakah pada komunikasi ini bisa menggunakan multi master?
Jawab :
Pada komunikasi SPI hanya dapat menggunakan 1 master saja karena pada SPI master berfungsi untuk pengontrol komunikasi serial sinkron dimana dapat mengirim atau menerima data. Pada komunikasi SPI, master hanya boleh 1 namun slave bisa lebih dari 1 karena pada komunikasi SPI terdapat pin SS (Slavae Select) dimana master dapat memilih untuk mengontrol salve yang mana.
6. Video[Kembali]
7. Link Download[Kembali]
download HTML disini
download file simulasi disini
download video disini
download listing program disini
download datasheet arduino disini
download library arduino disini
Tidak ada komentar:
Posting Komentar