modul 3 percobaan 2



1. Komponen  [kembali]

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. 


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. LED juga dapat memancarkan sinar inframerah yang tidak tampak oleh mata seperti yang sering kita jumpai pada Remote Control TV ataupun Remote Control perangkat elektronik lainnya.

3. Push Button

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). Prinsip kerja Push Button adalah apabila dalam keadaan normal tidak ditekan maka kontak tidak berubah, apabila ditekan maka kontak NC akan berfungsi sebagai stop (memberhentikan) dan kontak NO akan berfungsi sebagai start (menjalankan) biasanya digunakan pada sistem pengontrolan motor – motor induksi untuk menjalankan mematikan motor pada industri – industri.


2. Rangkaian Simulasi    [kembali]




Gambar 2.1 Gambar Rangkaian Percobaan 2



3. Flowchart   [kembali]



Gambar 3.1 Flowchart Program Arduino Master



Gambar 3.2 Flowchart Program Arduino Slave


4. Listing Program   [kembali]

MASTER

#include <SPI.h> //Deklarasi library SPI
#define button 2
void setup (void) {
  pinMode(button, INPUT_PULLUP);
  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;
  int nilai=digitalRead(button);
  if(nilai==0){
   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>
#define led 2

char buff [50];
volatile byte indx;
volatile boolean process;

void setup (void) {
  Serial.begin (115200);
  pinMode(led, 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) {
    digitalWrite(led, HIGH);
    process = false; //reset the process
    Serial.println (buff); //print the array on serial monitor
    indx = 0; //reset button to zero
    delay(1000);
  }
  else
  {
    digitalWrite(led, LOW);
  }
}

5. Video   [kembali]





Video Penjelasan Rangkaian Percobaan 
Penjelasan Rangkaian :
Ketika button di tekan (ON),maka rangkaian akan terhubung,sehingga akan menjadi input pada master.Sinyal clock di alirkan dari master menuju slave melalui pin SCK (pin 13) yang memiliki fungsi untuk sinkronisasi. Untuk pin SS (pin 10) berguna untuk memilih slave mana yang akan di kirim data. Kemudian 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.


6. Kondisi  [kembali] 

Pada praktikum modul 3  percobaan 2 yaitu Membuat rangkaian SPI (Serial Pheriperal Interface).
Analisa :

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

Jawab : Tidak bisa, yang hanya bisa adalah lebih dari 1 slave. Karena pada SPI ada 3 jalur yaitu MISO,MOSI, dan Clock. Kemudian juga ada pin SS yang berguna untuk pilihan ke Slave mana yang akan kita tuju, sedangkan pin untuk pilihan Master mana yang kita tuju tidak ada. Jadi kesimpulan yang saya dapatkan adalah tidak bisa.

2. Apakah port MISO harus digunakan? Jelaskan alasannya

Jawab : Port MISO ini digunakan ketika kita ingin meminta respon / meminta data dari Slave menuju Master. Karena prinsip dari MISO yaitu ketika dikonfiguraasi pada Master maka pin MISO berguna sebagai Input, sebaliknya jika dikonfigurasi pada Slave maka pin MISO berguna sebagai Output. Kesimpulannya adalah jika kita ingin mendapatkan respon/data dari Slave, maka pin MISO wajib digunakan. Akan tetapi, jika kita hanya ingin mengirim data dari Master ke Slave maka tidak wajib digunakan.



7. Link Download  [kembali]

File library Arduino Proteus - Download
File Flowchart Master - Download
File Flowchart Slave - Download
File Program Master - Download
File Program Slave - Download
File HTML - Download
File rangkaian - Download
File video -  Download

No comments:

Post a Comment