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