Laporan Akhir Percobaan 3
1. Hardware [Kembali]
2. Rangkain Simulasi [Kembali]
3. Listing Program[Kembali]
Master
//MASTER
#include <Wire.h>
#define MASTER_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(MASTER_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(115200);
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);
}
- Komunikasi I2C
5. Video Simulasi dan Prinsip Kerja [Kembali]
Prinsip Kerja:
pin A0 pada arduino master dihubungkan ke potensiometer dan diset menerima input. Kemudian Pin SDA dan SCL antar arduino saling dihubungkan karena disini kita menggunakan komunikasi I2C. Pada program di set alamat slave 9. Pada arduno Slave pin 13 simbungkan ke LED.
Nilai potensiometer yang masuk ke pin A0 arduino akan dikonver menggunakan ADC arduino 10 bit. Lalu arduino akan me mapping nilai 10 bit menjadi 8 bit karena output arduino hanya 8 bit. Data yang sudah dimapping tersebut dikirim ke arduino slave dan menjadikannya nilai delay dari LED untuk mati dan menyala.
Efeknya adalah ketika kita menggeser potensio akan mempengaruhi cepat lambatnya kedap kedip LED.
6. Analisa [Kembali]
Percobaan 3
1. Apa pengaruh baudrate pada komunikasi I2C? dan apakah pada komunikasi I2C baudrate dapat dihilangkan?
Komunikasi I2C sebenarnya tidak perlu melakukan pengaturan baudrate karena komunikasi I2C merupakan komunikasi sinkornus, namun setting baudrate digunakan untuk menghubungkan arduino ke serial monitor. Jika komunikasi I2C dihilangkan baudratenya, maka tidak ada pengaruh pada komunikasi arduinonya namun berpengaruh pada serial monitornya.
2. Analisa pengaruh "SLAVE_ADDR 9" jika nilai 9 pada slave divariasikan!
Fungsi SLAVE_ADDR 9 adalah untuk mendefinisakan alamat slave. Angka 9 pada syntax tersebut menunjukkan alamat 9 yang digunakan oleh slave. Sehingga jika nilai 9 pada slave divariasikan akan merubah alamt slave tersebut. Jika perubahan alamat slave tidak diikutkan dengan konfigurasi master maka data tidak akan sampai pada tujuannya.
Komentar
Posting Komentar