Прошу ликбез. Работоспособность этого дисплея проверил с помощью встроенного в библиотеку примера с кнопками с сайта производителя: (спасибо X-DRON, который объяснил, что LiquidCrystal_I2C для устройств, построенных на чипе PCF8574, а у этого шилда стоит другой чип PIC16F722A и нужна другая библиотека: https://www.olimex.com/Products/Duino/Shields/SHIELD-LCD16x2/resources/Olimexino-328 LCD16x2.zip вот работающий скетч примера: #include <LCD16x2.h> int buttons; void setup(){ Wire.begin(); lcd.lcdClear(); lcd.lcdGoToXY(2,1); lcd.lcdWrite("BUT1:"); lcd.lcdGoToXY(10,1); lcd.lcdWrite("BUT2:"); lcd.lcdGoToXY(2,2); lcd.lcdWrite("BUT3:"); lcd.lcdGoToXY(10,2); lcd.lcdWrite("BUT4:"); } void loop(){ buttons = lcd.readButtons(); lcd.lcdGoToXY(7,1); if(buttons & 0x01) lcd.lcdWrite("0"); // символы печатает, а как переменную вставить ? else lcd.lcdWrite("1"); lcd.lcdGoToXY(15,1); if(buttons & 0x02) lcd.lcdWrite("0"); else lcd.lcdWrite("1"); lcd.lcdGoToXY(7,2); if(buttons & 0x04) lcd.lcdWrite("0"); else lcd.lcdWrite("1"); lcd.lcdGoToXY(15,2); if(buttons & 0x08) lcd.lcdWrite("0"); else lcd.lcdWrite("1"); delay(100);} Однако, при попытке вывести переменную (время) компилятор ругается из-за неправильного формата. ( другие дисплеи понимают lcd.print( clock.hour, DEC ); ) в библиотеке не смог найти каким должен быть формат ввода переменных. . Правильно ли я думаю, что пример теста не предусматривает получение данных извне , а только внутреннюю часть шилда тестирует? Подскажите пожалуйста чего нехватает (про меня не надо - я чайник)
И еще позвольте спросить, на этом шилде есть много свободных выводов. Они могут принести дополнительную пользу для расширения пинов? (если надо отпаяю дисплей и поставлю взад) где посмотреть?
Опять же писал в теме Дисплей отпаивать не надо, нужно применять Г-образные штырьки, завести их между дисплеем и платой и подпаять с нижней стороны платы. Штырьки будут торчать вбок.
Как я вижу на шилде, отверстия под пины GPIO идут напрямую от контроллера, для чего заводить штырьки? Через час после вопроса, сам понял о чем речь. штырьки для разьемного соединения.
[quote="X-Dron, post: 36491, member: 6284" Есть вопросы по функциям LCD16x2:: PinMode(uint8_t pin, uint8_t direction) LCD16x2::digitalWrite(uint8_t pin, uint8_t level) Если указывать номер пина (не в ардуино), то обозначать его надо по маркировке разьема GPIO или как? откуда два двоеточия ?
Внимательно читайте личку. LCD16x2:: обозначает что метод описанный далее принадлежит классу LCD16x2.