//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 2 (Percobaan 3)
1. Komponen[back]
c. Push Button
Gambar 3. Potensiometer
3. Flowchart[back]
4.Listing Program[back]
5. Analisa[back]
Apabila ada tambahan slave, bagaimana cara master membedakan satu save dengan slave lainnya pada I2C pada saat berkomunikasi? Apakah pada bagian program, atau rangkaian, atau keduanya?
Jawab :
Pada komunikasi I2C, kita dapat menggunakan banyak slave. namun bagi master untuk membedakan slave dengan slave yang lainnya adalah dengan cara mengaturnya pada listing program. mencocokkan program untuk pengirim data dengan penerima data pada slave seperti contoh pada program diatas yaitu "SLAVE_ADDR". yang merupakan penghubung antara master dengan slave. untung rangkaiannya sendiri yaitu hanya dengan menghubungkan pin SDA (master) dengan pin SDA(slave) dan pin SCL (master) dengan pin SCL (slave) lainnya.
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