Modul 3 - Percobaan 3
20.25
Modul 3 Praktikum Mikroprosessor & Mikrokontroller
Percobaan III: Komunikasi I2C
MODUL 3
COMMUNICATION
a. Master
#include <Wire.h> #define SLAVE_ADDR 9
int digitalPin = 2;
int val = 0;
void setup() {
Wire.begin();
}
void loop() {
delay(50);
val = digitalRead(digitalPin);
Wire.beginTransmission(SLAVE_ADDR);
Wire.write(val);
Wire.endTransmission();
}
b. Slave
#include <Wire.h>
#define SLAVE_ADDR 9
int LED = 13;
int rd;
void setup() {
pinMode(LED, 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() {
digitalWrite(LED,LOW);
if(rd==1){
digitalWrite(LED, LOW);
}
if(rd==0){
digitalWrite(LED, HIGH);
}
}
1.
Penggunaan
jalur komunikasi I2C memungkinkan untuk pemakaian wiring yang lebih sedikit.
Dengan penambahan Arduino, penggunaan I2C dapat dilakukan dengan penambahan
wiring pada SCL dan SDA. Selain itu, penggunaan komunikasi I2C pada Arduino
dapat saling berbagi informasi melalui pengalamatan yang dilakukan pada
program.