I2C Address Scanner

Setiap device dan komponen I2C mempunyai Alamat/Address mereka sendiri. Terdapat juga device yang boleh ditukar-tukar Alamat/Address I2C mereka, dan terdapat juga device yang mempunyai Alamat I2C yang tetap.

Bagi membolehkan I2C device digunakan bersama Arduino atau Microcontroller (MCU) lain, kita perlu ketahui Alamat I2C mereka yang kebiasaannya berada dalam bentuk HEX 7 bit seperti 0x21, 0X32 dan lain-lain.

Anda dapat menyemak DataSheet dari pembekal atau pengeluar device tersebut untuk melihat Alamat I2C-nya, atau anda boleh masukkan sketch simple berikut dalam Arduino dan Alamat I2C device anda akan dipaparkan dalam Serial Monitor.

SAMBUNGAN WIRE I2C

Bagi menggunakan sketch I2C Address Scanner ini, anda perlu sambungakan device I2C anda pada Arduino mengikut sambungan I2C yang normal,

  1. Voltage Input – 5v
  2. Ground – Ground
  3. SDA Device – Pin A4 Uno (SDA pada UNO)
  4. SCL Device – Pin A5 Uno (SCL pada UNO)

Kaedah sambungan wayar signal dari module ke Arduino adalah,
SDA-SDA dan SCL-SCL. Lihat contoh diagram berikut:

vqgZr

Contoh sambungan I2C dengan module LCD I2C.

SKETCH : I2C SCANNER

Uploadkan sketch berikut ke dalam Arduino anda.
(Sketch berikut telah dipetik dari https://playground.arduino.cc )

// --------------------------------------
// i2c_scanner
//
// Version 1
//    This program (or code that looks like it)
//    can be found in many places.
//    For example on the Arduino.cc forum.
//    The original author is not know.
// Version 2, Juni 2012, Using Arduino 1.0.1
//     Adapted to be as simple as possible by Arduino.cc user Krodal
// Version 3, Feb 26  2013
//    V3 by louarnold
// Version 4, March 3, 2013, Using Arduino 1.0.3
//    by Arduino.cc user Krodal.
//    Changes by louarnold removed.
//    Scanning addresses changed from 0...127 to 1...119,
//    according to the i2c scanner by Nick Gammon
//    http://www.gammon.com.au/forum/?id=10896
// Version 5, March 28, 2013
//    As version 4, but address scans now to 127.
//    A sensor seems to use address 120.
// Version 6, November 27, 2015.
//    Added waiting for the Leonardo serial communication.
//
//
// This sketch tests the standard 7-bit addresses
// Devices with higher bit address might not be seen properly.
//

#include <Wire.h>

void setup(){
 Wire.begin();

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

void loop(){
 byte error, address;
 int nDevices;

 Serial.println("Scanning...");

 nDevices = 0;
 for(address = 1; address < 127; address++ )
 {
   // The i2c_scanner uses the return value of
   // the Write.endTransmisstion to see if
   // a device did acknowledge to the address.
   Wire.beginTransmission(address);
   error = Wire.endTransmission();

   if (error == 0)
   {
     Serial.print("I2C device found at address 0x");
     if (address<16)
       Serial.print("0");
     Serial.print(address,HEX);
     Serial.println("  !");

     nDevices++;
   }
   else if (error==4)
   {
     Serial.print("Unknown error at address 0x");
     if (address<16)
       Serial.print("0");
     Serial.println(address,HEX);
   }    
 }
 if (nDevices == 0)
   Serial.println("No I2C devices found\n");
 else
   Serial.println("done\n");

 delay(5000);           // wait 5 seconds for next scan
}

atau anda boleh download sketch ini di URL berikut:

SEMAK ALAMAT I2C DARI SERIAL MONITOR

Buka Serial Monitor anda dan tetapkan Baud Rate setting pada 9600.
Serial Monitor anda akan memaparkan address IIC device anda setiap 5 saat!

IIC SERIAL MONITOR

Dalam gambar ini, 0x3C merupakan Alamat I2C device yang telah di scan.

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:

One thought on “I2C Address Scanner

  1. Pingback: I2C – Inter Integrated Circuit | MatGyver - DIY & Hobby Blog

Tinggalkan Jawapan

Masukkan butiran anda dibawah atau klik ikon untuk log masuk akaun:

WordPress.com Logo

Anda sedang menulis komen melalui akaun WordPress.com anda. Log Out /  Tukar )

Google+ photo

Anda sedang menulis komen melalui akaun Google+ anda. Log Out /  Tukar )

Twitter picture

Anda sedang menulis komen melalui akaun Twitter anda. Log Out /  Tukar )

Facebook photo

Anda sedang menulis komen melalui akaun Facebook anda. Log Out /  Tukar )

Connecting to %s