I2C bermakna Inter-Intergrated Circuit, satu protokol yang digunakan untuk Komunikasi Serial antara dua IC Chip.

Kebanyakan circuit IC menggunakan komunikasi I2C untuk mengurangkan penggunaan wire-signal. Dengan I2C, pelbagai data binary dan juga data yang kompleks dapat dihantar melalui 2 wayar sahaja.

Antara beberapa module compatible dengan Arduino yang menggunakan komunikasi IIC adalah seperti :
- LCD Screen 16×02 (atau 20×04) I2C
- Gyro/Accelerometer – MPU6050
- Barometric Sensor – BMP180
- OLED Small Display 128×64
- Sesetengah Motor Module seperti module kawalan stepper.
Perlu diketahui juga, IIC merupakan sejenis Synchronous Communication. Ia berbeza dengan Asynchronous seperti UART, kerana UART tidak mempunyai nadi-Clock.
Komunikasi yang mempunyai nadi-Clock, komunikasinya adalah lebih cepat dan lebih banyak data dapat dihantar kerana setiap bit dihantar bersama satu denyutan clock. Clock untuk Protokol IIC adalahdalam lingkungan 100kHz sehingga 400kHz.
Dalam IIC, pin Clock adalah pin SCL dan pin Data adalah pin SDA. Master akan mengawal denyutan frequency clock dan setiap Slave device akan berdenyut pada nadi-Clock yang sama. Lihat contoh struktur penghantaran data IIC seperti rajah berikut:

SAMBUNGAN SIGNAL & Wiring
Mana-mana module yang menggunakan komunikasi IIC memerlukan 2 sambungan signal ke Arduino:
- SCL – Signal Clock
- SDA – Signal Data
Voltage input 5V dan juga Ground memang menjadi keperluan setiap module dan komponen. Di bawah adalah contoh satu network IIC, yang menggabungkan pelbagai device dalam satu masa yang sama.

IIC Address/Alamat
Dalam satu network IIC seperti gambar di atas, Arduino atau Master mengenal pasti setiap device melalui Address atau Alamat-nya. Setiap device IIC (slave) pasti mempunyai Alamat-nya yang telah ditetapkan dalam IC chip dalam bentuk binary. Dalam Arduino, Address ini akan dipanggil dalam bentuk HEX seperti contoh, 0x27.

Address atau Alamat IIC device, kebiasaannya di berikan dalam Data-Sheet device tersebut.
Namun, terdapat sketch-Arduino mudah yang boleh SCAN address mana-mana device IIC. Sketch ini sangat mudah dan sangat berguna untuk memastikan Alamat IIC device adalah betul.
Projek/Sketch untuk IIC Scanner adalah dalam link di bawah:
MENUKAR ADDRESS/ALAMAT IIC
Terdapat juga sesetengah device IIC, yang dapat ditukar Alamat/Address-nya jika anda dapat menjumpai Soldering-Jumper seperti rajah berikut:

Dengan Soldering-Jumper seperti ini, device IIC ini boleh mempunyai 8 kombinasi Alamat/Address IIC.
Namun, device yang tidak mempunyai Soldering-Jumper seperti di atas, hanya mempunyai SATU Alamat/Address sahaja.
Pin IIC Pada Arduino UNO
Pada Arduino UNO, pin SDA dan SCL adalah pada pin Analog A4 dan A5. Ini bermakna, apabila menggunakan IIC dengan Arduino, 2 Analog input tidak dapat digunakan. Lihat rajah berikut untuk melihat pin SDA dan SCL pada Arduino UNO:
Kaedah sambungan wayar signal dari module device ke Arduino adalah,
SDA-SDA dan SCL-SCL.
Lihat contoh diagram berikut:

Contoh-contoh Sketch IIC untuk Module/Device:
Jika anda sudah mempunyai module atau device IIC, anda mungkin dapat menguji device tersebut melalui panduan module-module berikut:
- Module LCD Display 16×2 – Test Hello World!
Jika anda dapati artikel-artikel kami membantu project anda, sharekan artikel-artikel kami pada rakan-rakan anda, agar kami lebih bermotivasi untuk menulis lebih banyak artikel lagi.
Juga, anda boleh ke Online-Webstore kami di URL berikut untuk mendapatkan keperluan-keperluan projek Arduino dan DIY anda: