PERCOBAAN 2
1. Komponen [Kembali]
2. Rangkaian [Kembali]
4. Listing Program[Kembali]
//MASTER #include <SPI.h> //Deklarasi library SPI void setup (void) { 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; 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 Simulasi [Kembali]
6. Analisa [Kembali]
1. Percobaan 2
a. Apakah jenis komunikasi yang digunakan pada percobaan ini?
b. Apa yang terjadi jika baud rate pada master diganti 9600 sedangkan pada slave tetap? Dan sebaliknya?
c. Ganti clock speed menjadi 10 MHz!
Jawab:
a. Jenis komunikasi pada percobaan ini yaitu half duplex. Karena setelah Slave menerima data, dilakukan proses terlebih dahulu sebelum mengirimkan data kembali ke Master.
b. Jika baud rate diubah, akan terdapat perbedaan baud rate antara master dann slave. Ini akan mengakibatkan data tidak dapat diterima oleh Slave, sehingga LED akan mati. Nilai baud rate harus sama antara Master dan Slave agar data dapat di transmisi.
c. Jika clock speed diganti dari 8 MHz menjadi 10 MHz, maka kecepatan proses komunikasinya akan lebih cepat.
7. Link Download [Kembali]
- HTML Link Download
- Rangkaian Proteus Link Download
- Listing Program Master Link Download
- Listing Program Slave Link Download
- Video Link Download
- Datasheet Arduino UNO Link Download
- Datasheet LED - Link Download
Datasheet Push Button - Link Download
Tidak ada komentar:
Posting Komentar