Laporan Akhir Percobaan 3

  • Arduino-Uno
  • Potensiometer

  • LED








     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. 





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

·        Analisa Percobaan 3 (I2C)

1.      Apakah kita dapat mengirim data sebanyak 9 bit? Jelaskan alasannya!

Jawab:

Jika mengirim data, Master hanya dapat mengirimkan sejumlah byte (masing-masing 8 bit). Saat memulai proses transmitting dari Master, 7 bit pertama sebagai alamat Slave yang akan dituju (Address frame), 1 bit kemudian sebagai R/W bit untuk memberitahukan ke Slave-slave apakah Master akan menerima atau mengirimkan data. Sedangkan bit ke-9, bit tersebut akan dikeluarkan oleh Slave sebagai tanda bahwa data telah diterima oleh receiver (ACK/NACK). Kemudian, Master akan menulis data 8 bit (Data frame) dan bit-9 oleh Slave sebagai sinyal acknowledge / ACK (berlogika 0) yang dikeluarkan Slave kembali untuk dapat menerima data selanjutnya hingga SDA menerima sinyal Not Acknowladge / NACK (berlogika 1) untuk mengakhirim transfer data.

2.      Bagaimana cara master mengirimkan address ke slave? Berapa bit address yang dikirim? Berapa addres unik yang dapat tercipta oleh master?

Jawab:

Pada I2C, data ditransfer 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 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) 

§  ACK/NACK bit berfungsi sebagai pemberi kabar jika data frame ataupun address frame telah diterima receiver. 

8. Link Download [back]
    Link Download Video [disini]
    Link Download Rangkain [disini]
    Link Download Listing Program Master [disini] Slave [disini]
    Link Download  HTML [disini]

Tidak ada komentar:

Posting Komentar