Laporan Akhir Percobaan 2 (SPI)





1. Komponen[back]
    a. Arduino
Gambar 1. 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. LED 
 
Gambar 2. LED

Light Emitting Diode atau sering disingkat dengan LED adalah komponen elektronika yang dapat memancarkan  cahaya monokromatik ketika diberikan tegangan maju. LED merupakan keluarga Dioda yang terbuat dari bahan semikonduktor. Warna-warna Cahaya yang dipancarkan oleh LED tergantung pada jenis bahan semikonduktor yang dipergunakannya.
 Cara kerjanya pun hampir sama dengan Dioda yang memiliki dua kutub yaitu kutub Positif (P) dan Kutub Negatif (N). LED hanya akan memancarkan cahaya apabila dialiri tegangan maju (bias forward) dari Anoda menuju ke Katoda.

    c. Push Button

        
Gambar 3. Push 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). 

Berdasarkan fungsi kerjanya yang menghubungkan dan memutuskan, push button switch mempunyai 2 tipe kontak yaitu NC (Normally Close) dan NO (Normally Open).

    • NO (Normally Open), merupakan kontak terminal dimana kondisi normalnya terbuka (aliran arus listrik tidak mengalir). Dan ketika tombol saklar ditekan, kontak yang NO ini akan menjadi menutup (Close) dan mengalirkan atau menghubungkan arus listrik. Kontak NO digunakan sebagai penghubung atau menyalakan sistem circuit (Push Button ON).
    • NC (Normally Close), merupakan kontak terminal dimana kondisi normalnya tertutup (mengalirkan arus litrik). Dan ketika tombol saklar push button ditekan, kontak NC ini akan menjadi membuka (Open), sehingga memutus aliran arus listrik. Kontak NC digunakan sebagai pemutus atau mematikan sistem circuit (Push Button Off).

2. Rangkian Simulasi[back]

     
Gambar 4. Rangkaian setelah di RUN

Gambar 5. Rangkaian Sebelum di RUN


     Prinsip kerja 

Ketika button di tekan (ON),maka rangkaian akan terhubung,sehingga akan menjadi data input pada master.Sinyal clock di alirkan dari master ke slave melalui pin SCK (pin 13) berfungsi untuk sinkronisasi. Untuk pin SS (pin 10) berguna untuk memilih  slave mana yang akan di kirim data. Kemudain karna inputnya master dan outputnya slave,maka untuk komunikasi disini kita mengunakan pin MOSI (Master Input Serial Output) . Setelah data terbaca di slave ,maka akan diteruskan menuju pin 2 pada slave sebagai output sehingga LED akan ON. Sedangkan jika button tidak di tekan (OFF) maka LED pada slave nantinya akan OFF.



   
3. Flowchart[back]
  


Gambar 6. Flowchart Master




Gambar 7. Flowchart Slave



4.Listing Program[back]

//MASTER

 

#include <SPI.h>

 

void setup (void) {

   Serial.begin(115200);

//set baud rate to 115200 for usart

   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

   }

}



  
5. Video[back]






6. Kondisi[back]

    Pada praktikum modul 3 ini. Kondisi percobaan 2 diperintahkan melakukan komunikasi Serial Peripheral Interface ( SPI ) menggunakan arduino uno.

Analisa
 
1.     Apa fungsi library SPI.h ?

Jawab;

Fungsinya adalah supaya kita bisa menggunakaan function siap pakai yang ada dalam library SPI.h .Sehingga function itu  akan memudahkan kita dalam melakukan komunikasi SPI.

 2.     Bagaimana jika pin SS tidak dihubungkan..?

Jawab:

Jika pin SS tidak dihubungkan,maka ketika kita menggunakan lebih dari satu slave,master tidak akan tau ke salve mana yang akan dilakukan komunikasi. Oleh karena itu kita perlu menghubungkan  pin SS pada master ke salve.


3.    Jika pada push button(input) dan LED (outpt) ditambah resistor 100k,bagaimana pengaruh terhadap         rangkaian.?
Jawab:

Jika ditambah resistor 100k, maka akan menyebabkan hambatan arus yang sangat besar, sehingga input dar bus button tadi tidak akan cukup kuat untuk mengaktifkan LED pada slave. 


4.     Bisakah menggunakan banyak master.? Jelaska alasannya.

               Jawab:

Bisa, misalkan kita menggunakan 2 master dan 1 slave. Maka master yang pertama bisa melakukan komunikasi dengan salve atau master yg ke dua busa juga berkomunikasi dengan slave.Tapi kedua master ini tidak bisa melakukan komunikasi dengan slave di waktu yang bersamaan,karena SPI adalah komunikasi secara serial (bergantian) dan membutuhkan identifikasi alamat masing-masing device. Jika master secara bersamaan mengirimkan data ke slave makan akan terjadi bentrok data.


7. Link Download[back]

  Simulasi Rangkaian Proteus [Download]
  Video Simulasi [Download]
  Program Arduino [Download]
  Library Arduino [Download]
  Data Sheet Arduino [Download]
  HTML [Download]








 

Tidak ada komentar:

Posting Komentar

Bahan Presentasi Kuliah     Mikroprosesor dan Mikrokontroler  Oleh: Taufik Alridho (1810953026) Dosen Pengampu: Dr. Darwison, M.T. Referensi...