2. Rangkaian Simulasi [KEMBALI]
3. Flowchart [KEMBALI]
//MASTER
//SLAVE
4. Listing Program [KEMBALI]
//MASTER
#include
#define button 2
#define addr 0x02
bool state, lastState;
void setup() {
// put your setup
code here, to run once:
pinMode(button,
INPUT);
//Serial.begin(9600);
Wire.begin();
lastState =
digitalRead(button);
}
void loop() {
// put your main
code here, to run repeatedly:
state =
digitalRead(button);
if (state !=
lastState) {
lastState = state;
/***********************************************/
// TODO: send data
to slave
Wire.beginTransmission(addr);
if (state == 0) {
Wire.write('A');
//Serial.write('A');
} else {
Wire.write('B');
//Serial.write('B');
}
Wire.endTransmission();
/***********************************************/
}
delay(10);
}
//SLAVE
#include
#define led 2
#define addr 0x02
void setup() {
// put your setup
code here, to run once:
pinMode(led,
OUTPUT);
//Serial.begin(9600);
digitalWrite(led,
LOW);
Wire.begin(0x02);
Wire.onReceive(callback);
}
void callback() {
char c =
Wire.read();
if (c == 'A') {
digitalWrite(led,
HIGH);
} else if (c == 'B')
{
digitalWrite(led,
LOW);
}
}
void loop() {
delay(1);
}
5. Analisa
[KEMBALI]Buatlah agar ada 2 buah push button,1 led dengan 4!
//MASTER
#include //Deklarasi library i2c
#define button1 5
#define button2 4
#define addr 0x02
bool state , lastState;
void setup () {
pinMode(button1, INPUT_PULLUP);
pinMode(button2, INPUT_PULLUP);
Wire.begin();
lastState =
digitalRead(button1);
lastState =
digitalRead(button2);
}
void loop () {
state =
digitalRead(button1);
state =
digitalRead(button2);
if(state !=
lastState){
lastState=state;
Wire.beginTransmission(addr);
if (state == 1
&& state== 0)
{
Wire.write('1');
}
else if(state
== 0 && state== 1)
{
Wire.write('2');
}
else if(state
== 0 && state== 0)
{
Wire.write('3');
} else
{Wire.write('4');
}
Wire.endTransmission();
}
delay(10);
}
//SLAVE
#include
#define
led 7
#define
addr 0x02;
void
setup () {
pinMode(led, OUTPUT); // have to send on
master in so it set as output
digitalWrite(led,LOW);
Wire.begin (0x02);
Wire.onReceive(callback);}
void callback (){
char c = Wire.read();
if (c =='1')
{
digitalWrite(led, HIGH); //LED menyala
delay(100);
digitalWrite(led, LOW); //LED menyala
delay(100);
}
else if (c == '2') //Jika data yang
dikirimkan berlogika
{
digitalWrite(led, HIGH); //LED menyala
delay(1000);
digitalWrite(led, LOW); //LED menyala
delay(1000);
}
else if (c == '3') //Jika data yang
dikirimkan berlogika
{
digitalWrite(led, HIGH); //LED menyala
}
else
{
digitalWrite(led, LOW); //LED mati
}
}
void loop () {
delay(1);
}
6. Video Simulasi
[KEMBALI]7. Link Download [KEMBALI]
Listing Program klik disini
Video Rangkaian klik disini
Tidak ada komentar:
Posting Komentar