Tugas Pendahuluan 2 Modul 3

Tugas Pendahuluan Percobaan 2

Komunikasi SPI (Serial Peripheral Interface)


1. Kondisi[KEMBALI]

Kondisi yang dipilih pada percobaan ini adalah kondisi 11, yaitu LED diganti menjadi buzzer, dengan kondisi awal buzzer mati, kemudian hidup dengan delay 200 ms.

2. Gambar Rangkaian[KEMBALI]

Rangkaian Simulasi Percobaan 2

3. Video Simulasi[KEMBALI]


4. Prinsip Kerja Rangkaian[KEMBALI]

Rangkaian diatas terdiri dari 2 buah arduino, 2 buah buzzer, 2 buah button, dan 4 buah resistor 220 Ohm. Rangkaian bekerja dengan memanfaatkan komunikasi SPI, yaitu dengan menghubungkan pin 10-13 masing-masing arduino. Arduino 1 didefinisikan sebagai MASTER dan arduino 2 didefinisikan sebagai SLAVE. Buzzer 1 dihubungkan ke pin 7 MASTER dan button 1 dihubungkan ke pin 2. Sedangkan buzzer 2 dihubungkan ke pin 7 SLAVE dan button 2 dihubungkan ke pin 2. Masing-masing pin buzzer dinyatakan sebagai output dan button sebagai input. Saat button 1 ditekan, arus akan mengalir ke pin 2 MASTER. Arus akan diteruskan oleh MASTER ke SLAVE melalui saluran pada pin MISO (pin 12). Arus akan dikeluarkan pada pin 7 SLAVE yang terhubung ke buzzer. Buzzer akan menyala dengan delay 200ms sesuai yang diprogramkan.

Saat button 2 ditekan, arus akan mengalir ke pin 2 SLAVE. Arus akan diteruskan oleh SLAVE ke MASTER melalui saluran pada pin MOSI (pin 11). Arus akan dikeluarkan pada pin 7 MASTER yang terhubung ke buzzer. Buzzer menyala dengan delay 200ms. Berikut program arduino:

//Master Arduino Code:




#include<SPI.h>                             //Library for SPI

#define buzz 7           

#define ipbutton 2

int buttonvalue;

int x;

void setup (void)


{

  Serial.begin(9600);                   //Starts Serial Communication at Baud Rate 115200

 

  pinMode(ipbutton,INPUT);                //Sets pin 2 as input

  pinMode(buzz,OUTPUT);                    //Sets pin 7 as Output

 

  SPI.begin();                            //Begins the SPI commnuication

  SPI.setClockDivider(SPI_CLOCK_DIV8);    //Sets clock for SPI communication at 8 (16/8=2Mhz)

  digitalWrite(SS,HIGH);                  // Setting SlaveSelect as HIGH (So master doesnt connnect with slave)

}


void loop(void)

{

  byte Mastersend,Mastereceive;          


  buttonvalue = digitalRead(ipbutton);   //Reads the status of the pin 2


  if(buttonvalue == HIGH)                //Logic for Setting x value (To be sent to slave) depending upon input from pin 2

  {

    x = 1;

  }

  else

  {

    x = 0;

  }

 

  digitalWrite(SS, LOW);                  //Starts communication with Slave connected to master

 

  Mastersend = x;                            

  Mastereceive=SPI.transfer(Mastersend); //Send the mastersend value to slave also receives value from slave

 

  if(Mastereceive == 1)                   //Logic for setting the LED output depending upon value received from slave

  {

    digitalWrite(buzz,HIGH);              //Sets pin 7 HIGH

    Serial.println("Master LED ON");

  }

  else

  {

   digitalWrite(buzz,LOW);               //Sets pin 7 LOW

   Serial.println("Master LED OFF");

  }

  delay(200);

}

5. Link Download[KEMBALI]

Download File Rangkaian Proteus [disini]

Download Video Simulasi [disini]

Download Program Arduino [disini]

Download Datasheet Arduino Uno [disini]

Download Datasheet Buzzer [disini]

Download Datasheet Button [disini]

Download Datasheet Resistor [disini]

Tidak ada komentar:

Posting Komentar