Здравствуйте! Имеется ЖК 128*64 от терминала Ingenico. На стороннем сайте нашел распиновку: 1-GND 2-VCC 3-VREF? 4-RESET 5-NO CONNECT 6-NO CONNECT 7-WRITE 8-READ 9-16 DATA 17-LED2 18-LED1 у меня Uno. Информации по данному экрану в Сети очень мало. Подскажите, пожалуйста, какая ему нужна библиотека и хоть самый простой пример работы. Спасибо.
Так 16*2 текстовый, а этот-графический. Они же, на сколько я могу догадываться, имеют несколько разную логику.
Удалось подключить к ардуино-нано дисплей от терминала Ingenico 3070. Маркировка на дисплее PRO59801, с котроллером KS0713 или аналогичным. Этот дисплей может работать в параллельном или последовательном режиме, но для последовательного режима нужно провести доработку. Как это сделать, нашёл здесь: http://mcustuff.blogspot.com/2013/01/pro59801-lcd-module-hack.html Нужно перерезать дорожку (на фото обведено красным), чтобы отключить её от плюса и подключить на землю (на фото обведено жёлтым). Это вход контроллера PS, отвечающий за Parallel/Serial режимы. Подключение к ардуино: 1 - GND -> Arduino pin GND 2 - VCC -> Arduino pin +5V 3 - NC -> не используем 4 - RST -> Arduino pin RST 5 - CS1 -> Arduino pin D9 6 - RS -> Arduino pin D10 7 - RW_WR -> Arduino pin GND 8 - E_RD -> Arduino pin GND 9-14 - DB0-DB5 -> не используем 15 - DB6 - CLK -> Arduino pin D11 16 - DB7 - SID -> Arduino pin D12 17 - led+ анод подсветки, если нужно 18 - led- катод подсветки, если нужно Пример программы: Код (C++): // библиотека для работы с графическими дисплеями #include <U8x8lib.h> // создаём объект для работы с графическим дисплеем // LCD PRO59801 of Ingenico 3070, Serial Mode (after display (PS pin to GND) modification) // (clock, data, cs, dc, reset) U8X8_ST7565_KS0713_4W_SW_SPI u8x8(11, 12, 9, 10, U8X8_PIN_NONE); //U8X8_ST7565_64128N_4W_SW_SPI u8x8(11, 12, 9, 10, U8X8_PIN_NONE); void setup(void) { // начало работы с дисплеем u8x8.begin(); u8x8.setContrast (170); u8x8.setFlipMode (0); // mirror // выбираем шрифт u8x8.setFont(u8x8_font_px437wyse700b_2x2_r); // u8x8_font_amstrad_cpc_extended_f // очищаем память дисплея u8x8.clear(); } void loop(void) { u8x8.clear(); u8x8.setCursor(0, 3); u8x8.noInverse(); u8x8.print("PRO59801"); delay(1000); u8x8.clear(); u8x8.setCursor(0, 3); u8x8.inverse(); u8x8.print("PRO59801"); delay(1000); }
Вот пример для работы с графической библиотекой U8g2lib: Код (C++): // библиотека для работы с графическими дисплеями #include <U8g2lib.h> // создаём объект для работы с графическим дисплеем /* ROTATION: угол поворота дисплея U8G2_R0: 0 градусов U8G2_R1: 90 градусов U8G2_R2: 180 градусов U8G2_R3: 270 градусов */ // LCD PRO59801 of Ingenico 3070, Serial Mode (after display (PS pin to GND) modification) // (getU8x8(), clock, data, cs, dc, reset) U8G2_ST7565_KS0713_F_4W_SW_SPI u8g2(U8G2_R0, 11, 12, 9, 10, U8X8_PIN_NONE); //U8G2_ST7565_64128N_F_4W_SW_SPI u8g2(U8G2_R0, 11, 12, 9, 10, U8X8_PIN_NONE); void setup(void) { // начало работы с дисплеем u8g2.begin(); u8g2.setContrast (170); u8g2.setFlipMode (0); // mirror // переменные для хранения высоты и ширины дисплея int width = u8g2.getBufferTileWidth() * 8; int height = u8g2.getBufferTileHeight() * 8; // очищаем память дисплея u8g2.clearBuffer(); // рисуем две диаганали u8g2.drawLine(0, 0, width - 1, height - 1); u8g2.drawLine(0, height - 1, width - 1, 0); // рисуем окружность в центре дисплея и радиусом 30 u8g2.drawCircle(width / 2, height / 2, 30, U8G2_DRAW_ALL); // рисуем диск (закрашенную окружность) в центре дисплея и радиусом 20 u8g2.drawDisc(width / 2, height / 2, 20, U8G2_DRAW_ALL); // отсылаем данные на дисплей u8g2.sendBuffer(); } void loop(void) { }
Кстати, вывод CS1 можно подключить на землю, и тогда потребуется всего три управляющих вывода от ардуино.
Доработал осциллограф из этой темы (ссылка) для данного дисплея. В нём используется старая библиотека U8glib, и с ней обязательно нужно подключать вывод CS1. Также добавил в код настройку setContrast(). Вещь! https://create.arduino.cc/projecthu...splay-52ecfe?ref=user&ref_id=168805&offset=44