Oleh:
Dosen Pengampu:
Berdasarkan latar belakang dalam percobaan praktikum kali ini, penulis dapat
merumuskan masalah sebagai berikut.
1. Bagaimana prinsip kerja sebuah komunikasi I2C pada arduino?
2. Bagaimana cara memprogram variasi pada komunikasi I2C terhadap
arduino?
3. Bagaimana prinsip kerja komunikasi I2C terhadap LCD I2C jika
digabungkan dan dijalankan bersamaan?
1
1.3 Tujuan Praktikum
Adapun tujuan yang ingin dicapai dari percobaan Komunikasi I2C pada
praktikum kali ini antara lain:
1. Mampu memahami prinsip kerja sebuah komunikasi I2C pada arduino?
2. Mampu memahami cara memprogram variasi pada komunikasi I2C
terhadap arduino?
3. Mampu memahami prinsip kerja komunikasi I2C terhadap LCD I2C jika
digabungkan dan dijalankan bersamaan?
2
BAB II
LANDASAN TEORI
Komunikasi serial adalah salah satu dari metode komunikasi data, di mana data
yang dikirimkan akan dikirim secara bergantian per 1 bit diikuti oleh bit lainnya
dalam satu jalur yang sama, berbeda dengan komunikasi paralel di mana data dapat
dikirimkan dengan bersamaan melalui beberapa jalur sekaligus. Selain hanya
3
menggunakan 1 jalur pengiriman saja, komunikasi serial juga memiliki antar muka
yang lebih kompleks dari pada komunikasi paralel. Dari segi perangkat keras,
komunikasi serial perlu melakukan proses konversi dari data paralel ke serial atau
sebaliknya yang disebut UART (Universal Asynchronous Receiver/Transmiter)
[5].
Inter Integrated Circuit atau sering disebut I2C adalah standar komunikasi
serial dua arah menggunakan dua saluran yang didisain khusus untuk mengirim
maupun menerima data. 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, 17 mengakhiri transfer
4
data dengan membentuk sinyal Stop, dan membangkitkan sinyal clock. Slave
adalah piranti yang dialamati master [2].
5
BAB III
METODOLOGI PRAKTIKUM
6
3.4 Flowchart (Diagram Alir)
3.4.1 Flowchart Komunikasi I2C (Modul)
7
3.4.2 Flowchart Komunikasi I2C (Variasi)
8
3.5 Skematika Rangkaian
3.5.1 Skematika Rangkaian Komunikasi I2C (Modul)
9
BAB IV
HASIL DAN PEMBAHASAN
Input : “kelompok 4”
Output : “kelompok 4”
10
4.2 Analisis Data
4.2.1 Komunikasi I2C (Modul)
Berdasarkan data pada tabel 4.1 menunjukkan hasil analisis
percobaan pertama yaitu percobaan sesuai modul komunikasi I2C
dengan arduino. Cara kerja menunjukkan saat master atau sebagai
media transmitter pada arduino mengirimkan data lewat serial monitor
maka slave sebagai media receiver (penerima) akan menerima data
yang telah dikirimkan oleh master. Dari hasil percobaan kali ini sebagai
contoh yang telah dilakukan dengan mengirim data berupa tulisan
“kelompok 4” dan slave membaca dengan menerima data dari hasil
master menginput data yang berupa tulisan sama yaitu “kelompok 4”,
dengan hal ini bahwa cara kerja antara transmitter dan receiver pada
komunikasi I2C berhasil dan sesuai dengan apa yang diinginkan
pengguna.
4.3 Pembahasan
Pada pembahasan yang bisa kami jelaskan dari beberapa percobaan yaitu
diantaranya, percobaan Komunikasi I2C (Modul) dan percobaan Komunikasi I2C
dengan LCD I2C (Variasi). Berikut ini kami jabarkan prinsip kerja dalam sebuah
pembahasan di bawah ini :
11
4.3.1 Komunikasi I2C (Modul)
Pada percobaan sesuai dengan modul menggunakan
komunikasi I2C hanya membutuhkan dua jalur untuk berkomunikasi
antar perangkat. Dua jalur tersebut adalah SDA (Serial Data) dan SCL
(Serial Clock). SCL merupakan jalur yang digunakan untuk
mensinkronisasi transfer data pada jalur I2C, sedangkan SDA
merupakan jalur untuk data. Pengalamatan dalam I2C bisa 7 bit atau 10
bit.
Pada prektikum ini dibuktikan hanya membutuhkan 2
mikrokontroler dihungkan pada master dan slave nyam aka antar
mikrokontroler tersebut dapat berperan masing masing menjadi
penerima dan yang mengirimkan (transmitter) sehingga dapat dijadikan
komunikasi I2C. Pemberitahuan (Acknowledge): receiver wajib
mengirim sinyal acknowledge atau sinyal balasan setiap selesai
pengiriman 1 byte (8 bit data). Master harus memberikan extra clock
atau clock tambahan pada SCL, yaitu clock ke-9 yang memberikan
kesempatan receiver, master tetap berperan sebagai penentu sinyal
stop. Pada bit akhir penerimaan byte terakhir, master tidak
mengirimkan sinyal acknowledge. SDA dibiarkan high oleh receiver
dalam hal ini master, kemudian master mengubah logika SDA dari low
menjadi high yang berarti sinyal stop.
12
library disimpan, pilih library yang ingin dimasukkan, dan klik open.
Jika berhasil, akan muncul notifikasi "library added to your libraries".
Pada percobaan pertama, praktikan akan membuat scanning
alamat pada modul I2C. Di dalam kode, baris pertama meminta
compiler untuk menyertakan library untuk mengakses LCD 16x2
dengan modul I2C. Baris selanjutnya berisi perintah void setup() yang
akan dieksekusi hanya satu kali saat program pertama kali berjalan.
Kemudian, terdapat perintah wire.begin() untuk menginisialisasi
protokol I2C pada Arduino, serta serial.begin(9600) untuk mengatur
kecepatan transmisi data. Baris selanjutnya berisi perintah void loop()
yang akan membaca kode-kode yang ada di dalamnya berulang kali
oleh Arduino.
Selanjutnya, terdapat perintah int nDevices untuk
mendeklarasikan tipe data angka numerik tanpa koma. Kemudian,
terdapat perintah Serial.println("Memindai...") untuk mengirimkan
data ASCII+CR,LF. Di baris berikutnya, terdapat perintah for (address
= 1; address < 127; address++) yang mengatur perulangan alamat dari
1 hingga 127. Kemudian, terdapat perintah
Wire.beginTransmission(address) untuk memulai transmisi data ke
slave I2C sesuai alamatnya. Selanjutnya, terdapat perintah error =
Wire.endTransmission() untuk mengakhiri transmisi data ke slave I2C
dengan memeriksa kesalahan pada alamatnya. Jika error == 0, maka
akan muncul perintah Serial.print("I2C terbaca pada alamat 0x") untuk
mengirimkan data I2C yang terbaca pada alamat 0x. Terakhir, terdapat
perintah if (address < 16) untuk memeriksa apakah alamat lebih kecil
dari 16.
13
BAB V
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Berikut ini beberapa poin yang bisa kami tarik kesimpulan dari hasil
percobaan praktikum kali ini yaitu, sebagai berikut:
1. Prinsip kerja dalam pengujian komunikasi serial I2C melibatkan
menghubungkan kedua slave (sebagai pengirim) ke master (sebagai
penerima) dengan jarak yang bervariasi, serta mengambil data sinyal
komunikasi I2C.
2. Pada prinsip kerja variasi ini perlu mengetahuinya sebelum menggunakan
LCD I2C, dengan diperlukan pendeklarasian library untuk LCD I2C
terlebih dahulu. Tanpa library wire.h, Arduino dan LCD I2C tidak akan
dapat terhubung dengan sistem.
3. Komunikasi antara Arduino (sebagai master) dan LCD (sebagai slave) pada
sistem I2C dilakukan dengan mengirimkan data dari Arduino ke LCD
melalui protokol I2C dengan menggunakan alamat slave yang telah
ditentukan. Setelah data diterima oleh LCD, LCD akan memproses data
tersebut sesuai dengan perintah yang diberikan, seperti menampilkan teks,
angka, atau karakter lainnya pada posisi yang diinginkan di layar LCD.
5.2 Saran
Pada percobaan praktikum kali ini, diharapkan sebuah alat pendukung
berupa komponen-komponen yang digunakan pada percobaan praktikum yaitu
sebuah komponen-komponen yang mendukung dan mumpuni agar dapat
menunjang kenyamanan pada praktikum-praktikum selanjutnya agar lebih optimal
dan maksimal.
14
DAFTAR PUSTAKA
[3] “Bab II Dasar teori 2.1. Arduino Uno - eprints.utdi.ac.id.” [Online]. Available:
https://eprints.utdi.ac.id/4940/3/3_143310018_BAB_II.pdf. [Accessed: 14-
Feb-2023].
15