Блоки для отрисовки на дисплеях с контроллером SSD1306

Пользовательские блоки для вывода информации на дисплеи и индикаторы, управления тачскрином, различными клавиатурами, добавления русских шрифтов для вывода на дисплеи типа HD44780
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
Аватара пользователя
Олег
Полковник
Сообщения: 1532
Зарегистрирован: 13.10.2015{, 16:47}
Репутация: 62
Контактная информация:

Блоки для отрисовки на дисплеях с контроллером SSD1306

#1

Сообщение Олег » 03.01.2018{, 23:21}

[ · Скачать удаленно () ] 24.11.2017, 19:53
"SSD1306 print" отображает текст - строку(string). Поддерживается кириллица.
В папке "Draw" графические блоки для рисования прямоугольников, кругов, треугольников. Описания внутри блоков.
Требуется установить в IDE библиотеки Adafruit_GFX_Library и Adafruit_SSD1306-master
в папке "...\Documents\Arduino\libraries\"
Перед всеми блоками добавить один из трех блоков "SSD1306 main" в зависимости от используемого вами подключения.
После всех блоков отрисовки добавить блок "SSD1306 display".
Пример
ssd1306.png
ssd1306.png (11.25 КБ) 5290 просмотров
12345
Категория: Блоки пользователей | Добавил: joogorden
Вложения
ssd1306.ubl
(756.47 КБ) 582 скачивания

Аватара пользователя
Олег
Полковник
Сообщения: 1532
Зарегистрирован: 13.10.2015{, 16:47}
Репутация: 62
Контактная информация:

Блоки для отрисовки на дисплеях с контроллером SSD1306

#2

Сообщение Олег » 03.01.2018{, 23:23}

Всего комментариев: 17


2 Smit8719 • 00:59, 25.11.2017
Спасибо! Даже русский поддерживает.
А что за параметр в блоке SSD1306 main I2C OLED RESET?

3 joogorden • 19:38, 29.11.2017
Этот параметр есть в библиотечной функции инициализации. Видимо у каких то дисплеев есть такой вход.
Если у вашего дисплея такого нет введите значение 255.

4 kotaf • 21:17, 29.11.2017
А как включить поддержку русского? Или это от дисплея зависит?

5 joogorden • 01:17, 30.11.2017
Прошу прощенья, совсем забыл что когда то в папке библиотеки Adafruit менял файл шрифта glcdfont.c

6 kotaf • 01:19, 30.11.2017
Одновременно могут быть рус и англ?

12 kotaf • 08:56, 01.12.2017
Русский появился. Но то что я набираю на клавиатуре и то что отображает дисплей не соответствует. Пишу "К" отображает "Б", "С" - "Т" и т.д.

13 joogorden • 19:19, 01.12.2017
Да действительно когда я удалил Adafruit_GFX_Library и по новой установил, заменил файл шрифта у меня тоже русские символы стали отображаться не те.
Пока могу предложить как временное решение заменить всю обе папки библиотек из этого архива libraries_SSD1306.zip

14 kotaf • 20:20, 01.12.2017
Спасибо. Теперь корректно отображается.

7 joogorden • 01:27, 30.11.2017
Да

8 kotaf • 01:28, 30.11.2017
Спасибо!

9 Vano1989 • 03:04, 30.11.2017
У меня все растягивается в 2 раза по вертикали с вашими библиотеками. С этой библиотекой все нормально Adafruit_SSD1306
Почему так не пойму... Вроде одна и та же библиотека

10 joogorden • 16:03, 30.11.2017
Скорей всего потому что в библиотеке по вашей ссылке в файле Adafruit_SSD1306.h раскомментирована строка на дисплей с разрешением 128x64
#define SSD1306_128_64
//#define SSD1306_128_32
//#define SSD1306_96_16

В той что я скачал по ссылке из IDE, раскомментирована #define SSD1306_128_32.
У меня в наличии только SPI дисплей 128x64. На нем отображается нормально.

11 Vano1989 • 17:00, 30.11.2017
Да, действительно так, проверил, у меня #define SSD1306_128_64. Спасибо!

15 kotaf • 22:51, 14.12.2017
Кто будет использовать данный дисплей с NodeMCU Lolin, вот блок для подключения I2C https://yadi.sk/d/ap2YrlC43QdBvm

16 Денис Анатольевич • 13:25, 31.12.2017
У меня ничего не показывает. И что за вход EN описания к нему нет?

17 joogorden • 14:58, 31.12.2017
EN -Enable. Разрешает работу блока.

серёга
Рядовой
Сообщения: 1
Зарегистрирован: 06.02.2018{, 19:06}
Репутация: 0
Имя: серёга

Блоки для отрисовки на дисплеях с контроллером SSD1306

#3

Сообщение серёга » 06.02.2018{, 20:38}

как скачать

pan
Полковник
Сообщения: 2860
Зарегистрирован: 13.04.2017{, 11:57}
Репутация: 204
Имя: noname

