I2C Scanner
Pada tutorial kita kali , saya akan membagikan cara bagaimana cara baca alamat I2C dari sebuah perangkat I2C menggunakan Arduino, dimana kondisinya kita tidak tahu alamat perangkat tersebut. Ada sebuah program sederhana yang dapat membaca alamat I2C dari perangkat secara otomatis. Program tersebut bernama I2C Scanner.
Agar program dapat membaca alamat I2C dari sebuah perangkat I2C, langkah pertama adalah hubungkan Arduino ke perangkat tersebut.
Misalnya sebagai contoh saya menggunakan Modul I2C untuk LCD. Pada kondisi saat , saya tidak mengetahui alamat dari modul tersebut, sehingga saya tidak bisa menampilkan apa-apa di LCD. Sekarang, saya hubungkan Arduino ke Module I2C untuk LCD, anda dapat melihat rangkaiannya sebagai berikut:
Kode Program
Setelah itu, gunakan kode program I2C Scanner berikut , upload ke Arduino Uno anda.
#include <Wire.h>
void setup() {
Wire.begin();
Serial.begin(9600);
}
void loop() {
byte error, address;
int nDevices;
Serial.println("Scan perangkat...");
nDevices = 0;
for (address = 1; address < 127; address++) {
// Pemindai i2c menggunakan nilai kembalian
// the Wire.endTransmission untuk melihat apakah
// perangkat mengenali alamat tersebut.
Wire.beginTransmission(address);
error = Wire.endTransmission();
if (error == 0) {
Serial.print("Perangkat I2C ditemukan di alamat 0x");
if (address < 16)
Serial.print("0");
Serial.print(address, HEX);
Serial.println(" !");
nDevices++;
} else if (error == 4) {
Serial.print("Kesalahan tidak diketahui di alamat 0x");
if (address < 16)
Serial.print("0");
Serial.println(address, HEX);
}
}
if (nDevices == 0)
Serial.println("Tidak ada perangkat I2C yang ditemukan n");
else
Serial.println("Selesai");
Serial.println();
delay(5000); // tunggu 5 detik untuk pemindaian berikutnya
}
Lalu buka serial monitor dan anda akan melihat alamat I2C dalam bentuk bilangan Hexadesimal. Dalam percobaan yang saya lakukan terhadap modul I2C LCD , saya mendapatkan hasil dengan alamat 0x3F.
Selamat mencoba dan semoga berhasil. Jika anda merasa bermanfaat, silahkan bagikan kepada teman-teman anda menggunakan tombol share dibawah .
Artikel bermanfaat lainnya:
- Baca Data dari MPU-9250 Menggunakan Arduino
- Penjelasan Serial.print(F()) Pada Arduino
- Data Logger Oled SSD1306 I2C Pakai Library u8g2