laporan akhir 3 modul 3



1. Hardware

Arduino Uno

Potensio

LED


[kembali]

2. Rangkaian Simulasi

[kembali]

3. Flowchart

 

 [kembali]

4. Listing program

- Master

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

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

[kembali]

5. Video

 




[kembali]

6. Prinsip kerja

Pada komunikasi I2C menggunakan 2 kabel yaitu Serial clock (SCL) dan Serial data (SDA). Master terhubung dengan kaki output dari potensiometer melalui pin analog A0. Sedangkan slave terhubung dengan resistor dan LED melalui pin 13 . Listing program mengatur fungsi potensiometer pada rangkaian ini sebagai pengatur kecepatan hidup-matinya LED.

[kembali]

 
7. Analisa

 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. 

[kembali]

8. Link download
Rangkaian klik di sini
Video simulasi klik di sini
Flowchart klik di sini
listing program klik di sini (master) klik di sini (slave)
HTML klik di sini
[kembali]

Tidak ada komentar:

Posting Komentar