LAPORAN AKHIR (PERCOBAAN 3)
4.Listing Program//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); } |
|
Pada Pecobaan kali ini kita menggunakan potensiometer sebagai pengatur delay. Pada percobaan kali ini hampir sama dengan percobaan UART akan tetapi pada pin yang kita gunakan berbeda. Yaitu kita menggunakan pin A4 dan A5 yang saling terhubung antara Master dan Slave.
7.Analisa Jika
menggunakan 2 slave pada I2C bagaimana cara master menentukan
komunikasi dengan slave yang mana? Dan jelaskan program nya!
Pada
rangkaian I2C ini master berfungsi untuk menguasai bus sehingga ia
menggendalikan/menghasilkan serial clock dan juga membangkitkan sinyal start
dan sinyal stop. Jadi master yang menentukan kapan komunikasi dimulai dan
kapan komunikasi diakhiri. Sementara
slave menunggu dan membaca perintah dari
master.
Untuk
Rangkaian I2C dapat
berkomunikasi dengan banyak slave dimana jika ingin menambahkan slave maka kita
hubungkan kabel dari pin scl secara paralel ke slave, dan untuk koding
arduinonya sama saja seperti slave sebelum nya, cuman pada koding ini kita
membuat sejumlah kondisi untuk menentukan slave mana yang ingin kita hidupkan.
8.Link download
Tidak ada komentar:
Posting Komentar