1. Alat dan Bahan [Kembali]
2. Rangkaian [Kembali]
3. Prinsip Kerja Rangkaian [Kembali]
Pada percobaan rangkai 2 arduino dengan menyambungkan pin 11, 12, 13 untuk membuat arduino master dan slave, yang mana pada pin tersebut merupakan clock arduino. pada arduino master, rangkai pin 7 ke resistor dan led selanjutnya ke ground, dan pin 2 ke resistor, vcc dan button, yang selanjutnya button terhubung ke ground. Pada arduino slave, hubungkan pin 7 ke resistor dan led selanjutnya ke ground. lalu hubungkan pin 2 ke vcc, resistor, dan button yang selanjutnya ke ground. Lalu hubungkan ground arduino master ke slave. Setelah dirangkai, masukkan program yang ada pada listing program dan upload programnya ke masing-masing arduino. Maka dapat terlihat LED akan hidup dan jika button ditekan LED akan mati.
4. Listing Program [Kembali]
master
#include<SPI.h>
#define led 7
#define button 2
int buttonvalue;
int x;
void setup (void)
{
Serial.begin(115200); //Starts Serial Communication at Baud Rate 115200
pinMode(button,INPUT); //Sets pin 2 as input
pinMode(led,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(button); //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(led,HIGH); //Sets pin 7 HIGH
Serial.println("Master Buzzer ON");
}
else
{
digitalWrite(led,LOW);
Serial.println("Master led OFF");
}
}
slave
#include <SPI.h>
#define ledpin 7
#define buttonpin 2
volatile boolean received;
volatile byte Slavereceived,Slavesend;
int buttonvalue;
int x;
void setup()
{
Serial.begin(115200);
pinMode(buttonpin,INPUT); // Setting pin 2 as INPUT
pinMode(ledpin,OUTPUT); // Setting pin 7 as OUTPUT
pinMode(MISO,OUTPUT); //Sets MISO as OUTPUT (Have to Send data to Master IN)
SPCR |= _BV(SPE); //Turn on SPI in Slave Mode
received = false;
SPI.attachInterrupt(); //Interuupt ON is set for SPI commnucation
}
ISR (SPI_STC_vect) //Inerrrput routine function
{
Slavereceived = SPDR; // Value received from master if store in variable slavereceived
received = true; //Sets received as True
}
void loop()
{
if(received) //Logic to SET Buzzer ON OR OFF depending upon the value recerived from master
{
if (Slavereceived==1)
{
digitalWrite(ledpin,HIGH); //Sets pin 7 as HIGH LED ON
Serial.println("Slave Buzzer ON");
}
else
{
digitalWrite(ledpin,LOW); //Sets pin 7 as LOW LED OFF
Serial.println("Slave Buzzer OFF");
}
buttonvalue = digitalRead(buttonpin); // Reads the status of the pin 2
if (buttonvalue == HIGH) //Logic to set the value of x to send to master
{
x=1;
}
else
{
x=0;
}
Slavesend=x;
SPDR = Slavesend; //Sends the x value to master via SPDR
}
}
5. Video Percobaan [Kembali]
6. Analisa [Kembali]
Percobaan 2
1. Analisa pengaruh push button pada rangkaian Percobaan 2
push button berpengaruh untuk mematikan LED atau sebagai pemutus tegangan vcc. Sehingga, jika tidak ditekan maka LED akan hidup terus.
2. Analisa prinsip kerja SPI pada percobaan
Pada arduino pin 11, 12, 13 merupakan pin clock, sehingga untuk membuat master dan slave harus terhubung satu sama lain. Lalu untuk menghubungkan 2 arduino agar bekerja, ground harus terhubung, jika tidak maka rangkaian tidak dapat berjalan.
Percobaan 3
1. Analisa pengaruh potensiometer terhadap nyala LED
Pengaruh potensiometer terhadap LED adalah untuk mengatur tingkat kecerahan LED. Jika diputar ke arah VCC maka LED semakin terang dan jika diputar ke arah ground maka LED semakin redup.
2. Prinsip kerja I2C pada percobaan 3
Pada percobaan 3, menggunakan arduino master dan slave yang mana A4 dan A5 serta ground terhubung satu sama lain. Pada pin A0 pada master arduino dihubungkan ke potensiometer dan resistor serta LED terhubung ke pin 13 pada arduino slave. Ketika program dimasukkan dan dijalankan maka didapat potensiometer dapat mengubah intensitas cahaya pada LED.
7. Link Download [Kembali]
Tidak ada komentar:
Posting Komentar