0

Belajar Komunikasi I2C Mikrokontroler dan Arduino

Komunikasi I2c mikrokontroler ataupun i2c pada arduino secara garis besar memiliki prinsip kerja yang sama. I2c merupakan singkatan dari inter integrated circuit merupakan komunikasi serial dan sinkron bus protokol yang memungkinkan kita untuk menghubungkan sejumlah device (slave) dengan device utama (master) dalam satu mode komunikasi.

Seperti telah dijelaskan diatas, sistem komunikasi i2c terdiri dari satu master dan slave (bisa lebih dari satu). Master berfungsi untuk membangkitkan dan mengirim clock pulse serta menentukan kapan dan dengan slave device mana berkomunikasi.

Slave device berfungsi untuk menerima data serta mengirim data yang akan dibaca dan digunakan oleh master device untuk diproses.

Belajar Komunikasi I2c, Inter Integrated circuit mikrokontroler

Belajar Komunikasi I2c, Inter Integrated circuit

Perangkat utama dalam protokol komunikasi i2c ini ialah pulse serial data line (SDA) dan serial clock line (SCL).

Salah satu keunggulan dari komunikasi I2c ini, controller master dapat berkomunikasi dengan berbagai device dengan menggunakan dua kabel, kabel serial data (SDA) dan kabel serial clock (SCL).

Mengenal Jenis Data pada komunikasi I2c Mikrokontroler dan Arduino

Transfer data pada komunikasi I2c:

Transfer data sinyal dan clock pada jenis komunikasi I2c mikrokontroler dan arduino

Transfer data sinyal dan clock pada jenis komunikasi I2c mikrokontroler dan arduino

Berdasarkan diagram komunikasi I2c diatas, transfer data dimulai dengan start condition yaitu kondisi dimana SCL bernilai high dan SDA mengalami perubahan nilai dari high ke low. Lalu master memilih device (slave) tujuan berkomunikasi dengan mengidentifikasi 8 bit adress slave.

Lalu setelah itu, master mentransfer data “1 (high)” jika ingin membaca data dari slave dan mentransfer data “0 (low)” jika ingin memberi perintah pada device slave.

Setelah ini, master dapat berkomunikasi dengan memberi perintah atau mengambil data dari device (slave), lalu diakhiri dengan stop condition dimana kondisi sinyalnya berlawanan dengan kondisi start condition.

Belajar Program Komunikasi I2c Mikrokontroler

Pada kesempatan kali ini, belajarlistrik.com akan mencoba memberikan tutorial contoh komunikasi I2c pada mikrokontroler untuk membaca nilai pada sensor suhu DS1624 dengan compiler basic compiler (Bascom AVR).

Sebaiknya teman-teman belajarlistrik.com membaca datasheet sensor DS1624 untuk mengetahui alamat/address untuk mengakses dan berkomunikasi dengan sensor.

Buat rangkai seperti dibawah ini, jika teman-teman menggunakan white board connection atau buat rangkaian menggunakan proteus nantinya dapat disimulasikan seperti gambar dibawah ini:

Latihan menggunakan I2c dengan menggunakan mikrokontroler dan sensor I2c

Latihan menggunakan I2c dengan menggunakan mikrokontroler dan sensor I2c

 

Belajar program I2c mikrokontroler dengan simulasi proteus

Belajar program I2c mikrokontroler dengan simulasi proteus

Program dan Penjelasan Program I2c Mikrokontroler

Buat program dengan menggunakan compiler bascom (basic compiler) avr, kode program dan penjelasannya seperti dibawah ini:

$regfile = “m8535.dat”

$crystal = 8000000

$baud = 9600

$hwstack = 20

$swstack = 8

$framesize = 8

Penjelasan program:

Deklarasi tipe mikrokontroler yang digunakan yaitu mikrokontroler atmega 8535 dengan osilator 8 MHz dn baudrate komunikasi serial = 9600

Config Lcdpin = Pin , Db4 = Portb.7 , Db5 = Portb.6 , Db6 = Portb.5 , Db7 = Portb.4 , E = Portb.3 , Rs = Portb.2

Config Lcd = 16 * 2

Cursor Off

Penjelasan program:

Konfigurasi pin – pin lcd yang kita hubungkan dengan mikrokontroler atmega 8535, jumlah karakter lcd yang digunakan

Config Scl = Portc.0

Config Sda = Portc.1

Dim I2ctemp As Byte

Penjelasan program:

Konfigurasi pin komunikasi I2c yang akan digunakan, I2c pada mikrokontroler atmega 8535 terletak di portc.0 untuk serial clock line dan portc.1 untuk serial data line

I2cstart

I2cwbyte &H90

I2cwbyte &HAC

I2cstop

Penjelasan program:

Kita mulai komunikasi I2c dengan memberi perintah write slave address (&H90 bilangan hexadecimal jika di biner kan menjadi = 10010000) untuk mengakses address &HAC (&H berarti bilangan hexadecimal) – AC address untuk konfigurasi sensor sesuai datasheet sensor.

Waitms 25

I2cstart

I2cwbyte &H90

I2cwbyte &HEE

I2cstop

Waitms 25

Penjelasan program:

Komunikasi I2c dengan memberi perintah write slave address (&H90 bilangan hexadecimal jika di biner kan menjadi = 10010000) untuk mengakses address &HEE (&H berarti bilangan hexadecimal) – EE address untuk start convertion sensor sesuai datasheet sensor.

Do

Cls

I2cstart

I2cwbyte &H90

I2cwbyte &HAA

I2cstop

I2cstart

I2cwbyte &H91

I2crbyte I2ctemp

I2crbyte I2ctemp , Nack

I2cstop

Penjelasan program:

Komunikasi I2c dengan memberi perintah write slave address (&H90 bilangan hexadecimal jika di biner kan menjadi = 10010000) untuk mengakses address &HAA (&H berarti bilangan hexadecimal) – AA address untuk read data sensor sesuai datasheet sensor.

Setelah itu kita ulangi lagi komunikasi I2c dengan mulai membaca data yaitu dengan mengakses slave address untuk read data = &H91, lalu data yang kita baca kita simpan ke variabel I2ctemp yang telah kita buat diawal

Lcd “Temperature: ” ; Str(i2ctemp) ; Chr(13);

Waitms 25

Loop

End

Penjelasan program:

Kita tampilkan nilai I2ctemp pada LCD

Kode program diatas merupakan kode program jika kita menggunakan mikrokontroler dengan compiler basic compiler (bascom avr). Jika teman-teman menggunakan compiler codevision avr, tinggal menyesuaikan saja.

Atau jika teman-teman menggunakan arduino sebagai controller, logika yang digunakan sama.

Lalu kita download program yang telah kita buat ke rangkaian proteus yang telah dibuat, dan kita simulasikan program yang kita buat.

Hasil simulasi program I2c mikrokontroler dengan sensor DS1621

Hasil simulasi program I2c mikrokontroler dengan sensor DS1621

Demikianlah tutorial belajarlistrik.com tentang pengenalan komunikasi I2c dengan mikrokontroler dan arduino.

Semoga bermanfaat.

admin

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *