Jika jaman dulu kita ruwet dengan semrawutnya kabel pada pin I/O mikrokontroler, sekarang berkat adanya komunikasi I2C keruwetan ini perlahan sirna. Banyak modul mikrokontroler yang telah menggunakan I2C sebagai metode komunikasinya. Alasannya tentu saja karena teknologi ini lebih nyaman untuk digunakan, hanya perlu dua kabel data untuk menghubungkan ratusan modul. Salah satu modul yang terkenal menggunakan I2C adalah modul LCD.
Nah karena banyaknya modul yang menggunakan komunikasi I2C, dan mereka berasal dari vendor yang beragam maka muncul masalah baru yaitu bagaimana menemukan alamat modul yang kita maksud. Perlu diketahui bahwa perangkat I2C memiliki alamat unik yang membedakan mereka ketika mereka dipasang berbarengan. Hal ini hampir mirip dengan sistem pengalamatan IP Address pada jaringan komputer (LAN) konvensional.
Catatan kali ini akan membahas mengenai cara bagaimana menemukan alamat-alamat perangkat yang terhubung ke mikrokontroler kita melalui komunikasi I2C.
Langsung saja, untuk melakukannya kita dapat menggunakan program I2C Scanner, dan kode programnya adalah sebagai berikut:
#include <Wire.h> void setup() { Wire.begin(); Serial.begin(9600); } void loop() { byte error, address; int nDevices; Serial.println("Memindai..."); nDevices = 0; for(address = 1; address < 127; address++ ) { Wire.beginTransmission(address); error = Wire.endTransmission(); if (error == 0) { Serial.print("I2C terbaca pada alamat 0x"); if (address<16) Serial.print("0"); Serial.print(address,HEX); Serial.println(" !"); nDevices++; } else if (error==4) { Serial.print("Ada error yang tidak diketahui pada alamat 0x"); if (address<16) Serial.print("0"); Serial.println(address,HEX); } } if (nDevices == 0) Serial.println("Tidak ada satupun alamat I2C yang ditemukan\n"); else Serial.println("selesai\n"); delay(5000); }
Setelah mengupload kode program tersebut, kalian dapat melihat daftar perangkat yang terhubung melalui serial monitor pada Arduino IDE.
Hasilnya,
[[{"fid":"1027","view_mode":"wysiwyg","fields":{"format":"wysiwyg","field_file_image_alt_text[und][0][value]":"I2C Scanner - Arduino Serial Monitor","field_file_image_title_text[und][0][value]":"I2C Scanner - Arduino Serial Monitor"},"type":"media","field_deltas":{"1":{"format":"wysiwyg","field_file_image_alt_text[und][0][value]":"I2C Scanner - Arduino Serial Monitor","field_file_image_title_text[und][0][value]":"I2C Scanner - Arduino Serial Monitor"}},"link_text":null,"attributes":{"alt":"I2C Scanner - Arduino Serial Monitor","title":"I2C Scanner - Arduino Serial Monitor","class":"media-element file-wysiwyg","data-delta":"1"}}]]
Oke! Sekian catatan singkat ini, semoga ada gunanya. Hehe.
Komentar Terbaru