Вы купили неисправное 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.