Anda di halaman 1dari 10

LAPORAN PRAKTIKUM

I2C

Nama : Muhammad Rezki Dwijayanto

NIM : 4211501002

PROGRAM STUDI MEKATRONIKA

JURUSAN TEKNIK ELEKTRO

POLITEKNIK NEGERI BATAM

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 :

1. Arduino Uno : 3 buah


2. Kabel Jumper : 1 set
3. USB cable : 2 pcs
PERCOBAAN 1 Mengirim dan Menerima Data Melalui I2C

Prosedur Praktikum :

Siapkan dua buah Arduino (Master dan Slave).


Hubungkan SCL dan SDA kedua Arduino seperti gambar di bawah. Hubungkan GND jika Master
dan Slave terhubung dengan dua computer yang berbeda.

Jalankan kode berikut pada Master:

// I2C Master

#include <Wire.h> // Library Arduino untuk I2C

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);
}

Jalankan kode berikut pada Slave:


// I2C Slave

#include <Wire.h> // Library Arduino untuk I2C

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);
}

// Fungsi ini dieksekusi setiap menerima data dari master


void receiveI2C(int howMany)
{
while (Wire.available() > 1)
{
char c = Wire.read();
Serial.print(c);
}
int x = Wire.read();
Serial.println(x);
}
Dengan meggunakan PC (RealTerm), lihat hasil data yang diterima Slave.

Demonstrasikan ke dosen jika sudah selesai.

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 :

Percobaan 1 Send ASCII :


Program :
Analisa :
Pada praktikum I2C ini kita mengirim data sekaligus dan menerimanya sampai readine data tersebut. Data
yang dikirim berupa data string dan data byte. Pada data byte data yang dikirimkan maximal 255 karna
bit maximal pada Arduino ialah 8 bit maka byte data maximalnya adalah 2^8-1= yaitu 255.
Hasil dari tugas :
PROGRAM MASTER PADA TUGAS.
Versi Memanfaatkan looping.
Versi 2 Memanfaatkan modulus dan fungsi.
PROGRAM SLAVE 9 TAMBAHAN.

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.

Anda mungkin juga menyukai