Laporan 2 M3

Komunikasi I2C









 








Master
Slave






//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);

}
    Jelaskan cara komunikasi I2C!(Sertakan gambar)
           
             Sistem komunikasi I2C merupakan system komunikasi yang bersifat synchronous. Dengan metode ini komunikasi device yang dilengkapi dengan I2C protokol dapat dilakukan hanya dengan mempergunakan dua kabel. Pengiriman/penerimaan informasi/data secara serial dengan mempergunakan data line (SDA = Serial Data) dan sebuah sumber clock (SCL = Serial Clock). Kedua kabel, kabel data (SDA) dan kabel clock (SCL), harus di-Pull-UP dengan resistor eksternal. Gambar 1 memperlihatkan contoh arsitektur I2C dengan satu master, yang bertindak sebagai mater adalah UC, dan beberapa slave.

                               Gambar 1. Metode Komunikasi I2C

     Master adalah yang menguasai bus sehingga ia mengendalikan/menghasilkan serial clock dan juga membangkitkan sinyal START dan sinyal STOP. Jadi Master yang menentukan kapan komunikasi dimulai dan komunikasi diakhiri. Sementara Slave menunggu/membaca perintah dari master apakah harus menerima/menulis data atau mengirim data ke Master. Slave tidak boleh membangkitkan pulsa clock (serial clock). Atau dapat disimpulkan Master dapat mengirim atau menerima data dari Slave dan sesama slave tidak boleh berkomunikasi.
        Pada komunikasi serial secara I2C, meskipun serial clock berasal dari Master, namun Slave dapat menahan pulsa clock, pulsa clock berada dalam keadaan low, jika slave belum siap untuk menerima data. Hal ini biasanya terjadi pada peralatan yang lambat. Serial clock pada komunikasi ini harus bersumber dari Clock yang dibangkitkan oleh Master, tidak boleh berasal dari sumber yang lain.





File HTML - Download
File Proteus - Download
File Program - Download
Video Rangkaian - Download

Tidak ada komentar:

Posting Komentar