ค้นหา Address I2C ด้วย Arduino

ในบางครั้งการเชื่อมต่อ กับอุปกรณ์ Sensor Module บางชนิดมีการเชื่อมต่อ ผ่าน I2C IIC (SCL SDA) เช่น จอ LCD I2C/IIC 1602 LCD หรือ RTC Arduino แต่เราไม่ทราบ Address ที่เชื่อมต่อวันนี้เราจะมานำเสนอวิธีการค้นหา Address ของ I2C กันครับ เพื่อให้สามารถเชื่อมต่อ กับ Arduino ได้

วันนี้ขอยกตัวอย่าง การค้นหา Address ของ จอ LCD I2C/IIC 1602 LCD น่ะครับ

การต่อวงจร

Arduino Uno  Module IIC/I2C Interface 
A4 SDA
A5 SCL
5V VCC
Gnd Gnd

ตัวอย่าง Code ที่ใช้ค้นหา I2C

// I2C Scanner

// Written by Nick Gammon

// Date: 20th April 2011

 

#include <Wire.h>

 

void setup() {

Serial.begin (9600);

 

// Leonardo: wait for serial port to connect

while (!Serial)

{

}

 

Serial.println ();

Serial.println (“www.9arduino.com …”);

Serial.println (“I2C scanner. Scanning …”);

byte count = 0;

 

Wire.begin();

for (byte i = 8; i < 120; i++)  // Loop ค้นหา Address

{

Wire.beginTransmission (i);

if (Wire.endTransmission () == 0)

{

Serial.print (“Found address: “);

Serial.print (i, DEC);

Serial.print (” (0x”);

Serial.print (i, HEX);

Serial.println (“)”);

count++;

delay (1);

}

}

Serial.println (“Done.”);

Serial.print (“Found “);

Serial.print (count, DEC);

Serial.println (” device(s).”);

}

void loop() {}

 

แสดงข้อมูลออกมา

พบ 1 Address คือ 0x3f ครับ

เราสามารถ นำไปประยุคใช้กับการเชื่อมต่อ Sensor Module ที่เชื่อมต่อ ผ่าน I2C เพื่อหา Address เพื่อเตรียมเขียน code ได้อย่างถูกต้อง ครับ

บทความจาก : http://henrysbench.capnfatz.com/henrys-bench/arduino-projects-tips-and-more/arduino-quick-tip-find-your-i2c-address/