Laporan Akhir 3 (I2C)


 

1. Kondisi [KEMBALI]

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