LA2 M3 MIKRO



1. Komponen  [back]
1. Arduino UNO























2. Ground






3. LED

4. Button


2. Rangkaian Simulasi  [back]



3. Flowchart [back]

Master 



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

1.     Bisakah pada SPI menggunakan lebih dari 1 master? Jelaskan beserta alasannya

Jawab :

Untuk SPI, hanya dapat menggunakan 1 master saja. Hal tersebut dikarenakan Master pada SPI sebagai pengontrol komunikasi serial sinkron pada SPI dimana dapat mengirim atau menerima data. Namun, SPI ini dapat memiliki lebih dari 1 Slave dimana terdapat Slave Select (SS) untuk memilih (mengontrol) Slave mana yang dipilih oleh Master.

2.     Jelaskan pengaruh input pullup dan pulldown pada rangkaian !

Jawab :

Pengaruh input pullup dan pulldown pada rangkaian tersebut ada pada button sebagai data yang akan dibaca oleh mikrokontroler Master yang kemudian akan mengirimkan paket data (bit-bit) ke Slave. Berdasarkan program Arduino yang dibuat, ketika button dalam keadaan pullup, maka button akan menerima logika LOW dari Arduino (bernilai 0) sehingga ketika terbaca oleh Master, Master akan mengirimkan paket data “1” dimana pada Slave ketika menerima data “1” berarti LED hidup (berlogika HIGH). Sedangkan ketika pulldown, button akan menerima logika HIGH (bernilai 1) sehingga ketika terbaca oleh Master selain dari nilai 0, Master akan mengirimkan data “2” dimana pada Slave ketika menerima data selain dari “1” berarti LED mati (berlogika LOW).

3.     Jelaskan prinsip kerja SPI pada rangkaian

Jawab :

Pada rangkaian ini digunakan komunikasi SPI ( Serial Peripheral Interface). Komunikasi SPI digunakan pada dua arduino yang masing-masing berperan sebagai master dan slave. Komunikasi ini dilakukan dengan menghubungkan mosi dari master dengan mosi dari slave, miso dari slave dengan miso dari master, sclk dari master dengan sclk dari slave, dan ss dari slave dengan ss master.  Push button berfungsi sebagai input pullup dari master, artinya apabila push button ditekan maka akan berlogika low (0) dan apabila diangkat maka akan berlogika high (1). Saat master mengirimkan logika low ke slave maka LED akan hidup dan mati secara bergantian dengan jeda 1000 ms atau 1 s. Sedangkan saat master mengirimkan logika high ke slave maka LED akan mati.


7. Link Download [back]
Link download video [disini]
Link download rangkaian [disini]
Link download listing program master [disini]
Link download listing program slave [disini]
Link download HTML [disini]


Tidak ada komentar:

Posting Komentar

Bahan Praktikum    Mikroprosesor dan Mikrokontroler OLEH : ANISHA DENIA PUTRI (1810952036) JURUSAN TEKN...