Modul 3 Laporan Akhir 1 (Percobaan 2)





1. Komponen[back]
    a. Arduino
Gambar 1. Arduino



   b. LED 
 
Gambar 2. LED



    c. Push Button

        
Gambar 3. Push button


2. Rangkian Simulasi[back]

     
Gambar 4. Rangkaian sebelum di RUN

Gambar 5. Rangkaian setelah di RUN
 

3. Flowchart[back]
  


Gambar 6. Flowchart Master




Gambar 7. Flowchart Slave



4.Listing Program[back]

//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. 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]








 

Tidak ada komentar:

Posting Komentar