I2C
NIM : 4211501002
2017
PRAKTIKUM KOMUNIKASI I2C
TUJUAN :
1. Memahami prinsip mengririm dan menerima data melalui I2C pada mikrokontroler.
2. Mampu membuat program untuk mengirim dan menerima data melalui I2C menggunakan
Arduino dan C#.
PERALATAN :
Prosedur Praktikum :
// I2C Master
void setup()
{
Wire.begin(); // Inisialisasi I2C.
}
byte x = 0;
void loop()
{
Wire.beginTransmission(8); // Kirim data ke Slave Address #8
Wire.write("Slave 8: ");
Wire.write(x);
Wire.endTransmission(); // stop
x++; delay(1000);
}
void setup()
{
Wire.begin(8); // Inisialisasi I2C dengan alamat #8
Wire.onReceive(receiveI2C); // Fungsi receiveI2C dieksekusi ketika menerima data dari master
Serial.begin(9600); // Serial untuk kirim data ke PC
}
void loop()
{
delay(100);
}
TUGAS
Setelah berhasil melakukan percobaan sebelumnya, maka tugas dilanjutkan dengan membuat jaringan
I2C yang terdiri atas satu Master dan 2 Slave (Slave A dan Slave B). PC yang digunakan dapat berjumlah 1
s.d 2 PC. Master menghasilkan data berupa CountUp (seperti praktikum sebelumnya) dan mengirimkan
data tersebut ke kedua Slave. Angka ganjil dikirimkan ke Slave A, dan angka genap dikirimkan ke Slave B.
Jangan lupa set Slave Address yang berbeda pada kedua Slave!
Demonstrasikan ke dosen jika sudah selesai.
Hasil Praktikum :
Analisa : Pada tugas ini kita dapat mengirim data ke beberapa receiver dengan 1 master. Pengiriman
dilakukan dengan memberikan alamat addres pada receiver I2C sehingga data bisa sampai ke receiver.
Pada tugas ini kita dapat mengirim data ganjil ke receiver 1 yang beralamat 8, data genap ke receiver 2
yang beralamat 9, dengan beberapa metode salah satunya dengan menggunakan konsep if-else
modulus ataupun dengan memanfaatkan looping yang terjadi pada Arduino, seperti yang kami buat
pada program diatas.
Kesimpulan :
Pada praktikum kali ini menggunakan I2C arduino sebagai master dan 2 lagi sebagai receiver akan
mengirim dan menerima data. Data yang dikirim dan diterima akan ditamabahkan 1 byte setiap detiknya
,sehingga hasil dari data yang dikirim berututan dari 1,2,3 sampai 255 yaitu bit maksimal dari data byte
i2c Arduino.