//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 } } |
Furqan Anliko Gasdar Ladipa (1810952044)
Modul 3 Laporan Akhir 1 (Percobaan 2)
1. Komponen[back]
3. Flowchart[back]
5. Analisa[back]
Pada saat digunakan dua perangkat slave. bagian manakah yang diubah? apakah program, rangkaian, atau dua duanya??
Jawab :
Pada komunikasi SPI, jika kita menggunakan 2 buah slave untuk transmisi datanya, maka kita harus memilih terlebih dahulu slave yang ingin dituju dengan menggunakan jalur SS (Slave Select). karena pada sistem SPI, master hanya dapat mengirimkan data satu persatu kepada slave. jadi ketika kita sudah menentukan slave yang kita pilih, maka pin SS pada master akan dihubungkan kepada pin SS pada slave yang dituju, dan mengubah program pada arduino untuk menyambungkan komunikasi antara dua perangkat tersebut. dengan cara slave yang dituju diberi logika "LOW" sedangkan master tadi sudah berlogika "HIGH" sehingga mereka bisa terhubung. lalu pada slave yang lain itu diberi logika "HIGH".
6. Video[back]
7. Link Download[back]
Simulasi Rangkaian Proteus [Download]
Video Simulasi [Download]
Listing Program Master [Download]
Listing Program Slave [Download]
HTML [Download]
Langganan:
Postingan (Atom)
Tidak ada komentar:
Posting Komentar