/*
程序: I2C Scanner
公众号:孤独的二进制
*/
#include <Wire.h>
#include <Adafruit_SSD1306.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
Adafruit_SSD1306 display = Adafruit_SSD1306(128, 64, &Wire);
void setup()
{
Serial.begin(9600); //开启串口显示
while (!Serial);
Serial.println("\nI2C Scanner");
Wire.begin(); // 开启I2C, 不写地址,就是主设备
//Wire.setClock(100000); //默认 100KHz
//Wire.setWireTimeout(3000, true); // timeout (us,reset_on_timeout)
lcd.init();
lcd.backlight();
lcd.print("sdlfj");
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
// display.setTextSize(1);
// display.setTextColor(SSD1306_WHITE);
// display.setCursor(0,0);
// display.print("Connecting to SSID\n'adafruit':");
// display.print("connected!");
// display.println("IP: 10.0.1.23");
// display.println("Sending val #0");
// display.setCursor(0,0);
// display.display();
}
void loop()
{
Serial.println("Scanning...");
for (int i = 0; i < 128; i++ )
{
Wire.beginTransmission(i); // 准备向指定地址开始传输数据
byte code = Wire.endTransmission(); //结束传输
if (code == 0) //反馈0,代表收到回应,一切正常
{
Serial.print("Found: 0x");
Serial.println(i, HEX);
}
}
delay(5000);
}