ESP8266/ESP32 и дисплеи OLED (библиотека esp8266-oled-ssd1306).

Пользовательские блоки для вывода информации на дисплеи и индикаторы, управления тачскрином, различными клавиатурами, добавления русских шрифтов для вывода на дисплеи типа HD44780
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
aidar_i
Полковник
Сообщения: 3358
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 13 раз
Поблагодарили: 100 раз
Контактная информация:

ESP8266/ESP32 и дисплеи OLED (библиотека esp8266-oled-ssd1306).

Сообщение aidar_i »

Пользовательские блоки (ПБ) для вывода текста для дисплеев на SSD1306 и SH1106 I2C. Можно допилить главный блок и под SPI, по аналогии. Блоки работают с ESP8266 и с ESP32.
Пример с блоками :
ESP8266_Oled_SSD1306_display2.flp
Пример с ПБ для переноса длинных текстов в следующую строку.Если заданная строка шире указанной ширины текст будет перенесен на следующую строку через пробел или тире.
ESP8266_Oled_перенос текста.flp
ЗДЕСЬ изменил главные блоки, появился выбор размера дисплея 128х32.

Пример Бегущая строка
Библиотека измененная под кириллицу, по рекомендациям Vsevolod61 из форума https://esp8266.ru/forum/
esp8266-oled-ssd1306.rar
Архив в zip в 22 сообщении.
------------------------------------------------------------------------------------------------------------------------------
Добавил еще 3 шрифта,
DialogRus_Italic_10,
ArialRus_Italic_14,
ArialRus_Italic_26
замените в библиотеке файл шрифтов, иначе получите ошибку при использовании шрифта ArialRus:
OLEDDisplayFonts_rus.h
Библиотека с добавленным файлом шрифтов
esp8266-oled-ssd1306.rar
------------------------------------------------------------------------------------------------------------------------------
Добавил блок очистки выбранного участка дисплея сюда.

Скетч добавил в примеры библиотеки (SSD1306Cyrillic_text_output).
Прочитайте и это https://forum.flprog.ru/viewtopic.php?p=64141#p64141

