Komunikasi I2C
Laporan Akhir Modul 3

[KEMBALI KE MENU SEBELUMNYA]



1.  Hardware [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. Analisa [Kembali]

1.   1. Bagaimana pengaruh potensiometer terhadap nyala LED?
Pada percobaan ini, potensiometer berguna sebagai input dari master untuk memperbesar atau memperkecil delay hidup dari LED. 
Ketika potensiometer di perbesar maka kecepatan clock pada LED akan semakin cepat, dan apabila potensio diperkecil maka kecepatan Clock pada LED akan semakin lambat.

2. Apa fungsi library <Wire.h> ?
Libray ini berfungsi untuk mengaktifkan komunikasi serial I2C pada arduino. sehingga tidak perlu mendeklarasikan atau mengatur pin pada arduino sebagai jalur komunikasi nya. Library ini menggunakan alamat 7 bit. jika kita memakai alamat 8 bit, maka kita akan menggeser nilai 1 bit ke kanan.
3. Jelaskan prinsip kerja rangkaian!
Pada I2C terdapat master dan slave, data ditransfer menuju slave dalam bentuk message yang terdiri dari kondisi start, Address Frame, R/W bit, ACK/NACK bit, Data Frame 1, Data Frame 2,  dan kondisi Stop.
Kondisi start dimana saat pada SDA beralih dari logika high ke low sebelum SCL.
Kondisi stop dimana saat pada SDA beralih dari logika low ke high sebelum SCL.

R/W bit berfungsi untuk menentukan apakah master mengirim data ke slave atau meminta data dari slave. (logika 0 = mengirim data ke slave, logika 1 = meminta data dari slave)
 
1    


  -HTML

Tidak ada komentar:

Posting Komentar