1. Hardware [kembali]
2. Rangkaian [kembali]
3. Flowchart [kembali]
Master
Slave
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);
}
5. Analisa [kembali]
1. Bagaimana pengaruh Potensiometer tehadap LED ?
Potensiometer adalah salah satu jenis Resistor yang Nilai Resistansinya dapat diatur sesuai dengan kebutuhan Rangkaian Elektronika ataupun kebutuhan pemakainya. Potensiometer merupakan Keluarga Resistor yang tergolong dalam Kategori Variable Resistor. Secara struktur, Potensiometer terdiri dari 3 kaki Terminal dengan sebuah shaft atau tuas yang berfungsi sebagai pengaturnya.
Pada percobaan komunikasi I2C ini, potensiometer dihubungkan dengan LED yang mana potensiometer mempengaruhi kecepatan dari kedipan LED. Apabila potensiometer diputar ke kanan maka LED akan berkedip lebih cepat karena nilai tahanannya semakin besar, sedangkan apabila potensiometer diputar ke arah sebaliknya maka LED akan berkedip lebih lama.
2. Bagaimana prinsip kerja rangkaian ?
Inter Integrated Circuit atau sering disebut I2C
adalah standar komunikasi serial dua arah menggunakan dua saluran yang
didisain khusus untuk mengirim maupun menerima data. 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”.
Sinyal dasar yang lain dalam I2C Bus adalah sinyal acknowledge yang disimbolkan dengan ACK Setelah transfer data oleh master berhasil diterima slave, slave akan menjawabnya dengan mengirim sinyal acknowledge, yaitu dengan membuat SDA menjadi “0” selama siklus clock ke 9. Ini menunjukkan bahwa Slave telah menerima 8 bit data dari Master.
Dalam melakukan transfer data pada I2C Bus, kita harus mengikuti tata cara yang telah ditetapkan yaitu:
- Transfer data hanya dapat dilakukan ketikan Bus tidak dalam keadaan sibuk.
- Selama proses transfer data, keadaan data pada SDA harus stabil selama SCL dalam keadan tinggi. Keadaan perubahan “1” atau “0” pada SDA hanya dapat dilakukan selama SCL dalam keadaan rendah. Jika terjadi perubahan keadaan SDA pada saat SCL dalam keadaan tinggi, maka perubahan itu dianggap sebagai sinyal Start atau sinyal Stop.
3. Apa fungsi library Wire.h pada program ?
Library digunakan untuk mendapatkan fungsi-fungsi yang ada didalam library tersebut. Fungsi yang terdapat didalam library wire.h yaitu :
- begin() ==> menginisiasi protokol I2C di arduino
- requestFrom() ==> meminta data byte dari slave
- beginTransmission ==> memulai transmisi data ke slave I2C sesuai alamatnya
- write ==> mengirim data serial
6. Video Praktikum [kembali]
7. Link Download [kembali]
Link Download Video Praktikum : DISINI
Link Download HTML : DISINI
Tidak ada komentar:
Posting Komentar