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.
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.
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).
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.
//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]
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.
Tidak ada komentar:
Posting Komentar