Laporan Akhir Percobaan 3

  • Arduino-Uno
  • Potensiometer

  • LED







     
     Prinsip kerja rangkaian pada percobaan ini yaitu menggunakan dua Arduino yaitu arduino master dan Arduino slave. Dimana pada I2C ini data dikirimkan melalui pin A4 dan A5 untuk mengirimkan serial data dan serial clock. Pada rangakian ini input dari master berupa potensiometer. Ketika nilai dari potensiometer diperbesar atau diperkecil, maka nilai inputnya yang berlogika high dan low akan dibaca oleh master dan dikirimkan ke slave. Dari slave akan dikirimkan logika high atau low tersebut ke LED yang mengakibatkan delay hidup dan matinya LED akan semakin besar ataupun semakin kecil.
  • 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);
}

·        Analisa Percobaan 3 (I2C)

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

Jawab:

Tidak bisa,karena pada komunikasi I2C dalam proses pengriman data jumlah bit yang di transferkan berjumlah 8 bit sedangkan pada 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 mengakhiri 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