Percobaan 2 M3 Prak.Mikro



1. Hardware[Kembali]







2. Rangkaian Simulasi[Kembali]





3. Flowchart[Kembali]



4. Listing Program[Kembali]

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

5. Video[Kembali]






6. Analisa[Kembali]
         Inter Integrated Circuit (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. Dihubungkan dengan sistem I2C Bus dapat dioperasikan sebagai Master dan SlaveMaster 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.
            Komunikasi antara Master dengan Slave dimulai dengan membangkitkan pulsa START oleh Master. Pulsa START dibaca oleh Slave pada bus SDA dalam keadaan LOW pada saat pulsa clock dalam keadaan HIGH. Setelah pulsa START dikirimkan, maka pada clock berikutnya Master mengirimkan 8 bit alamat, yang dikirimkan secara serial melalui bus SDA, ke Slave dengan format B6, B5, B4, B3, B2, B1, B0, dan R/W. Bit alamat tersebut mengandung informasi R/W pada LSB. Jika LSB pada byte alamat “1” maka master ingin membaca data dari Slave tetapi jika LSB byte alamat “0” maka master akan menulis pada slave. Karena hanya 7 bit yang dipergunakan dalam byte alamat maka banyaknya device yang dapat dijadikan slave hanya 127. Alamat 0 dipergunakan untuk General Call. Bila alamat dan perintah, Read atau Write, yang dikirimkan oleh master dapat diterima oleh slave maka slave akan membangkitkan pulsa LOW (ACK), pada bus SDA, jika perintah tersebut dapat dijalankan dan pulsa HIGH (NACK) jika perintah tersebut gagal.






           Setelah Master menerima pulsa LOW (ACK), Data dikirimkan/dibaca dari alamat Slave tersebut. Bila data telah berhasil dikirim/dibaca maka slave memberikan pulsa LOW (ACK) pada bus SDA tetapi jika terjadi kegagalan maka slave akan memberikan pulsa HIGH (NACK). Pulsa Stop, pulsa yang naik dari LOW ke HIGH pada saat pulsa clock dalam keadaan HIGH, akan dikrimkan oleh Master untuk menghentikan komunikasi.

7. Link Download[Kembali]
Video                           [Download]
HTML                         [Download]

Tidak ada komentar:

Posting Komentar