Laporan Akhir Percobaan 3 modul 3







1.   1. Jelaskan prinsip kerja dari I2C dan jelaskan keunggulannya.
Sistem I2C terdiri dari saluran SCL (Serial Clock) dan SDA (Serial Data) yang membawa informasi data antara I2C dengan pengontrolnya. Piranti yang dihubungkan dengan sistem I2C Bus dapat dioperasikan sebagai Master dan Slave. Master adalah piranti yang memulai transfer data pada I2C Bus dengan membentuk sinyal Start, mengakhiri transfer data dengan membentuk sinyal Stop, dan membangkitkan sinyal clock. Slave adalah piranti yang dialamati master. Sinyal Start merupakan sinyal untuk memulai semua perintah, didefinisikan sebagai perubahan tegangan SDA dari “1” menjadi “0” pada saat SCL “1”. Sinyal Stop merupakan sinyal untuk mengakhiri semua perintah, didefinisikan sebagai perubahan tegangan SDA dari “0” menjadi “1” pada saat SCL “1”.
I2C memungkinkan komunikasi dengan banyak perangkat dan dengan noise yang rendah.

2. Peran Potensiometer pada percobaan?
 Dari percobaan I2C bisa kita lihat pengaruh dari potensiometer , apabila potensio kita putar ke arah Vcc , maka durasi delay akan lebih lama untuk hidup dan mati nya.
Apa bila kita putar ke arah ground , maka durasi delay untuk hidup mati akan lebih cepat.
      

2. Hardwarre[kembali]
a. Potensiometer




b.LED




3. Rangkaian Simulasi [kembali]




4. Prinsip kerja rangkaian [kembali]
Prinsip kerja rangkaianya adalah , Terdpat 2 buah arduino, yang dapat kita sebut sebagai Master dan Slave , disini menggunakan sistem input pull up. Master disini sebagai pengirim informasi dan slave sebagai penerima informasi. dan pembeda disni adalah kita mnggunakan potesio meter yang berfungsi sebagai pengatur kecepatan LED itu sendiri untuk hidup dan mati

5. Video [kembali]


6. Flowchart [kembali]



7. Listing [kembali]
//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);
}

KLIK INI UNTUK VIDEO
KLIK INI UNTUK HTML

Tidak ada komentar:

Posting Komentar