
Arduino i2C Scanner
หลายครั้งที่เราใช้อุปกรณ์ที่เชื่อมต่อบน i2C เช่น จอ LCD i2C, i2C to I/O Expander Module สิ่งที่เราจำเป็นต้องทราบเพื่อใช้งานอุปกรณ์เหล่านี้คือ Address ของ i2C นั้น ๆ ไม่เช่นนั้นก็จะไม่สามารถใช้งานได้ ผมไม่ขออธิบายสรรพคุณของ i2C นะครับ เพราะทุกท่านคงหาอ่านได้ทั่วไปตามอินเตอร์เน็ตกันอยู่แล้ว และตามคอนเซปของ Arduino Tips & Tricks คือสั้น ๆ ตรง ๆ ไปไว ๆ โดยใน EP เราขอเจาะถึงการหา Address เพื่อนำไปใช้งานอุปกรณ์ต่าง ๆ ที่ใช้การเชื่อมต่อแบบ i2C กันนะครับ
โค๊ดโปรแกรม

#include "Wire.h" // นำเข้าไรบลารี่ Wire.h
void setup() {
Serial.begin (9600);
while (!Serial){}
Serial.println ("I2C scanner. Scanning ...");
byte count = 0;
Wire.begin();
for (byte i = 8; i < 120; i++){
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() {}
ผลการทำงาน

จะเห็นได้ว่า Address ที่ได้คือ 0x38
Arduino.MakerZone