Anda di halaman 1dari 16

LAPORAN PRAKTIKUM

SISTEM MIKROPROSESOR DAN MIKROKONTROLER (PRAKTIKUM)


KOMUNIKASI I2C
Hari: Senin Tanggal: 10 April 2023 Jam: 10 - 11

Oleh:

Renaldy Farhan Ramadhan


NIM. 162112433001

Dosen Pengampu:

Dr. Agus Mukhlisin, S.T., M.T.

PROGRAM STUDI TEKNIK ELEKTRO


FAKULTAS TEKNOLOGI MAJU DAN MULTIDISPLIN
UNIVERSITAS AIRLANGGA
2023
BAB I
PENDAHULUAN

1.1 Latar Belakang

Dewasa ini teknologi sedang berkembang pesat di berbagai bidang dan


manusia semakin meningkatkan kemampuan berpikir mereka dalam hal teknologi
tinggi. Kemajuan teknologi tersebut memberikan banyak manfaat bagi kehidupan
sekarang, terutama dalam mempermudah pekerjaan manusia. Salah satu teknologi
yang sedang berkembang adalah komputer, yang memiliki banyak fungsi seperti
pengolahan data, pengontrolan, dan sebagainya. Komputer merupakan alat yang
menghubungkan pengguna dengan perangkat dan salah satu bentuknya adalah
melalui penggunaan mikrokontroler.
Seiring dengan pesatnya kemajuan teknologi di segala bidang, maka
meningkat pula daya pikir manusia akan teknologi tinggi sebagai kebutuhan. Dari
perkembangan kompleks tersebut, tentu muncul teknologi-teknologi baru dan
kemajuan teknologi sangat membantu dalam bidang industri [1].
Pada praktikum kali ini akan membahas mengenai “Komunikasi I2C”
sebagaimana melakukan sebuah prinsip-prinsip kerja dari I2C itu sendiri yang
dapat dilihat sekarang terutama dalam perkembangan teknologi saat ini I2C
terdapat pada kebutuhan seperti sistem elektronik yaitu seperti, mikrokontroler,
sensor, memori, dan beberapa perangkat yang menggunakan I/O (internet of
things).

1.2 Rumusan Masalah

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?

1.4 Manfaat Praktikum


Adapun manfaat percobaan praktikum kali ini yaitu, Manfaat dilaksanakannya
praktikum ini adalah memungkinkan mahasiswa untuk memahami cara kerja
Komunikasi I2C dan memvariasikan hasil output dari percobaan, serta memahami
cara kerja, penggunaan, dan pemrograman komponen yang digunakan. Selain itu,
praktikum ini juga memberikan manfaat lain bagi mahasiswa, seperti dapat
mengimplementasikan pengalaman yang diperoleh dari praktikum ke dalam dunia
industri.

2
BAB II
LANDASAN TEORI

2.1 Mikrokontroler Arduino UNO


Board mikrokontroler berbasis ATmega328 (datasheet) atau Arduino UNO
memiliki 14 pin input dari output digital yang dimana 6 pin input tersebut dapat
digunakan sebagai output PWM dan 6 pin input analog, 16 MHz osilator kristal,
koneksi USB, jack power, ICSP header, dan tombol reset. Untuk mendukung
sebuah mikrokontroler agar bisa dijalankan sebagaimana mestinya, hanya cukup
menghubungkan Board Arduino Uno ke komputer dengan menggunakan kabel
USB atau listrik dengan AC yang-ke adaptor-DC atau baterai untuk
menjalankannya. Lalu, pada setiap 14 pin digital pada arduino uno dapat
digunakan sebagai input dan output, digunakan sebagai fungsi pinMode(),
digitalwrite(), dan digitalRead(). Fungsi-fungsi ini beroperasi di tegangan 5 volt,
Setiap pin dapat memberikan atau menangkap suatu arus maksimum 40 mA dan
mempunyai sebuah resistor pull-up (terputus secara default) 20-50 kOhm [3].

Gambar 2.1. Arduino UNO ATMega328P

2.2 Komunikasi Serial

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].

Gambar 2.2. Konfigurasi pin MCU ATmega16

Komunikasi serial digunakan untuk antarmuka mikrokontroler dan perangkat


yang lain, seperti laptop, komputer, maupun sesama mikrokontroler. 2 pin khusus
digunakan pada komunikasi serial, yaitu TX (transmiter) yang mengirim data dan
RX (receiver) yang menerima data. Pada board Arduino tidak lagi membutuhkan
RS232 untuk koneksi dengan perangkat lain, karena USB Arduino sudah bisa
untuk melakukan hal itu [4].

2.3 Komunikasi I2C

Gambar 2.3. Konfigurasi transfer data I2C

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

3.1 Alat dan Bahan


Berikut ini merupakan alat dan bahan pendukung pada percobaan praktikum
kali ini, yaitu:
1. Dua buah Arduino UNO
2. Kabel Jumper
3. Laptop (IDE Arduino)
4. LCD I2C

3.2 Prosedur Percobaan


