KOMUNIKASI I2C
1. Komponen [back]
//MASTER
#include <Wire.h>
#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 <Wire.h>
#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);
} Analisa dengan mengubah rangkaian menjadi mengatur intensitas cahaya LED ?
Jawab:
Pada rangkaian simulasi percobaan 3 mengenai komunikasi I2C ini kita menggunakan potensiometer yang mana merupakan komponen yang bisa diubah nilai resistansinya dengan cara memutar tuas pada potensiometer tersebuat. Untuk mengubah rangkaian menjadi mengatur intensitas, maka listing program pada slave dari yang awalnya:
digitalWrite(LED, HIGH);
delay(br);
digitalWrite(LED, LOW);
delay(br);
}
Menjadi:
digitalWrite(LED,br);
delay(200);
}
Sehingga dengan demikian maka intensitas cahaya pada LED dapat diubah-ubah dengan mengganti nilai resistansi pada potensiometer.



Tidak ada komentar:
Posting Komentar