Lompat ke konten Lompat ke sidebar Lompat ke footer

Cara Baca Alamat I2C Dari Perangkat I2C Arduino

Cara Mengetahui dan Baca Alamat I2C Dari Perangkat I2C

Bismillahirrahmanirrahim.

Cara Mengetahui dan Baca Alamat I2C Dari Sebuah Perangkat I2C Menggunakan Arduino - Pada tutorial kita kali ini, saya akan membagikan cara bagaimana mendapatkan atau mengetahui alamat I2C dari sebuah perangkat I2C, dimana kondisinya kita tidak tahu alamat perangkat tersebut.

Pada tutorial I2C yang lalu, saya telah membahas bagaimana sistem kerja dari I2C, anda dapat membacanya disini.


I2C Scanner

Ada sebuah program sederhana yang dapat mem baca alamat I2C dari perangkat secara otomatis. Program tersebut bernama I2C Scanner

Agar program ini 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 ini, 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:

Cara Mengetahui Alamat I2C Dari Sebuah Perangkat I2C Menggunakan Arduino

Setelah itu, gunakan kode program I2C Scanner berikut ini, upload ke Arduino Uno anda. 

Versi 1

Program ini (atau kode yang terlihat seperti itu) dapat ditemukan di banyak tempat. Misalnya di forum Arduino.cc. Penulis asli tidak diketahui.

Versi 2, Juni 2012, Menggunakan Arduino 1.0.1 

Diadaptasi agar sesederhana mungkin oleh pengguna Arduino.cc Krodal

Versi 3, 26 Feb 2013, oleh louarnold

Versi 4, 3 Maret 2013, Menggunakan Arduino 1.0.3 

Oleh pengguna Arduino.cc Krodal. Perubahan oleh louarnold dihapus. Alamat pemindaian berubah dari 0 ... 127 menjadi 1 ... 119, menurut pemindai i2c oleh Nick Gammon (https://www.gammon.com.au/forum/?id=10896)

Versi 5, 28 Maret 2013 

Sebagai versi 4, tetapi scan address sekarang ke 127. Sensor tampaknya menggunakan alamat 120.

Versi 6, 27 November 2015 

Ditambahkan menunggu komunikasi serial Leonardo. Sketsa ini menguji alamat standar 7-bit. Perangkat dengan alamat bit yang lebih tinggi mungkin tidak terlihat dengan benar.

 
#include <Wire.h>


void setup()
{
Wire.begin();

Serial.begin(9600);
while (!Serial); // Leonardo: tunggu monitor serial
Serial.println("\nI2C Scanner");
}


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\n");

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 ini, saya mendapatkan hasil dengan alamat 0x3F.

Selamat mencoba dan semoga berhasil.

Jika anda merasa artikel ini bermanfaat, silahkan bagikan kepada teman-teman anda menggunakan tombol share dibawah ini.

Posting Komentar untuk "Cara Baca Alamat I2C Dari Perangkat I2C Arduino"