Berikut ini beberapa tahapan dalam melakukan prosedur percobaan
Komunikasi I2C (Modul dan Variasi) yaitu, sebagai berikut:
1. Pastikan semua alat dan bahan sudah tersedia untuk masing-masing
kelompok
2. Rangkailah komponen sesuai dengan skematik
3. Tulislah skrip yang terlampir pada IDE Arduino
4. Run program
5. Amatilah hasil yang tertampil pada serial monitor apakah sesuai dengan
yang dituliskan pada kode
6. Catat hasil yang didapatkan pada tabel data hasil percobaan
7. Lakukan percobaan dengan variasi menggunakan komponen yang tersedia.
8. Catat hasil percobaan
9. Jika ada kesalahan, ulangi percobaan sesuai dengan prosedur dengan benar.

3.3 Metode Pengambilan Data


Metode yang digunakan dalam percobaan praktikum kali ini yaitu dengan
melakukan percobaan suatu pendekatan penelitian yang menggunakan angka,
statistik, dan data numerik lainnya untuk mengumpulkan, dan menganalisa.
Biasanya metode ini disebut dengan metode kuantitatif dengan menghasilkan data
yang terstruktur dan dapat diukur dengan cara yang konsisten dan obyektif.

6
3.4 Flowchart (Diagram Alir)
3.4.1 Flowchart Komunikasi I2C (Modul)

Gambar 3.1. Script Code master dan slave

7
3.4.2 Flowchart Komunikasi I2C (Variasi)

Gambar 3.2. Script Code I2C LCD (variasi)

8
3.5 Skematika Rangkaian
3.5.1 Skematika Rangkaian Komunikasi I2C (Modul)

Gambar 3.3. Skematik rangkaian Komunikasi I2C

3.5.2 Skematika Rangkaian Komunikasi I2C (Variasi)

Gambar 3.4. Skematik rangkaian Komunikasi I2C LCD

9
BAB IV
HASIL DAN PEMBAHASAN

4.1 Data Hasil Percobaan


4.1.1 Hasil Percobaan Komunikasi Serial (Modul)
Tabel 4.1. Kondisi Komunikasi Serial terhadap Modul
No. Serial Monitor Arduino 1 Serial Monitor Arduino 2

Input : “kelompok 4”

Output : “kelompok 4”

4.1.2 Hasil Percobaan Komunikasi Serial (Variasi)


Tabel 4.2. Kondisi Komunikasi Serial terhadap Variasi
No. Hasil Gambar

Percobaan variasi dengan menggunaka I2C


1 LCD dengan menghasilkan output dari
slave “Kelompok 4 NIHH BOSS!”

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.2.2 Komunikasi I2C (Variasi)


Berdasarkan data pada tabel 4.2 menunjukkan hasil analisis
percobaan ke-dua yaitu percobaan variasi dengan menggunakan
perantara LCD 16x2 I2C sebagai hasil output yang akan diberikan
nantinya. Cara kerja kurang lebih sama seperti halnya percobaan yang
pertama dengan memasukan data pada serial monitor yang ada pada
arduino sebagai inputannya, sebagai contoh disini dengan memasukkan
data bertulisan “ Kelompok 4 NIHH BOSS!” maka, sesuai inputan yang
diberikan hasil output juga sama memberikan hasil yang sesuai dari
input transmitter atau master pada slave yang akan muncul pada LCD
sebagai output media receiver atau slave.

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.

4.3.2 Komunikasi I2C (Variasi)


Pada percobaan variasi ini melakukan beberapa prinsip kerja
yaitu dengan mengimpor library ke dalam Arduino IDE. Library yang
diperlukan meliputi library untuk mengakses LCD 16x2 dengan modul
I2C, library untuk mengakses sensor DHT11, dan library untuk
mengakses keypad. Selanjutnya, untuk menginstal library, langkah
yang harus diikuti adalah membuka menu Sketch, memilih Include
Library, dan Add ZIP Library. Kemudian arahkan ke folder tempat

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

[1] J. H. Sinaga, “Bab I pendahuluan.” [Online]. Available:


https://repository.uhn.ac.id/bitstream/handle/123456789/1293/Jelly%20H.%2
0Sinaga.pdf?sequence=1. [Accessed: 19-Mar-2023].

[2] BE Wiyudha, “Bab II Tinjauan Pustaka - eprints.umg.ac.id.” [Online].


Available: http://eprints.umg.ac.id/2182/3/BAB%20II.pdf. [Accessed: 16-
Apr-2023].

[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].

[4] MODUL PRAKTIKUM SISTEM MIKROPROSESOR DAN


MIKROKONTROLER, “Komunikasi Serial”, Program Studi Teknik Elektro,
Fakultas Teknologi Maju dan Multidisiplin, Universitas Airlangga.

[5] “Bab II landasan teori - eprints.umm.ac.id.” [Online]. Available:


https://eprints.umm.ac.id/36037/3/jiptummpp-gdl-mahamegamu-47696-3-
babii.pdf. [Accessed: 10-Apr-2023].

15

Anda mungkin juga menyukai