Подключение ЖК 128х64

Тема в разделе "Arduino & Shields", создана пользователем Конст, 31 мар 2016.

Метки:
  1. Конст

    Конст Нуб

    Здравствуйте!
    Имеется ЖК 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.
    Информации по данному экрану в Сети очень мало.
    Подскажите, пожалуйста, какая ему нужна библиотека и хоть самый простой пример работы.
    Спасибо.
     

    Вложения:

    • LCD.JPG
      LCD.JPG
      Размер файла:
      20,2 КБ
      Просмотров:
      838
    Последнее редактирование: 31 мар 2016
  2. ostrov

    ostrov Гуру

    От 16х2 не подходит точно?
     
  3. Конст

    Конст Нуб

    Так 16*2 текстовый, а этот-графический. Они же, на сколько я могу догадываться, имеют несколько разную логику.
     
  4. User248

    User248 Гик

    Удалось подключить к ардуино-нано дисплей от терминала 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);
    }
    IMG_0423.jpg DSC00062_2.jpg
     
    Последнее редактирование: 4 янв 2022
  5. User248

    User248 Гик

    Вот пример для работы с графической библиотекой 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)
    {
    }
    DSC00065 2.jpg
     
  6. User248

    User248 Гик

    Кстати, вывод CS1 можно подключить на землю, и тогда потребуется всего три управляющих вывода от ардуино.
     
  7. User248

    User248 Гик

    Доработал осциллограф из этой темы (ссылка) для данного дисплея. В нём используется старая библиотека U8glib, и с ней обязательно нужно подключать вывод CS1. Также добавил в код настройку setContrast(). Вещь!

    https://create.arduino.cc/projecthu...splay-52ecfe?ref=user&ref_id=168805&offset=44
     

    Вложения:

    Последнее редактирование: 6 янв 2022