Senin, 22 November 2021

Laporan Akhir 1 Modul 3 - Percobaan 2



1. Tujuan[Kembali]
a) Memahami prinsip kerja UART, SPI, dan I2C
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

Arduino adalah kit elektronik atau papan rangkaian elektronik open source yang di dalamnya terdapat komponen utama yaitu sebuah chip mikrokontroler dengan jenis AVR dari perusahaan Atmel. Arduino yang kita gunakan dalam praktikum ini adalah Arduino Uno yang menggunakan chip AVR ATmega 328P. Dalam memprogram Arduino, kita bisa menggunakan komunikasi serial agar Arduino dapat berhubungan dengan komputer ataupun perangkat lain.

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