Блоки для отрисовки на дисплеях с контроллером SSD1306

#4

Сообщение pan » 06.02.2018{, 21:11}

серёга, блок вложил к первому посту

AveMneAve
Рядовой
Сообщения: 13
Зарегистрирован: 06.02.2018{, 14:45}
Репутация: 0
Имя: Константин

Блоки для отрисовки на дисплеях с контроллером SSD1306

#5

Сообщение AveMneAve » 12.02.2018{, 00:22}

А как заставить центровать текст,да и вообще всю информацию на дисплее?

AveMneAve
Рядовой
Сообщения: 13
Зарегистрирован: 06.02.2018{, 14:45}
Репутация: 0
Имя: Константин

Блоки для отрисовки на дисплеях с контроллером SSD1306

#6

Сообщение AveMneAve » 12.02.2018{, 23:26}

Теме Ап! Срочно надо!

aidar_i
Полковник
Сообщения: 2577
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 451
Откуда: Уфа
Имя: Айдар
Контактная информация:

Блоки для отрисовки на дисплеях с контроллером SSD1306

#7

Сообщение aidar_i » 28.11.2018{, 23:07}

Напишите формулу и вставьте
Ширина дисплея минус длина текста делить пополам, вот это и есть координата х, по высоте аналогично, только минус высота шрифта.
Длину текста кажется считает блок в строках, все это можно задать штатными блоками
.

av
Подполковник
Сообщения: 1417
Зарегистрирован: 25.09.2017{, 13:25}
Репутация: 126
Имя: Алексей

Блоки для отрисовки на дисплеях с контроллером SSD1306

#8

Сообщение av » 29.11.2018{, 00:11}

aidar_i, облазил весь интернет не нашел код формулы расчета для Adafrut библиотеки. Видел эту формулу только у библиотеки OLED_I2C но прикрутить к Адафруитовской не получилось. Так же сделал отключение дисплея (режим Power Save), но и тут засада. Удалил библиотеку адафруит из за фирменной заставки и забыл скопипастить эту функцию. А вспомнить не могу голова дырявая :smile390: . Если у вас есть код формулы центровки текста поделитесь. В коде не шарю, так балуюсь глядя на примеры и пытаюсь разбираться по не многу.

Аватара пользователя
diman27
Сержант
Сообщения: 244
Зарегистрирован: 06.09.2015{, 07:33}
Репутация: 2
Откуда: Белово

Блоки для отрисовки на дисплеях с контроллером SSD1306

#9

Сообщение diman27 » 29.11.2018{, 07:54}

Не нашел, а как шрифт поменять можно? этот узкий. Например как в этой теме.

av
Подполковник
Сообщения: 1417
Зарегистрирован: 25.09.2017{, 13:25}
Репутация: 126
Имя: Алексей

Блоки для отрисовки на дисплеях с контроллером SSD1306

#10

Сообщение av » 30.11.2018{, 11:06}

Может кому понадобится. Сделал блок для отключения дисплея режим Sleep и яркость дисплея. Яркость на OLED регулируется от 0 до 255 почти не заметно. По этому значений регулировки яркости всего две (ярко или тускло). Блок работает только с блоками из первого поста.
SSD1306_dim_pwr_(CODE).ubi
(11.31 КБ) 165 скачиваний
Измененная библиотека Adafruit_SSD1306-master. Заменить библиотеку в папке с установленными библами.
Adafruit_SSD1306-master.rar
Измененная библиотека
(16.28 КБ) 200 скачиваний

av
Подполковник
Сообщения: 1417
Зарегистрирован: 25.09.2017{, 13:25}
Репутация: 126
Имя: Алексей

Блоки для отрисовки на дисплеях с контроллером SSD1306

#11

Сообщение av » 06.06.2019{, 10:51}

aidar_i, вы пробовали на библиотеке от Adafruit_SSD1306 сделать блок скроллинга текста ? Попытался сваять блок но не могу разобраться как это сделать. Если есть идеи поделитесь пожалуйста!

Вот блок который пытался сделать:
Scroll_(CODE).ubi
(10.05 КБ) 68 скачиваний

aidar_i
Полковник
Сообщения: 2577
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 451
Откуда: Уфа
Имя: Айдар
Контактная информация:

Блоки для отрисовки на дисплеях с контроллером SSD1306

#12

Сообщение aidar_i » 06.06.2019{, 14:44}

Посмотрю.

Аватара пользователя
НиколаМастер
Рядовой
Сообщения: 84
Зарегистрирован: 10.01.2018{, 12:36}
Репутация: 4
Контактная информация:

Блоки для отрисовки на дисплеях с контроллером SSD1306

#13

Сообщение НиколаМастер » 29.08.2020{, 16:35}

Ник как не подружу OLED c Nano. Можете дать ссылку на работающие блоки? Спасибо.
И по ограничения можно пару слов? У меня вывод текста на разных платах, меню листаю и вывод данных, как лучше сделать?
Brevis esse laboro, obscurus fiо - если я стараюсь быть кратким, я становлюсь непонятным

av
Подполковник
Сообщения: 1417
Зарегистрирован: 25.09.2017{, 13:25}
Репутация: 126
Имя: Алексей

Блоки для отрисовки на дисплеях с контроллером SSD1306

#14

Сообщение av » 29.08.2020{, 17:12}

НиколаМастер, а что не так с подключением к нано ? Эти блоки отлично работают с нано, единственная проблема они много оперативной памяти съедают. Вы библиотеки устанавливали которые указанны в первом посте ?

Аватара пользователя
НиколаМастер
Рядовой
Сообщения: 84
Зарегистрирован: 10.01.2018{, 12:36}
Репутация: 4
Контактная информация:

Блоки для отрисовки на дисплеях с контроллером SSD1306

#15

Сообщение НиколаМастер » 29.08.2020{, 18:10}

Благодарю что ответили!
Ссылка на библиотеку не активна.
У меня работает и то не правильно только на одной плате, когда подключаю остальные просто черный экран.
А первая плата это меню. Когда листаю видны не все позиции целиком, когда листаю по второму кругу то еще меньше информации выводится.
Пришлите библиотеки пожалуйста

Отправлено спустя 7 минут 24 секунды:
Adafruit_Circuit_Playground
Adafruit_GFX_Library
Adafruit_SSD1306-master
Adafruit-GFX-Library
такие стоят
Brevis esse laboro, obscurus fiо - если я стараюсь быть кратким, я становлюсь непонятным

av
Подполковник
Сообщения: 1417
Зарегистрирован: 25.09.2017{, 13:25}
Репутация: 126
Имя: Алексей

Блоки для отрисовки на дисплеях с контроллером SSD1306

#16

Сообщение av » 29.08.2020{, 19:51}

НиколаМастер писал(а):
29.08.2020{, 18:17}
У меня работает и то не правильно только на одной плате, когда подключаю остальные просто черный экран.
А первая плата это меню. Когда листаю видны не все позиции целиком, когда листаю по второму кругу то еще меньше информации выводится.
Пришлите библиотеки пожалуйста
Есть вероятность что неправильно выставлены координаты вывода текста. Нужно проект смотреть, что и как там у вас. Если бы библиотек у вас не было, то вообще бы ничего не отображалось. А так хоть частично отображение есть. Повторюсь нужно смотреть проект !

Аватара пользователя
НиколаМастер
Рядовой
Сообщения: 84
Зарегистрирован: 10.01.2018{, 12:36}
Репутация: 4
Контактная информация:

Блоки для отрисовки на дисплеях с контроллером SSD1306

#17

Сообщение НиколаМастер » 30.08.2020{, 08:56}

Посмотрите пожалуйста
Вложения
30.08.2020_oled_1.flp
(1.65 МБ) 58 скачиваний
Brevis esse laboro, obscurus fiо - если я стараюсь быть кратким, я становлюсь непонятным

Ingwar
Полковник
Сообщения: 1714
Зарегистрирован: 28.10.2015{, 22:47}
Репутация: 140
Откуда: Ленобласть
Имя: Игорь

Блоки для отрисовки на дисплеях с контроллером SSD1306

#18

Сообщение Ingwar » 30.08.2020{, 11:49}

НиколаМастер писал(а):
29.08.2020{, 16:35}
У меня вывод текста на разных платах, меню листаю и вывод данных,
Проект не смотрел. Сколько оперативной памяти используется после компиляции?
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.

Аватара пользователя
НиколаМастер
Рядовой
Сообщения: 84
Зарегистрирован: 10.01.2018{, 12:36}
Репутация: 4
Контактная информация:

Блоки для отрисовки на дисплеях с контроллером SSD1306

#19

Сообщение НиколаМастер » 30.08.2020{, 12:36}

Ни чего не остается...
Скетч использует 28428 байт (92%) памяти устройства. Всего доступно 30720 байт.
Глобальные переменные используют 2021 байт (98%) динамической памяти, оставляя 27 байт для локальных переменных. Максимум: 2048 байт.
Brevis esse laboro, obscurus fiо - если я стараюсь быть кратким, я становлюсь непонятным

av
Подполковник
Сообщения: 1417
Зарегистрирован: 25.09.2017{, 13:25}
Репутация: 126
Имя: Алексей

Блоки для отрисовки на дисплеях с контроллером SSD1306

#20

Сообщение av » 30.08.2020{, 14:38}

НиколаМастер писал(а):
30.08.2020{, 12:36}
Скетч использует 28428 байт (92%) памяти устройства. Всего доступно 30720 байт.
Глобальные переменные используют 2021 байт (98%) динамической памяти, оставляя 27 байт для локальных переменных. Максимум: 2048 байт.
Вот и ваша проблема !!! Как только оперативная память переваливает за значение 75%, все хана начинаются глюки и тормоза. Сталкивался с этой проблемой не один раз.

Ответить

Вернуться в «Дисплеи, индикаторы и клавиатуры»