ESP8266/ESP32 и дисплеи OLED (библиотека esp8266-oled-ssd1306).
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
-
- Полковник
- Сообщения: 3358
- Зарегистрирован: 24 дек 2016, 16:55
- Откуда: Уфа
- Имя: Айдар
- Благодарил (а): 13 раз
- Поблагодарили: 100 раз
- Контактная информация:
ESP8266/ESP32 и дисплеи OLED (библиотека esp8266-oled-ssd1306).
Пользовательские блоки (ПБ) для вывода текста для дисплеев на SSD1306 и SH1106 I2C. Можно допилить главный блок и под SPI, по аналогии. Блоки работают с ESP8266 и с ESP32.
Пример с блоками : Пример с ПБ для переноса длинных текстов в следующую строку.Если заданная строка шире указанной ширины текст будет перенесен на следующую строку через пробел или тире. ЗДЕСЬ изменил главные блоки, появился выбор размера дисплея 128х32.
Пример Бегущая строка
Библиотека измененная под кириллицу, по рекомендациям Vsevolod61 из форума https://esp8266.ru/forum/ Архив в zip в 22 сообщении.
------------------------------------------------------------------------------------------------------------------------------
Добавил еще 3 шрифта,
DialogRus_Italic_10,
ArialRus_Italic_14,
ArialRus_Italic_26
замените в библиотеке файл шрифтов, иначе получите ошибку при использовании шрифта ArialRus: Библиотека с добавленным файлом шрифтов ------------------------------------------------------------------------------------------------------------------------------
Добавил блок очистки выбранного участка дисплея сюда.
Скетч добавил в примеры библиотеки (SSD1306Cyrillic_text_output).
Прочитайте и это https://forum.flprog.ru/viewtopic.php?p=64141#p64141
Подключение OLED к ESP-01 viewtopic.php?p=80849#p80849.
Блок с выводом графика ТУТ.
Видео про FontEditor
[spoiler][/spoiler]
Пример с блоками : Пример с ПБ для переноса длинных текстов в следующую строку.Если заданная строка шире указанной ширины текст будет перенесен на следующую строку через пробел или тире. ЗДЕСЬ изменил главные блоки, появился выбор размера дисплея 128х32.
Пример Бегущая строка
Библиотека измененная под кириллицу, по рекомендациям Vsevolod61 из форума https://esp8266.ru/forum/ Архив в zip в 22 сообщении.
------------------------------------------------------------------------------------------------------------------------------
Добавил еще 3 шрифта,
DialogRus_Italic_10,
ArialRus_Italic_14,
ArialRus_Italic_26
замените в библиотеке файл шрифтов, иначе получите ошибку при использовании шрифта ArialRus: Библиотека с добавленным файлом шрифтов ------------------------------------------------------------------------------------------------------------------------------
Добавил блок очистки выбранного участка дисплея сюда.
Скетч добавил в примеры библиотеки (SSD1306Cyrillic_text_output).
Прочитайте и это https://forum.flprog.ru/viewtopic.php?p=64141#p64141
Подключение OLED к ESP-01 viewtopic.php?p=80849#p80849.
Блок с выводом графика ТУТ.
Видео про FontEditor
[spoiler][/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось aidar_i 08 янв 2022, 18:29, всего редактировалось 29 раз.
-
- Полковник
- Сообщения: 3358
- Зарегистрирован: 24 дек 2016, 16:55
- Откуда: Уфа
- Имя: Айдар
- Благодарил (а): 13 раз
- Поблагодарили: 100 раз
- Контактная информация:
ESP8266 и дисплеи OLED (библиотека esp8266-oled-ssd1306).
Несущественные изменения в библиотеке:
Изменил только пример, чтобы было читабельно для пишущих кодами.
Скачивать и менять предыдущий, не обязательно.
Замените папку шрифтов, см выше.
Изменил только пример, чтобы было читабельно для пишущих кодами.
Скачивать и менять предыдущий, не обязательно.
Замените папку шрифтов, см выше.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось aidar_i 07 фев 2019, 19:29, всего редактировалось 1 раз.
-
- Лейтенант
- Сообщения: 438
- Зарегистрирован: 25 окт 2016, 21:26
- Откуда: Волгоградская обл.
- Имя: СашкаСаняАлександр
- Благодарил (а): 1 раз
- Поблагодарили: 4 раза
ESP8266 и дисплеи OLED (библиотека esp8266-oled-ssd1306).
Все отлично, только одно неудобство, может это обсужалось.
Даже если выставляю горизонтально, начало строчки 20! все равно уходит за левую сторону экрана, вот и нужно вычислять методом тыка, сколько поставить, чтобы хватило.
По чем он ведет отсчет? не с конца строчки , вроде.
Даже если выставляю горизонтально, начало строчки 20! все равно уходит за левую сторону экрана, вот и нужно вычислять методом тыка, сколько поставить, чтобы хватило.
По чем он ведет отсчет? не с конца строчки , вроде.
-
- Полковник
- Сообщения: 3358
- Зарегистрирован: 24 дек 2016, 16:55
- Откуда: Уфа
- Имя: Айдар
- Благодарил (а): 13 раз
- Поблагодарили: 100 раз
- Контактная информация:
ESP8266/ESP32 и дисплеи OLED (библиотека esp8266-oled-ssd1306).
Там есть настройки привязки координат к тексту (text_alignment).
Если стоит, слева (TEXT_ALIGN_LEFT),
х будет привязан к левому краю текста. Если х=0, то текст начнется с левого края.
Если стоит по центру (TEXT_ALIGN_CENTER), х привязан к центру текста, тогда, если х=0, то половина текста уйдет за экран. Чтобы текст встал на середину при такой настройке, х=128/2=64.
Справа (TEXT_ALIGN_RIGHT) , х будет привязан к правому краю текста. Если х=127 (ширина экрана), текст будет выровнен по правому краю.
Попробуйте поставить буквы НННН, например, и погонять, изменяя настройки, по экрану.
Если стоит, слева (TEXT_ALIGN_LEFT),
х будет привязан к левому краю текста. Если х=0, то текст начнется с левого края.
Если стоит по центру (TEXT_ALIGN_CENTER), х привязан к центру текста, тогда, если х=0, то половина текста уйдет за экран. Чтобы текст встал на середину при такой настройке, х=128/2=64.
Справа (TEXT_ALIGN_RIGHT) , х будет привязан к правому краю текста. Если х=127 (ширина экрана), текст будет выровнен по правому краю.
Попробуйте поставить буквы НННН, например, и погонять, изменяя настройки, по экрану.
Последний раз редактировалось aidar_i 04 дек 2019, 08:19, всего редактировалось 8 раз.
-
- Полковник
- Сообщения: 3358
- Зарегистрирован: 24 дек 2016, 16:55
- Откуда: Уфа
- Имя: Айдар
- Благодарил (а): 13 раз
- Поблагодарили: 100 раз
- Контактная информация:
ESP8266 и дисплеи OLED (библиотека esp8266-oled-ssd1306).
[spoiler]Отправлено спустя 2 часа 5 минут 9 секунд:
ПБ для переноса текста выложил в первое сообщение
[/spoiler]ПБ для переноса текста выложил в первое сообщение
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- Лейтенант
- Сообщения: 438
- Зарегистрирован: 25 окт 2016, 21:26
- Откуда: Волгоградская обл.
- Имя: СашкаСаняАлександр
- Благодарил (а): 1 раз
- Поблагодарили: 4 раза
ESP8266 и дисплеи OLED (библиотека esp8266-oled-ssd1306).
[ref]aidar_i[/ref],
Вот сейчас проверяю работу , и происходит наложение, не постоянно а, когда захочет.
В основном вот так, но иногда множится на всю строку, и только в этой строке.
[spoiler] [/spoiler]
[spoiler] [/spoiler]Экран +Nodemcu/
Отправлено спустя 27 минут 14 секунд:
Все. Вопрос отменяется. Не в экране дело.
Вот сейчас проверяю работу , и происходит наложение, не постоянно а, когда захочет.
В основном вот так, но иногда множится на всю строку, и только в этой строке.
[spoiler] [/spoiler]
[spoiler] [/spoiler]Экран +Nodemcu/
Отправлено спустя 27 минут 14 секунд:
Все. Вопрос отменяется. Не в экране дело.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- Полковник
- Сообщения: 3358
- Зарегистрирован: 24 дек 2016, 16:55
- Откуда: Уфа
- Имя: Айдар
- Благодарил (а): 13 раз
- Поблагодарили: 100 раз
- Контактная информация:
ESP8266 и дисплеи OLED (библиотека esp8266-oled-ssd1306).
Добавил в библиотеку 3 шрифта, а в пример 3 блока: очистки, включения и выключения дисплея.
Отправлено спустя 7 минут 51 секунду:
pipapsix, чтобы не применять много блоков, можно использовать штатный блок суммирование строк или объединить блоки в одну - две (с одним входом En). Чтобы в блоке не было много настроек, можно заполнить значения для проекта (например х и у) в блоке.
Отправлено спустя 7 минут 51 секунду:
pipapsix, чтобы не применять много блоков, можно использовать штатный блок суммирование строк или объединить блоки в одну - две (с одним входом En). Чтобы в блоке не было много настроек, можно заполнить значения для проекта (например х и у) в блоке.
-
- Лейтенант
- Сообщения: 438
- Зарегистрирован: 25 окт 2016, 21:26
- Откуда: Волгоградская обл.
- Имя: СашкаСаняАлександр
- Благодарил (а): 1 раз
- Поблагодарили: 4 раза
ESP8266 и дисплеи OLED (библиотека esp8266-oled-ssd1306).
Эт я в курсе, я специально так сделал, для удобства.
Чет вопросов много появилось.
Эт как? как то масло масляное получается.aidar_i писал(а): 06 фев 2019, 19:02Чтобы в блоке не было много настроек, можно заполнить значения для проекта (например х и у) в блоке.
Это как и зачем?
Открыл проэкт.
Зачем отключать экран?
Чистка обязательна?? и без нее на данный момент все отлично работает.
Чем дальше вникаю, тем меньше понимаю, уже голова кипит
-
- Полковник
- Сообщения: 3358
- Зарегистрирован: 24 дек 2016, 16:55
- Откуда: Уфа
- Имя: Айдар
- Благодарил (а): 13 раз
- Поблагодарили: 100 раз
- Контактная информация:
ESP8266 и дисплеи OLED (библиотека esp8266-oled-ssd1306).
Делайте, как делаете.
Дополнительные блоки я добавил , чтобы можно было применять по необходимости, пример даже привел. Вдруг захотите, чтобы экран постоянно не горел, олед дисплей, пишут, имеет ограниченный срок службы.
Отправлено спустя 1 минуту 46 секунд:
Чистка стоит в главном блоке, в лооп. Доп блоком можно очистить ещё, когда хотите, см пример.
Дополнительные блоки я добавил , чтобы можно было применять по необходимости, пример даже привел. Вдруг захотите, чтобы экран постоянно не горел, олед дисплей, пишут, имеет ограниченный срок службы.
Отправлено спустя 1 минуту 46 секунд:
Чистка стоит в главном блоке, в лооп. Доп блоком можно очистить ещё, когда хотите, см пример.
-
- Лейтенант
- Сообщения: 438
- Зарегистрирован: 25 окт 2016, 21:26
- Откуда: Волгоградская обл.
- Имя: СашкаСаняАлександр
- Благодарил (а): 1 раз
- Поблагодарили: 4 раза
ESP8266 и дисплеи OLED (библиотека esp8266-oled-ssd1306).
ААА.Ясно понятно.Спасибо.
С пятого раза получилось бегущую строку вывести, на всю строку.aidar_i писал(а): 05 фев 2019, 23:20Там есть настройки положения текста. Если стоит, слева, текст будет слева и х будет привязан к левому краю текста. Если х=0, то текст начнется с левого края.
Если стоит по центру, х привязан к центру текста, тогда, если х=0, то половина текста уйдет за экран. Чтобы текст встал на середину при такой настройке, х=128/2=64.
Справа, аналогично слева, наоборот.
-
- Лейтенант
- Сообщения: 450
- Зарегистрирован: 26 фев 2018, 21:27
- Откуда: Haifa
- Имя: Alex
- Благодарил (а): 2 раза
- Поблагодарили: 5 раз
ESP8266 и дисплеи OLED (библиотека esp8266-oled-ssd1306).
[ref]pipapsix[/ref], можешь выложить блок с бегущей строкой сюда?
-
- Лейтенант
- Сообщения: 450
- Зарегистрирован: 26 фев 2018, 21:27
- Откуда: Haifa
- Имя: Alex
- Благодарил (а): 2 раза
- Поблагодарили: 5 раз
ESP8266 и дисплеи OLED (библиотека esp8266-oled-ssd1306).
Это блоки для дисплея HD44780,я думал Вы сделали для esp-SSD1306
-
- Лейтенант
- Сообщения: 438
- Зарегистрирован: 25 окт 2016, 21:26
- Откуда: Волгоградская обл.
- Имя: СашкаСаняАлександр
- Благодарил (а): 1 раз
- Поблагодарили: 4 раза
ESP8266 и дисплеи OLED (библиотека esp8266-oled-ssd1306).
А кто мешает его здесь использовать??
[spoiler] [/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- Лейтенант
- Сообщения: 450
- Зарегистрирован: 26 фев 2018, 21:27
- Откуда: Haifa
- Имя: Alex
- Благодарил (а): 2 раза
- Поблагодарили: 5 раз
ESP8266 и дисплеи OLED (библиотека esp8266-oled-ssd1306).
[ref]pipapsix[/ref], Точно,я как то сразу и не понял 

-
- Полковник
- Сообщения: 3358
- Зарегистрирован: 24 дек 2016, 16:55
- Откуда: Уфа
- Имя: Айдар
- Благодарил (а): 13 раз
- Поблагодарили: 100 раз
- Контактная информация:
ESP8266 и дисплеи OLED (библиотека esp8266-oled-ssd1306).
Этот блок не совсем подходит для ОЛЕД, там смещение происходит на один символ, а нужно на один пиксель. Текст идет дерганно. Хорошо было бы иметь блок смещения на один пиксель.
Я сделал пример бегущей строки , доделав ПБ вывода текста, создал входы Х и У. Работает хорошо.
Но есть одна проблема: нужен подсчет длины текста, штатный блок считает длину кириллицы неправильно , тк символ в кириллице 2 байта, а в латинице 1 байт. Я делю на 2 и более менее нормально. Для латиницы не надо делить. Для смешанного текста будет проблемно. Можно, конечно, подсчитать и поставить сразу значение, и их подогнать загрузив скетч.
Я сделал пример бегущей строки , доделав ПБ вывода текста, создал входы Х и У. Работает хорошо.
Но есть одна проблема: нужен подсчет длины текста, штатный блок считает длину кириллицы неправильно , тк символ в кириллице 2 байта, а в латинице 1 байт. Я делю на 2 и более менее нормально. Для латиницы не надо делить. Для смешанного текста будет проблемно. Можно, конечно, подсчитать и поставить сразу значение, и их подогнать загрузив скетч.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- Полковник
- Сообщения: 1928
- Зарегистрирован: 28 окт 2015, 22:47
- Откуда: Ленобласть
- Имя: Игорь
- Поблагодарили: 2 раза
ESP8266 и дисплеи OLED (библиотека esp8266-oled-ssd1306).
При использовании "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]
Куда копать?
[spoiler]pr4:8: error: #include expects "FILENAME" or <FILENAME>
#include "SH1106.h
exit status 1
#include expects "FILENAME" or <FILENAME>[/spoiler]
Куда копать?
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.
-
- Полковник
- Сообщения: 3358
- Зарегистрирован: 24 дек 2016, 16:55
- Откуда: Уфа
- Имя: Айдар
- Благодарил (а): 13 раз
- Поблагодарили: 100 раз
- Контактная информация:
ESP8266 и дисплеи OLED (библиотека esp8266-oled-ssd1306).
Прошу прощения, допустил ошибку в этом блоке, стер нечаянно кавычку вторую, см ниже. Исправлю.
[spoiler] [/spoiler]
Заменил пример с блоками.
[spoiler] [/spoiler]
Заменил пример с блоками.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- Полковник
- Сообщения: 1928
- Зарегистрирован: 28 окт 2015, 22:47
- Откуда: Ленобласть
- Имя: Игорь
- Поблагодарили: 2 раза
ESP8266 и дисплеи OLED (библиотека esp8266-oled-ssd1306).
Продолжение...)
Настройки координат 0 ; 0 число 1234567890
[spoiler] [/spoiler]
Настройки координат 0 ; 0 число 1234567890
[spoiler] [/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.
-
- Полковник
- Сообщения: 3358
- Зарегистрирован: 24 дек 2016, 16:55
- Откуда: Уфа
- Имя: Айдар
- Благодарил (а): 13 раз
- Поблагодарили: 100 раз
- Контактная информация:
ESP8266 и дисплеи OLED (библиотека esp8266-oled-ssd1306).
Ответ здесь
В вашем случае text_alignment = TEXT_ALIGN_LEFT, если хотите слева. Или х = 128/2=64, если хотите по середине.
В вашем случае text_alignment = TEXT_ALIGN_LEFT, если хотите слева. Или х = 128/2=64, если хотите по середине.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя