OLED дисплей на SSD1306 (SH1106?) кто нибудь юзал?
Васисуалий
T
tolik1976
25 Июл 2026
serg_765 сказал(а):
А если по прямой ссылке:
... Упс.. уалил прямую, движок форума автоматически вставляет как плеер.
Тогда только через "костыли" смотреть.
Как? Заблокировано по жалобе же написано. Я это понимаю так, что никакие костыли не помогут. Тоже хотел посмотреть.
S
serg_765
25 Июл 2026
tolik1976 сказал(а):
Заблокировано по жалобе же написано
Я не знаю точно , что значит эта надпись.
Вот, через "костыли":
R
Rick
27 Июл 2026
tolik1976 сказал(а):
Как? Заблокировано по жалобе же написано.
ага, у меня на канале ютюб ни про никакие блокировки не пишет, а у вас заблокировано.
Вот прямая ссылка для костылей, подчеркнутый пробел после y уберите
y_outu.be/Uo7wuL0fyXc?si=Ur8J4X1o2X4O8yq6
S
Sergej
Команда форума
27 Июл 2026
Rick сказал(а):
у меня на канале ютюб ни про никакие блокировки не пишет
Так точно. Всё работает..
T
tolik1976
27 Июл 2026
Да, разобрался. Кажет теперь и первая ссылка. Думаю про проблемы с тюбиком можно убрать из темы.
S
serg_765
28 Июл 2026
serg_765 сказал(а):
Пока предстоит подумать на чём это воспроизводить, всмысле на каком дисплее и (главное) для чего.
Пока зафиксирую результат.
Перегнал с st7567 на oled sh1106 (настройка I2C Inter-Integrated Circuit; Последовательная асимметричная шина для связи между интегральными схемами. Использует линии связи (SDA и SCL) 800кГц)
Текст скрыт от гостей. Для просмотра войдите в свой аккаунт.
Алгоритм вывода стрелки следующий: во флеш находится последовательность (рисунок) шкалы, и фреймы стрелки в сжатом формате. При выводе на дисплей происходит наложение фрейма стрелки на кадр дисплея. Объяснил как смог.. В крайне сжатой форме
Перед тем как выводить стрелку и шкалу на экран, нужно было как то расчитывать фреймы на компьютере. Поэтому сначала набросал такую программку, которая сразу генерит код:
Текст скрыт от гостей. Для просмотра войдите в свой аккаунт.
С программой получилось, что "скины" шкалы, настройки стрелки, и количество фреймов можно очень быстро менять.
Если интересна работа программы, то прикладываю во вложении.
Куда на данный момент это можно применить? Ну например в вольтметр на ina226 или ещё в какой линейный измеритель. Чтобы применить в VU метре, думаю нужно программу расчёта фреймов подправить, чтобы она считала фреймы в логарифмической зависимости.
Вообще изначально программа минимум у меня была просто впихнуть этот алгоритм в слабый МК.
Если остались вопросы по теме - отвечу.. Но на данный момент по разработке усиленный перекур
Вложения
project1.rar
847,2 КБ
· Посмотрено: 3
S
serg_765
11 Авг 2026
Разгонял, разгонял sh1106 по i2c - выше 800kHz планку не преодолеть. Даже на плате пытался что-то перепаивать. Там походу ещё на входе фильтраця стоит, если импульс короче скольких-то ns, то отсекает.
Купил такой же, но SPI. Цена 1:1. Заодно код стал попроще, не нужно все эти айтуси старт/стоп и кучу адресов.
Текст скрыт от гостей. Для просмотра войдите в свой аккаунт.
В
Васисуалий
Команда форума
11 Авг 2026
serg_765 сказал(а):
Купил такой же, но SPI. Цена 1:1. Заодно код стал попроще
Ну и вопрос - а сколько фреймов (кадров) получилось на него вывести? И, если можно, то для сравнения, сколько по И2Ц получалось?
S
serg_765
11 Авг 2026
Васисуалий сказал(а):
то для сравнения, сколько по И2Ц получалось?
Вопрос очень корректен
На разогнанном айтуси удавалось вывести 72 фрейма. Смысла разгонять так и выше действительно нет. Тем более частота обновления дисплея по дефолту примерно 100Гц, но можно увеличить на +50% или уменьшить на -25%. То есть разгонять выше частоты обновления действительно не имеет смысла.
Получается, что наиболее существенный профит только в упрощении кода. У меня же, как выше писал, без всяких буферов в ОЗУ, а смешивание шкалы со стрелкой происходит "на лету" в цикле, с кучей условий. Среди одного из неприятных условий - это проверка конца страницы. Вот тут и начинаются переключения со стопами, стартами и отправками адреса чипа.. А на SPI же просто D/C переключить, без адресов.
S
serg_765
23 Авг 2026
ЭФЭ сказал(а):
Странно, как ярко горят пиксели на матрице
Цветные не стали обсуждать? На счёт цветных тема более приземлёная и реальная. Со стрелкой на цветных замудрёно, а вот с диаграмами намного проще оказалось. На картинке диаграма на 29 позиций. Накидал по быстрому на 13 позиций особо не заморачиваясь качеством, чтобы только оценить объём если выводить кадрами с флеша.
Про скорость отрисовки: тестовое изображение 121*150 = 18150 пикселей.
на один пиксель уходит примерно 42 такта CPU (16 бит напикслель + проверка spif), на 16 МГц примерно за 0,05 сек выведется на экран один блок диаграмы.
Про объём: на 13 положений изображение сжимается в RLE до 850 байт
850*13 = 11 050 байт веса в 13-ти кадрах.
Если жать в RLE на 29 положений - объём на 1 кадр получится больше и кадров будет больше, но есть вариант выводить изображение половинками, то есть общий объём всех кадров уменьшится примерно 1,7 раза... вобщем на вскидку общий объём этих картинок будет в районе 24кбайт.
В мегу328 свободно уместится и останется под обработку напряжения или чего там..
Текст скрыт от гостей. Для просмотра войдите в свой аккаунт.
причём на экране таких диаграм можно несколько расположить... только цвета менять, а подпрограмма вывода одна.
S
serg_765
25 Авг 2026
Не надоел? А то гоните
Продолжил эксперименты. Цель пока понять сколько вся эта красота весит и как выводится. Время тратится только на рисование в редакторе, остальной процесс на автомате.
Несколько лет назад хотел повторить что-то подобное из этого:
но тогда не умел выводить многоцветное изображение.
Нарисовал поаккуратнее, под дисплей 160*128 st7735 (просто сейчас вывел на большой - лень переключать дисплеи)
Текст скрыт от гостей. Для просмотра войдите в свой аккаунт.
Неактивные сегменты будут закрашиваться серым. Закрасил пока только один - чтобы программа правильно скодировала 5-й цвет и корректно вывела размер одного фрейма.
Скорость: 20480 пикселей на 16 МГц отрисуются за примерно 0,054 сек.
Объём набора фреймов: 1314*16=21024 байт, в мегу328 влезет, но уже придумал как это сокращать в почти 2 раза а иногда и больше.
Текст скрыт от гостей. Для просмотра войдите в свой аккаунт.
Теперь сравнение моего опытного результата с дисплеем профессионального прибора, что выше:
У меня фрейм 160*128 - 16 фреймов
На том приборе фрейм примерно 160*(85 или 90) - 9 или 12 фреймов. Что меньше и по фреймам и по кадру. Ещё и по цветам меньше: я неактивные сегменты красил серым, а в том приборе цветом фона, что немного меняет принцип кодирования с rle_8 на rle_4. То есть такая диаграмма в мегу328 влетает со свистом, без дополнительных танцев.
Пока перекур.. Куда это применить планов пока не имею - пока процесс ради процесса. Но картина по возможностям вырисовалась вполне реальная.
S
serg_765
5 Сен 2026
На досуге баловался с геометрической заливкой дисплея sh1106 SPI
Во время экспериментов ещё всякие узоры получались, гармоничные и не очень.
Заливки простые: в основном проверка чётности определённого бита в счётчике столбцов и инверсия выводимого байта. А шахмотка 1х1 вообще просто инверсия 0xAA или 0x55. Диагонали путём сдвига байта в каждом столбце.
Делал под SPI, но не составит труда и на I2C перегнать. Подойдёт для дисплеев с постраничным выводом SH1106, SSD1306, st7565, st7567 и др. Ассемблерный код во вложении.
Зачем это нужно? Ну лишь в двух устройствах применял как фон, а в центре "лого" при загрузке. А так в основном баловство
На данном сайте используются cookie-файлы, чтобы персонализировать контент и сохранить ваш вход в систему, если вы зарегистрируетесь.
Продолжая использовать этот сайт, вы соглашаетесь на использование наших cookie-файлов.