PERCOBAAN 2



1.komponen   [kembali]

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.

Button

Push Button adalah saklar tekan yang berfungsi sebagai pemutus atau penyambung arus listrik dari sumber arus ke beban listrik. Suatu sistem saklar tekan push button terdiri dari saklar tekan start, stop reset dan saklar tekan untuk emergency. Push button memiliki kontak NC (normally close) dan NO (normally open).

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.



2.RangkaianSimulasi   [kembali]


Gambar Rangkaian  Percobaan 2


3. Flowchart  [kembali]




Gambar 3. Flowchart Program Arduino Master 

Gambar 3. Flowchart Program Arduino Slave



4. Listing Program  [kembali]

//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  [kembali]




Video PenjelasanRangkaianPercobaan 

Cara kerja
merupakan komunikasi serial 1arah yang lebih cepat dibandingkan UART. prinsip kerjanya sinyal clock dialirkan darimaster menuju slave untuk sinkronisasi lalu master dapat memilih slave mana yang akan dikirimkan data melalui pin MOSI dan jika dibutuhkan respon maka slave akan mengirimkan data ke mater melalui  pin MISO. 


6.kondisi [kembali]

Percobaan 2 komunikasi SPI

Analisa :

1.    

1.       Apakah kit dapat menggunakan lebih dari 1 master?  Jelaskan alasannya

Jawab:

Tidak bisa karena untuk komunikasi SPI biasanya terdapat 1 perangkat “master” tunggal yang memulai komunnikasi dan memasok jam yang mengontrol laju transfer data. Dan untuk slavenya bisa menggunakan beberapa slave.

2.       Apakah port MISO harus digunakan?jelaskan alasannya

Jawab:

Port MISO  pada UC Atmega328 terletak pada pin PORTB4 interkoneksi master dan slave yang berguna untuk data input ketika UC sebagai master tetapi sebagai data output jika diperlakukan sebagai slave. Sehingga penggunaan port MISO ini perlu dan harus digunakan.

 


File HTML - download
File rangkaian  - download
File video - download
File Library Arduino download
File Datasheet  download





Tidak ada komentar:

Posting Komentar