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 -
DownloadFile Flowchart Master -
DownloadFile Flowchart Slave -
DownloadFile Program Master -
Download
No comments:
Post a Comment