Laporan Akhir 3(Percobaan 3)







Gambar 1 Resistor
Gambar 2. Potensiometer

Gambar 3. LED

Gambar 4. Arduino Uno



Flowchart Master

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





Prinsip Kerja
     Rangkaian diatas merupakan rangkaian komunikasi I2C. Rangkaian tersebut terdiri dari 2 arduino yang berfungsi sebagai master dan slave. Pada komunikasi I2C dapat menggunakan lebih dari 1 slave. Pada rangkaian tersebut terdapat potensiometer yang dapat mengubah nilai tegangan yang diinginkan. Sinyal dari Potensio tersebut masuk ke pin A0 arduino master yang kemudian dilakukan perhitungan sesuai program. Data yang telah dihitung dikirim melalui Pin A4 sebagai pin data yang terhubung dengan A4 pada slave. Pin A5 merupakan pin clock. Lalu setelah data diterima oleh arduino slave output akan dikeluarkan oleh pin 13 yang kemudian diterima resistor lalu mengarah ke led lalu ke ground. Saat potensiometer tinggi maka delay pada led saat berkedip akan lebih lama dibandingkan saat resisstansi potensiometer rendah.

ANALISA PERCOBAAN 3 [I2C]:

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

Jawab:

Tidak. Banyaknya data yang dapat dikirim pada komunikasi I2C adalah 8 bit/frame, dimana pada I2C terdapat 2 frame. Dalam 1 siklus pengiriman data, 1 paket data terdiri atas maksimal 32 bit dengan komponen berupa 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. Sedangkan 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 berarti mengirim data ke slave, logika 1 berarti meminta data dari slave). ACK/NACK bit berfungsi sebagai pemberi kabar jika data frame ataupun address frame telah diterima receiver.

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

Jawab:

Master hanya dapat mengirimkan sejumlah byte (masing-masing 8 bit). Saat memuliah 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 ACK (berlogika 0) yang dikeluarkan Slave kembali untuk dapat menerima data selanjutnya hingga SDA menerima sinyal NACK (berlogika 1) untuk menghentikan transfer data


7. Download [kembali]
1. Video Download!!!
2. HTML  Download!!!
3. Rangkaian  Download!!!
4. List Program Master Download!!!
5. List Program Slave Download!!!


No comments:

Post a Comment

Bahan Presentasi Untuk Matakuliah  SENSOR Dosen Pengampu :  Darwison, MT  OLEH : FARHAN FADIL IRSAN (1810952041) ...