Двухцветный дисплей OLED 0.96 I2C 128x64

Тема в разделе "Arduino & Shields", создана пользователем pyro, 10 июн 2016.

  1. pyro

    pyro Гик

    Есть такой дисплей
    [​IMG]
    Про подключение монохромного дисплея есть много информации, а для этого нужны наверное другие библиотеки. На стандартные компилятор ругается. Вот сообщение об ошибке:


    C:\Users\Алексей\Documents\Arduino\libraries\Adafruit_SSD1306\Adafruit_SSD1306.cpp:433:6: error: prototype for 'void Adafruit_SSD1306::dim(boolean)' does not match any in class 'Adafruit_SSD1306'
    void Adafruit_SSD1306::dim(boolean dim) {
    ^
    In file included from C:\Users\Алексей\Documents\Arduino\libraries\Adafruit_SSD1306\Adafruit_SSD1306.cpp:28:0:
    C:\Users\Алексей\Documents\Arduino\libraries\Adafruit_SSD1306\Adafruit_SSD1306.h:152:8: error: candidate is: void Adafruit_SSD1306::dim(uint8_t)
    void dim(uint8_t contrast);
    ^
    Ошибка компиляции.
     
  2. ZAZ-965

    ZAZ-965 Гуру

    9xA59kK нравится это.
  3. pyro

    pyro Гик

    Поставил ваши библиотеки, теперь пишет:

    ssd1306_128x64_i2c.ino:54:2: error: #error ("Height incorrect, please fix Adafruit_SSD1306.h!");
    Ошибка компиляции.
     
  4. 9xA59kK

    9xA59kK Гик

    Библиотека указанная ZAZ-965 отлично работает на точно таком же дисплее у меня.
    Посмотри пример на ютубе там и библиотеки есть.
    Код ты не выложил трудно что то советовать.
     
    Последнее редактирование: 10 июн 2016
  5. ZAZ-965

    ZAZ-965 Гуру

    pyro, в файле Adafruit_SSD1306.h
    Код (C++):
     #define SSD1306_128_64
    //   #define SSD1306_128_32
    //   #define SSD1306_96_16
    раскоментируйте нужное разрешение
     
  6. pyro

    pyro Гик

    Разобрался. Я пытался запустить этот пример ssd1306_128x64_i2c, а запустился этот ssd1306_128x32_i2c. Интересно почему? Если дисплей 128х64
     
  7. ZAZ-965

    ZAZ-965 Гуру

    Потому-что библиотека универсальная (на три разрешения) и перед компиляцией устанавливаете в заголовочном файле разрешение примененного дисплея.
     
  8. VadimG

    VadimG Нуб

    разобрался? у меня такая же беда. И пиксели через строчу подсвечиваются... что делать?
     
  9. Danya

    Danya Нуб

    А вы решили?
     
  10. VadimG

    VadimG Нуб

    нет, забросил эту тему) но буду рад решению)
     
  11. Evil the cat

    Evil the cat Нуб

    Тоже мучался с этим экранчиком. С адресом довольно быстро разобрался (у моего модуля был 0x3C). Но изображение было растянуто, вылезала ошибка компиляции (поначалу проблему решил удалением строк, вызывающих ошибку, из скетча))), и на экране были пропущены строки. Оказывается, всего лишь надо было открыть файл библиотеки по пути \Arduino\libraries\Adafruit_SSD1306\Adafruit_SSD1306.h , найти и закомментировать там строку #define SSD1306_128_32 и снять комментарий со строки #define SSD1306_128_64 . Ошибка компиляции сразу пропала и всё заработало, как положено, чересстрочность исчезла. А всё потому, что читаю я по диагонали и, как начинающий, даже предположить не мог, что библиотеки, оказывается, тоже нужно под себя настраивать, а не использовать по принципу скопировал и забыл. Кто бы мог подумать, что настройки экрана надо производить не в скетче, а в самой библиотеке. Может быть этим постом я смогу помочь таким же невнимательным и неопытным, как я. )