1) покрутить резистор контрастности, убедиться, что действительно ничего не выводится
2) С помощью скетча I2C Scanner убедиться, что дисплей виден на шине I2C, и что его адрес действительно 0x27 (может быть 0x3F или ещё какой-нибудь)
Я новенький в этом всем. потому простите.
1) дисплей сам показывает. я подсоиденил провода от uno к небольшой черной штуке(она крепится позади дисплея и служит для удобного подключения дисплея) и перевернул ее. т.е ножки подключил в обратном направлении и на экране вывелись 2 ряда по восемь прямоугольников. первыф ряд синий второй красный, значит оно рабочее.
2) действительно адрес соответствует 0x27
можете кинуть схему того как подключать чтоб точно вывело что-то? я все библиотеки закачали перезагрузил все что можно))
SpiderPigAndCat, Что за синий и красный, откуда оно на монохромном дисплее??
А контрастность-то крутить попробовали? На "черной штуке" есть подстроечный резистор под мелкую крестовую отверточку. Его там не с чем перепутать. Покрутите от края до края, не появится ли изображение.
А схема - какая уж тут схема. По Вашей ссылке табличка соединения выводов есть. UNO - это колонка "На базе ATmega 328". На I2C модуле (чёрной штуке) выводы подписаны должны быть.
Проверяйте контрастность, правильность подключения к I2C шине, код ниже инициализирует дисплей с его текущим адресом, а не с тем который вы захардкодили в коде(при условии что у вас одно устройство висит на шине, либо первый старт запускаете с одним экраном а потом подключите остальные )...
/**
* The method of searching for the LCD address on the I2C bus
*/
bool scanI2CBus() {
byte adress = EEPROM.read(LCD_I2C_ADDR);
if (adress < 10 || adress > 127) {
byte nDevices = 0;
for (byte address = 10; address <= 127; address++) {
Wire.beginTransmission(address);
byte error = Wire.endTransmission();
if (error == 0) {
adress = address;
nDevices++;
}
}
if (nDevices == 0) {
return false;
} else if (nDevices > 1) {
return false;
}
EEPROM.write(LCD_I2C_ADDR, adress);
}
lcd = LiquidCrystal_I2C(adress, 20, 4);
lcd.init();
lcd.backlight();
lcd.print(F("Aquarium Controller! ver. 1.3.7-0.5i"));
return true;
}