U8glib.h + 2 дисплея 1306

Тема в разделе "Arduino & Shields", создана пользователем Михаил123, 16 май 2022.

  1. Как работать с 2 дисплеями на шине?

    Код (C++):
    //Include the graphics library.
    #include "U8glib.h"
    //Initialize display.
    U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE | U8G_I2C_OPT_DEV_0);
     
     
  2. parovoZZ

    parovoZZ Гуру

    создаёшь два объекта и работаешь с каждым из них. Дурина на плюсах же.
     
  3. b707

    b707 Гуру

    если дисплеи поддерживают настройку адреса - выставить на них разный адрес.
    Если адрес зашит жестко - то никак.
     
  4. как их идентифицировать? где указывать адрес устройства?
     
  5. у меня 5 устройств i2c. 2 монитора и 3 расширителя MCP
     
  6. issaom

    issaom Гуру

    А что за контроллер? - если NANO(UNO) (328P) так там на подключение больше чем одного дисплея памяти не хватит.... там один то скрипом влезает.... 128*64/8 = 1024
     
  7. mega
     
  8. parovoZZ

    parovoZZ Гуру

    да ну на....1306 прекрасно влезает в 8кБ. С парой-тройкой шрифтов, парой-тройкой картин...
    Я вот тут делал погодную станцию на 1306. Вроде даже за 4кБ не вылез.
    http://forum.amperka.ru/threads/Как-подружить-stm-и-spi_oled-дисплей.21659/page-2#post-293482

    читай документацию к библиотеке.
     
  9. issaom

    issaom Гуру

    Речь не про самопись шла, а про U8glib.h, а она вроде как буфер полноценный в памяти требует где командами отрисовывается картинка, а потом одной командой выплевывается на дисплей если нужна графика.... Если графика не нужна - только шрифты ужиматься умеет
    U8g2 full buffer, page buffer and u8x8 mode

    Full screen buffer mode
    Page mode (This is the U8glib picture loop)
    U8x8, character only mode
     
    Последнее редактирование: 17 май 2022
  10. tckb pyftim? xtuj yt
    если знаешь, чего не подсказать? это первое.
    второе, почему экран не работает с быблиотекой адофруит?
     
  11. issaom

    issaom Гуру

    В интернет все есть
    https://forum.arduino.cc/t/u8g2-with-two-ssd1306-oled-displays/491906/4
    Зачем изобретать велосипеды?
     
  12. нет там описания, как через SCL и SDA подключить 2 дисплея. Или они сами разберутся кому какой адрес?
    подключение на разные пины не подходит - это изначальное условия
     
  13. issaom

    issaom Гуру

    Согласен - там очень простое решение без переходников и танцев с бубном по 2 пина на каждый дисплей и подключать их можно сколько хошь.
    Тогда да:
    1. Каждому дисплею присвоить свой адрес (если на них есть перемычки позволяющие это сделать).
    2. Выяснить в документации на библиотеку умеет ли эта конкретная библа работать с 2 дисплеями на одной шине, и как их правильно инициализировать с разными адресами. Если не умеет искать другую библу где можно при инициализации задать и адрес дисплея. Либо ждать когда на форуме появится кто-то кто уже это делал раньше - как вы понимаете сидеть полдня и читать документацию за вас все равно никто не будет.
     
  14. parovoZZ

    parovoZZ Гуру

    зачем пользоваться инструментом, с помощью которого невозможно добиться цели? Надо брать другой инструмент.
     
  15. issaom

    issaom Гуру

    Не у всех есть лишняя пара-трока лет свободного времени. Можно нормально обходиться и существующими инструментами правда время на их изучение потратить все равно придется - но не столько чтобы написать их с нуля.
     
  16. parovoZZ

    parovoZZ Гуру

    если речь про какие-то статические картинки типа цифр и без фона, то буфер и нафик не нужен. Если речь про динамику с тяжёлой графикой, то один дисплей = один дохлый МК. И то U8glib.h тупая, как сковорода. Если хочется один МК, то брать надо что-то пожирнее с 32 битной шиной.
     
  17. parovoZZ

    parovoZZ Гуру

    вот уже скоро сутки пройдут, как автор в решении своего вопроса не продвинулся ни на шаг. За это время можно было прочитать даташит на 1306, попробовать его инициализировать. За следующие пару суток можно разобрать библиотеку до косточки, чтобы сдёрнуть из неё нужное. Я так сдёрнул из неё отрисовку прямой по координатам.
     
  18. issaom

    issaom Гуру

    Если пример который я давал рабочий - там работающее решение можно реализовать минут за 15-30
     
  19. parovoZZ

    parovoZZ Гуру

    а если не рабочий?
     
  20. b707

    b707 Гуру

    ты по истории его сообщений пройдись - все станет понятнее. Сам что-либо решать - не его путь, ждет пока ему готовое решение предложат.

    По сути вопроса все очень просто - перво-напрево нужно знать, позволяют ли те конкретные модули дисплеев, что у ТС, менять адрес. Это может выяснить только он сам.
    Если да - задача решается. если нет - стандартным подключением по пинам SCL SDA два дисплея не завести.
     
    Последнее редактирование: 17 май 2022