Communication

Protokol Komunikasi I2C pada Arduino: Konsep dan Implementasi

Inter-Integrated Circuit (I2C) adalah protokol komunikasi serial sinkron yang dikembangkan oleh Philips (sekarang NXP). I2C hanya membutuhkan 2 wire: SDA (Serial Data) dan SCL (Serial Clock), plus ground. Setiap device memiliki alamat 7-bit atau 10-bit yang unik, memungkinkan hingga 128 devices pada satu bus (praktisnya ~20-30 devices). Protokol dimulai dengan START condition, diikuti alamat device, bit R/W, acknowledgment, data transfer, dan diakhiri STOP condition. Master mengontrol clock dan inisiasi komunikasi, slave merespon request dari master. Pull-up resistor (biasanya 4.7kΩ) diperlukan pada SDA dan SCL. Kecepatan standar 100 kHz (standard mode), 400 kHz (fast mode), hingga 3.4 MHz (high-speed mode). Pada Arduino, gunakan library Wire.h dengan fungsi Wire.begin(), Wire.beginTransmission(), Wire.write(), Wire.endTransmission(), dan Wire.requestFrom(). Troubleshooting umum: cek alamat device dengan I2C scanner, pastikan pull-up resistor terpasang, verifikasi level tegangan (3.3V vs 5V), dan hindari kabel terlalu panjang (maksimal 1-2 meter). Keuntungan I2C: hanya 2 wire, multiple devices, alamat terstandarisasi. Kekurangan: kecepatan terbatas, sensitif terhadap noise pada kabel panjang, memerlukan pull-up resistor.

Kembali ke Artikel

Butuh Solusi IoT atau Smart Sensor?

Tim ahli teknis kami siap memberikan konsultasi gratis untuk proyek Anda.

Hubungi Kami