LAPORAN AKHIR (PERCOBAAN 3)


4.Listing Program
//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);
}

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. 

7.Analisa

Jika menggunakan 2 slave pada I2C bagaimana cara master menentukan komunikasi dengan slave yang mana? Dan jelaskan program nya!

 


Pada rangkaian I2C ini master berfungsi untuk menguasai bus sehingga ia menggendalikan/menghasilkan serial clock dan juga membangkitkan sinyal start dan sinyal stop. Jadi master yang menentukan kapan komunikasi dimulai dan kapan  komunikasi diakhiri. Sementara slave menunggu dan  membaca perintah dari master.

 

Untuk Rangkaian  I2C dapat berkomunikasi dengan banyak slave dimana jika ingin menambahkan slave maka kita hubungkan kabel dari pin scl secara paralel ke slave, dan untuk koding arduinonya sama saja seperti slave sebelum nya, cuman pada koding ini kita membuat sejumlah kondisi untuk menentukan slave mana yang ingin kita hidupkan.

 




8.Link download
download video disini
download rangkaian disini
download listing program disini
download HTML disini 

Tidak ada komentar:

Posting Komentar