Подключение OLED к ESP-01 viewtopic.php?p=80849#p80849.
Блок с выводом графика ТУТ.
FontEditor.rar
Видео про FontEditor
[spoiler][/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось aidar_i 08 янв 2022, 18:29, всего редактировалось 29 раз.
aidar_i
Полковник
Сообщения: 3358
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 13 раз
Поблагодарили: 100 раз
Контактная информация:

ESP8266 и дисплеи OLED (библиотека esp8266-oled-ssd1306).

Сообщение aidar_i »

Несущественные изменения в библиотеке:
Изменил только пример, чтобы было читабельно для пишущих кодами.
Скачивать и менять предыдущий, не обязательно.
Замените папку шрифтов, см выше.
esp8266-oled-ssd1306.rar
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось aidar_i 07 фев 2019, 19:29, всего редактировалось 1 раз.
pipapsix
Лейтенант
Сообщения: 438
Зарегистрирован: 25 окт 2016, 21:26
Откуда: Волгоградская обл.
Имя: СашкаСаняАлександр
Благодарил (а): 1 раз
Поблагодарили: 4 раза

ESP8266 и дисплеи OLED (библиотека esp8266-oled-ssd1306).

Сообщение pipapsix »

Все отлично, только одно неудобство, может это обсужалось.
Даже если выставляю горизонтально, начало строчки 20! все равно уходит за левую сторону экрана, вот и нужно вычислять методом тыка, сколько поставить, чтобы хватило.
По чем он ведет отсчет? не с конца строчки , вроде.
aidar_i
Полковник
Сообщения: 3358
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 13 раз
Поблагодарили: 100 раз
Контактная информация:

ESP8266/ESP32 и дисплеи OLED (библиотека esp8266-oled-ssd1306).

Сообщение aidar_i »

Там есть настройки привязки координат к тексту (text_alignment).
Если стоит, слева (TEXT_ALIGN_LEFT),
х будет привязан к левому краю текста. Если х=0, то текст начнется с левого края.
Если стоит по центру (TEXT_ALIGN_CENTER), х привязан к центру текста, тогда, если х=0, то половина текста уйдет за экран. Чтобы текст встал на середину при такой настройке, х=128/2=64.
Справа (TEXT_ALIGN_RIGHT) , х будет привязан к правому краю текста. Если х=127 (ширина экрана), текст будет выровнен по правому краю.
Попробуйте поставить буквы НННН, например, и погонять, изменяя настройки, по экрану.
Последний раз редактировалось aidar_i 04 дек 2019, 08:19, всего редактировалось 8 раз.
aidar_i
Полковник
Сообщения: 3358
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 13 раз
Поблагодарили: 100 раз
Контактная информация:

ESP8266 и дисплеи OLED (библиотека esp8266-oled-ssd1306).

Сообщение aidar_i »

[spoiler]
ОЛЕД.jpeg
[/spoiler]Отправлено спустя 2 часа 5 минут 9 секунд:
ПБ для переноса текста выложил в первое сообщение
У вас нет необходимых прав для просмотра вложений в этом сообщении.
pipapsix
Лейтенант
Сообщения: 438
Зарегистрирован: 25 окт 2016, 21:26
Откуда: Волгоградская обл.
Имя: СашкаСаняАлександр
Благодарил (а): 1 раз
Поблагодарили: 4 раза

ESP8266 и дисплеи OLED (библиотека esp8266-oled-ssd1306).

Сообщение pipapsix »

[ref]aidar_i[/ref],
Вот сейчас проверяю работу , и происходит наложение, не постоянно а, когда захочет.
В основном вот так, но иногда множится на всю строку, и только в этой строке.
[spoiler]
IMG_20190206_171847.jpg
[/spoiler]
[spoiler]
2019-02-06_18-06-16.png
[/spoiler]Экран +Nodemcu/

Отправлено спустя 27 минут 14 секунд:
Все. Вопрос отменяется. Не в экране дело.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
aidar_i
Полковник
Сообщения: 3358
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 13 раз
Поблагодарили: 100 раз
Контактная информация:

ESP8266 и дисплеи OLED (библиотека esp8266-oled-ssd1306).

Сообщение aidar_i »

Добавил в библиотеку 3 шрифта, а в пример 3 блока: очистки, включения и выключения дисплея.

Отправлено спустя 7 минут 51 секунду:
pipapsix, чтобы не применять много блоков, можно использовать штатный блок суммирование строк или объединить блоки в одну - две (с одним входом En). Чтобы в блоке не было много настроек, можно заполнить значения для проекта (например х и у) в блоке.
pipapsix
Лейтенант
Сообщения: 438
Зарегистрирован: 25 окт 2016, 21:26
Откуда: Волгоградская обл.
Имя: СашкаСаняАлександр
Благодарил (а): 1 раз
Поблагодарили: 4 раза

ESP8266 и дисплеи OLED (библиотека esp8266-oled-ssd1306).

Сообщение pipapsix »

aidar_i писал(а): 06 фев 2019, 19:02можно использовать штатный блок суммирование строк
Эт я в курсе, я специально так сделал, для удобства.
Чет вопросов много появилось.
aidar_i писал(а): 06 фев 2019, 19:02Чтобы в блоке не было много настроек, можно заполнить значения для проекта (например х и у) в блоке.
Эт как? как то масло масляное получается.
aidar_i писал(а): 06 фев 2019, 19:02или объединить блоки в одну - две (с одним входом En)
Это как и зачем?

Открыл проэкт.
Зачем отключать экран?
Чистка обязательна?? и без нее на данный момент все отлично работает.

Чем дальше вникаю, тем меньше понимаю, уже голова кипит
aidar_i
Полковник
Сообщения: 3358
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 13 раз
Поблагодарили: 100 раз
Контактная информация:

ESP8266 и дисплеи OLED (библиотека esp8266-oled-ssd1306).

Сообщение aidar_i »

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

Отправлено спустя 1 минуту 46 секунд:
Чистка стоит в главном блоке, в лооп. Доп блоком можно очистить ещё, когда хотите, см пример.
pipapsix
Лейтенант
Сообщения: 438
Зарегистрирован: 25 окт 2016, 21:26
Откуда: Волгоградская обл.
Имя: СашкаСаняАлександр
Благодарил (а): 1 раз
Поблагодарили: 4 раза

ESP8266 и дисплеи OLED (библиотека esp8266-oled-ssd1306).

Сообщение pipapsix »

ААА.Ясно понятно.Спасибо.
aidar_i писал(а): 05 фев 2019, 23:20Там есть настройки положения текста. Если стоит, слева, текст будет слева и х будет привязан к левому краю текста. Если х=0, то текст начнется с левого края.
Если стоит по центру, х привязан к центру текста, тогда, если х=0, то половина текста уйдет за экран. Чтобы текст встал на середину при такой настройке, х=128/2=64.
Справа, аналогично слева, наоборот.
С пятого раза получилось бегущую строку вывести, на всю строку.
Brand2
Лейтенант
Сообщения: 450
Зарегистрирован: 26 фев 2018, 21:27
Откуда: Haifa
Имя: Alex
Благодарил (а): 2 раза
Поблагодарили: 5 раз

ESP8266 и дисплеи OLED (библиотека esp8266-oled-ssd1306).

Сообщение Brand2 »

[ref]pipapsix[/ref], можешь выложить блок с бегущей строкой сюда?
pipapsix
Лейтенант
Сообщения: 438
Зарегистрирован: 25 окт 2016, 21:26
Откуда: Волгоградская обл.
Имя: СашкаСаняАлександр
Благодарил (а): 1 раз
Поблагодарили: 4 раза

ESP8266 и дисплеи OLED (библиотека esp8266-oled-ssd1306).

Сообщение pipapsix »

[ref]Brand2[/ref],
ссылка
Brand2
Лейтенант
Сообщения: 450
Зарегистрирован: 26 фев 2018, 21:27
Откуда: Haifa
Имя: Alex
Благодарил (а): 2 раза
Поблагодарили: 5 раз

ESP8266 и дисплеи OLED (библиотека esp8266-oled-ssd1306).

Сообщение Brand2 »

Это блоки для дисплея HD44780,я думал Вы сделали для esp-SSD1306
pipapsix
Лейтенант
Сообщения: 438
Зарегистрирован: 25 окт 2016, 21:26
Откуда: Волгоградская обл.
Имя: СашкаСаняАлександр
Благодарил (а): 1 раз
Поблагодарили: 4 раза

ESP8266 и дисплеи OLED (библиотека esp8266-oled-ssd1306).

Сообщение pipapsix »

Brand2 писал(а): 07 фев 2019, 18:28Это блоки для дисплея HD44780,я думал Вы сделали для esp-SSD1306
А кто мешает его здесь использовать??
[spoiler]
2019-02-07_19-37-21.png
[/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Brand2
Лейтенант
Сообщения: 450
Зарегистрирован: 26 фев 2018, 21:27
Откуда: Haifa
Имя: Alex
Благодарил (а): 2 раза
Поблагодарили: 5 раз

ESP8266 и дисплеи OLED (библиотека esp8266-oled-ssd1306).

Сообщение Brand2 »

[ref]pipapsix[/ref], Точно,я как то сразу и не понял :smile250:
aidar_i
Полковник
Сообщения: 3358
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 13 раз
Поблагодарили: 100 раз
Контактная информация:

ESP8266 и дисплеи OLED (библиотека esp8266-oled-ssd1306).

Сообщение aidar_i »

Этот блок не совсем подходит для ОЛЕД, там смещение происходит на один символ, а нужно на один пиксель. Текст идет дерганно. Хорошо было бы иметь блок смещения на один пиксель.
Я сделал пример бегущей строки , доделав ПБ вывода текста, создал входы Х и У. Работает хорошо.
Но есть одна проблема: нужен подсчет длины текста, штатный блок считает длину кириллицы неправильно , тк символ в кириллице 2 байта, а в латинице 1 байт. Я делю на 2 и более менее нормально. Для латиницы не надо делить. Для смешанного текста будет проблемно. Можно, конечно, подсчитать и поставить сразу значение, и их подогнать загрузив скетч.
Бегущая строка.flp
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Ingwar
Полковник
Сообщения: 1928
Зарегистрирован: 28 окт 2015, 22:47
Откуда: Ленобласть
Имя: Игорь
Поблагодарили: 2 раза

ESP8266 и дисплеи OLED (библиотека esp8266-oled-ssd1306).

Сообщение Ingwar »

При использовании "SSD1306 ESP8266rus главный" компилится, при использовании "SH1106 ESP8266rus главный" вылезает
[spoiler]pr4:8: error: #include expects "FILENAME" or <FILENAME>

#include "SH1106.h
exit status 1
#include expects "FILENAME" or <FILENAME>[/spoiler]
Куда копать?
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.
aidar_i
Полковник
Сообщения: 3358
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 13 раз
Поблагодарили: 100 раз
Контактная информация:

ESP8266 и дисплеи OLED (библиотека esp8266-oled-ssd1306).

Сообщение aidar_i »

Прошу прощения, допустил ошибку в этом блоке, стер нечаянно кавычку вторую, см ниже. Исправлю.
[spoiler]
Ошибка.png
[/spoiler]
Заменил пример с блоками.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Ingwar
Полковник
Сообщения: 1928
Зарегистрирован: 28 окт 2015, 22:47
Откуда: Ленобласть
Имя: Игорь
Поблагодарили: 2 раза

ESP8266 и дисплеи OLED (библиотека esp8266-oled-ssd1306).

Сообщение Ingwar »

Продолжение...)
Настройки координат 0 ; 0 число 1234567890
[spoiler]
2.png
[/spoiler]
esp_sh1106.flp
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.
aidar_i
Полковник
Сообщения: 3358
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 13 раз
Поблагодарили: 100 раз
Контактная информация:

ESP8266 и дисплеи OLED (библиотека esp8266-oled-ssd1306).

Сообщение aidar_i »

Ответ здесь
В вашем случае text_alignment = TEXT_ALIGN_LEFT, если хотите слева. Или х = 128/2=64, если хотите по середине.
Ответить

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

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя