Вы купили неисправное i2c устройство? Обидно! Мы, обычно, загружаем библиотеку для i2c модуля и проверяем его работоспособность. Но в примерах из библиотеки может быть не верно задан адрес i2c устройства.
Всего на одной двухпроводной шине может быть до 127 устройств. Предлагаем Вашему вниманию программу последовательно перебирающую адреса i2c устройства.
#include <LiquidCrystal_I2C.h>
void setup()
{
pinMode(LED_BUILTIN, OUTPUT);
bool i = 0;
for (int ad = 0; ad < 128; ad++) {
LiquidCrystal_I2C lcd(ad, 16, 2);
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("1602 i2c address");
lcd.setCursor(6, 1);
lcd.print(ad);
digitalWrite(LED_BUILTIN, i);
i = !i;
}
}
void loop()
{
}
Эта программа помогла нам найти i2c адреса LCD дисплеев 1602 i2c. Используя функцию Serial.print() можно найти i2c адреса для любых устройств.
Нами были обнаружены LCD дисплеи 1602 с интерфейсом i2c (без адресных перемычек) с прошитыми в памяти контроллера адресами 39, 63 (0x27, 0x3F). I2C контроллер LCD дисплея 1602 выполнен на микросхеме PCF8574T иPCF8574AT.