ในบางครั้งการเชื่อมต่อ กับอุปกรณ์ 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/