C. KOMUNIKASI I2C
1. Hardware [kembali]
2. Rangkaian Simulasi [kembali]
3. Flowchart [kembali]
4. Listing Program [kembali]
6. Analisa [kembali]
7. Link Download [kembali]
4. Listing Program [kembali]
//MASTER
#include
#define SLAVE_ADDR
9
int analogPin = 0;
int val = 0;
void setup() {
Wire.begin();
}
void loop() {
delay(50);
val = map(analogRead(analogPin), 0, 1023,
255, 1);
Wire.beginTransmission(SLAVE_ADDR);
Wire.write(val);
Wire.endTransmission();
}
|
//SLAVE
#include
#define SLAVE_ADDR
9
int LED = 13;
int rd;
int br;
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() {
delay(50);
br = map(rd, 1, 255, 100, 2000);
digitalWrite(LED, HIGH);
delay(br);
digitalWrite(LED, LOW);
delay(br);
}
|
6. Analisa [kembali]
1. Jelaskan prinsip kerja dari I2C dan jelaskan keunggulannya.
Sistem I2C terdiri dari saluran SCL (Serial Clock) dan SDA
(Serial Data) yang membawa informasi data antara I2C dengan pengontrolnya.
Piranti yang dihubungkan dengan sistem I2C Bus dapat dioperasikan sebagai
Master dan Slave. Master adalah piranti yang memulai transfer data pada I2C Bus
dengan membentuk sinyal Start, mengakhiri transfer data dengan membentuk sinyal
Stop, dan membangkitkan sinyal clock. Slave adalah piranti yang dialamati
master. Sinyal Start merupakan sinyal untuk memulai semua perintah,
didefinisikan sebagai perubahan tegangan SDA dari “1” menjadi “0” pada saat SCL
“1”. Sinyal Stop merupakan sinyal untuk mengakhiri semua perintah,
didefinisikan sebagai perubahan tegangan SDA dari “0” menjadi “1” pada saat SCL
“1”.
I2C memungkinkan komunikasi dengan banyak perangkat dan
dengan noise yang rendah.
2. Peran potensiometer pada percobaan
Pada
percobaan potensiometer berfungsi untuk mengatur kecepatan kedip dari LED
dengan cara mengatur tegangan yang terbaca oleh master.
Tidak ada komentar:
Posting Komentar