//Master
#include <Wire.h>
#define BUTTON A0
#define MASTER_ADDR 9
void setup(){
Wire.begin();
pinMode(BUTTON, INPUT);
}
void loop(){
delay(50);
int button_status = digitalRead(BUTTON);
Wire.beginTransmission(MASTER_ADDR);
Wire.write(button_status);
Wire.endTransmission();
}
//Slave
#include <Wire.h>
#define SLAVE_ADDR 9
int LED = 13;
int rd;
void setup(){
pinMode(MOTOR, OUTPUT);
Wire.begin(SLAVE_ADDR);
Wire.onReceive(receiveEvent);
Serial.begin(9600);
Serial.println("I2C Slave demo");
}
void receiveEvent(){
rd = Wire.read();
Serial.println(rd);
}
void loop(){
if(rd == HIGH){
digitalWrite(LED, LOW);
}else{
digitalWrite(LED, HIGH);
}
}
1). Analisa apa yang akan terjadi jika master mengirimkan data angka lebih dari 255 ke slave?
Jawab:
Apabila "master" mengirimkan angka lebih dari 255 le slave, maka ada kemungkinan besar akan terjadi error pada program dikarenakan jika melebihi kapasitas, program akan terus berjalan hingga terjadinya error pada saar rangkaian dijalankan.
2). Analisa apa yang akan terjadi jika pin SCL dan SDA diputus?
Jawab:
pada rangkaian simulasi atau pun percobaan, jika pin SCL dan SDA diputus, maka pada motor akan terus menyala pada rangkaian yang dibuat tanpakita tekan tombil push botton dan pada saat percobaan menggunakan LED, maka LED juga akan terus hdup tanpa ada mendapatkan pengaruh dari potensiometer sehingga potensiometer tidak akan berpengaruh terhadap LED, karena pin SCL dan SDA merupakan pin communicationnya, sehingga tanpa pin tersebut tidak ada pemrosesan data pada arduino sehingga LED tidak akan menyala.
- HTML Link Download
- Rangkaian Link Download
- Listing Program Master Link Download
- Listing Program Slave Link Download
- Video Link Download
- FlowChart Link Download
Tidak ada komentar:
Posting Komentar