Страница 1 из 3

Вывод текста на дисплеи OLED c интерфейсом I2C и контроллером SSD1306

Добавлено: 23 авг 2018, 09:21
RedSky
Набор блоков для вывода текста на дисплей Oled с интерфейсом I2C. Есть кириллица. Поддерживается только дисплей с разрешением 128х64 и контроллером SSD 1306.
Адреc дисплея на шине должен быть 0х3C (для изменения нужно редактировать блок).
В отличии от блоков с поддержкой графики для работы требует незначительный объём RAM.
Возможности блоков: вывод текста отдельными блоками (аналогично штатным блокам для HD44780),
инвертирование текста для одного блока и/или всего экрана.
Доступно два шрифта: мелкий 5х7 пикселей - всего 8 строк по 21 знаку,
крупный 10х14 пикселей - всего 4 строки по 10 знаков.
Возможно располагать текст на экране произвольным образом, в том числе комбинировать
блоки с мелким и крупным шрифтом, делать вывод строки из нескольких частей, инвертировать часть строки, росполагать разные блоки в одном и том же месте экрана (при условии что они отображаются НЕ одновременно).
Для расположения строк большого шрифта есть особенность: хотя символы во сравнению с малым шрифтом имеют двойной размер, расположение строк аналогично малому шрифту, таким образом один символ занимает две строки со сдвигом вверх.
Поэтому счёт строк начинается со второй с шагом 1/2.
Таким образом:
1-я строка будет под номером 2
2-я под номером 4
3-я под номером 6
4-я под номером 8
Описание входов и параметров пользователя внутри блоков.
В архиве блоки и библиотека.

Вывод текста на дисплеи OLED c интерфейсом I2C и контроллером SSD1306

Добавлено: 23 авг 2018, 19:26
RedSky
С U8g2 пока не очень разобрался. В том примере, что нашёл "Привет мир" требует 29% ОЗУ, и как менять шрифт не разобрался.

Вывод текста на дисплеи OLED c интерфейсом I2C и контроллером SSD1306

Добавлено: 20 окт 2018, 20:29
Sergo
c NodeMCU работает? а то сколько не пробовал пользовательских блоков - все только с ардуинами работают..

Вывод текста на дисплеи OLED c интерфейсом I2C и контроллером SSD1306

Добавлено: 21 окт 2018, 08:20
RedSky
[ref]Sergo[/ref], посмотрите в этой теме viewtopic.php?f=133&t=4117, там работает с модифицированной библиотекой от Adafruit, если у Вас уже установлена стандартная нужно заменить.

Вывод текста на дисплеи OLED c интерфейсом I2C и контроллером SSD1306

Добавлено: 21 окт 2018, 09:54
Sergo
[ref]RedSky[/ref], спасибо, попробую.

Отправлено спустя 10 минут 46 секунд:
[ref]RedSky[/ref], но вот только не понял где там нужная библиотека, тема-то про "MQTT Брокера на ESP8266 NodeMCU"...

Вывод текста на дисплеи OLED c интерфейсом I2C и контроллером SSD1306

Добавлено: 21 окт 2018, 10:47
RedSky
Библиотеки в проекте Test_MQTT_SUB_OLED внутри пользовательского блока SSD1306 I2C main NodeMCU, установятся автоматически, когда добавите блок в проект. Только нужно предварительно удалить имеющиеся стандартные (если есть).

Вывод текста на дисплеи OLED c интерфейсом I2C и контроллером SSD1306

Добавлено: 22 окт 2018, 14:14
aidar_i
av писал(а): 23 авг 2018, 10:06вы не пробовали на библиотеке U8g2 ?
Я разбирался, даже сделал ПБ. Пока некогда проверить и выложить.

Вывод текста на дисплеи OLED c интерфейсом I2C и контроллером SSD1306

Добавлено: 22 окт 2018, 22:14
aidar_i
Пока попробуйте вот это.

Вывод текста на дисплеи OLED c интерфейсом I2C и контроллером SSD1306

Добавлено: 23 окт 2018, 01:00
aidar_i
Вот вывод текста на U8g2 здесь.

Вывод текста на дисплеи OLED c интерфейсом I2C и контроллером SSD1306

Добавлено: 23 ноя 2018, 23:17
ivanpost
[ref]RedSky[/ref], Может что то не вижу в настройках, на 2-х разных камнях блоки конфликтуют с библиотекой Wire.h (Нужна для часов) - засыпают мусором почти весь экран, правда места вывода букв - остаются... Без библиотеки - работают отлично... Не сталкивались?

Вывод текста на дисплеи OLED c интерфейсом I2C и контроллером SSD1306

Добавлено: 24 ноя 2018, 09:02
RedSky
Вместе с часами не испытывал, ничего подсказать не могу. А попробуйте в собраном проекте убрать строчку с Wire.h - будут ли работать часы?

Вывод текста на дисплеи OLED c интерфейсом I2C и контроллером SSD1306

Добавлено: 24 ноя 2018, 17:37
ivanpost
[ref]RedSky[/ref], Нет, так не компилируется - ругань на функции... Жаль... Очень мало памяти жрут блоки и достаточно шустры...

Вывод текста на дисплеи OLED c интерфейсом I2C и контроллером SSD1306

Добавлено: 29 ноя 2018, 07:16
diman27
Привет всем. А может кто сделать еще один размер шрифта "самый большой" в два раза больше большого?

Вывод текста на дисплеи OLED c интерфейсом I2C и контроллером SSD1306

Добавлено: 11 дек 2018, 18:30
ivanpost
[ref]RedSky[/ref], Почему то myOLED не хочет работать с макросом F() - начинает менять символы. Нет мыслей почему?

Вывод текста на дисплеи OLED c интерфейсом I2C и контроллером SSD1306

Добавлено: 11 дек 2018, 21:10
RedSky
Не могу ответить, не очень хорошо разбираюсь в С++ и архитектуре AVR. Делал блоки на основе примеров автора библиотеки.

Вывод текста на дисплеи OLED c интерфейсом I2C и контроллером SSD1306

Добавлено: 12 дек 2018, 23:59
ivanpost
[ref]ivanpost[/ref], Для работы с часами придется заменить библиотеку Wire.h на iarduinoRTC.h. Все в сумме работает очень быстро и ест мало RAM (жалкие 300 байт :smile427: ). флэш -прилично . Так что библиотеки легко можно использовать для 328p. Вот рабочий блок для часов

Вывод текста на дисплеи OLED c интерфейсом I2C и контроллером SSD1306

Добавлено: 09 янв 2019, 21:54
sergii2012
c:\Program Files (x86)\FLProg\ideV2\libraries\iarduino_OLED_txt\src\DefaultFonts.c:1:124: fatal error: avr/pgmspace.h: No such file or directory

#include <avr/pgmspace.h> // Номер байта п/п: 0 1 2 3 4 5 Номер байта п/п: 0 1 2 3 4 5 ^
compilation terminated.
exit status 1
Ошибка компиляции для платы NodeMCU 0.9 (ESP-12 Module).

при использовании библиотеки из первого поста
как это исправить?

Вывод текста на дисплеи OLED c интерфейсом I2C и контроллером SSD1306

Добавлено: 10 янв 2019, 10:00
kulibinsvv
sergii2012 писал(а): 09 янв 2019, 21:54как это исправить?
Начнём:
1.
sergii2012 писал(а): 09 янв 2019, 21:54fatal error: avr/pgmspace.h: No such file or directory
Компилятор на чистом английском вам сообщает, что не может найти avr/pgmspace.h. Ошибку вызывает файл:
sergii2012 писал(а): 09 янв 2019, 21:54c:\Program Files (x86)\FLProg\ideV2\libraries\iarduino_OLED_txt\src\DefaultFonts.
строка 1, позиция 124.
Всё это можно было узнать, запихнув вывод компилятора в гугл/яндекс переводчик.
2. Наберитесь терпения и прочтите полностью всю ветку.

Вывод текста на дисплеи OLED c интерфейсом I2C и контроллером SSD1306

Добавлено: 10 янв 2019, 11:13
aidar_i
Про это писал тут viewtopic.php?p=57227#p57227

Вывод текста на дисплеи OLED c интерфейсом I2C и контроллером SSD1306

Добавлено: 10 янв 2019, 20:12
sergii2012
aidar_i писал(а): 10 янв 2019, 11:13Про это писал тут viewtopic.php?p=57227#p57227
спасибо что помогаете мне. :smile390: заменил в библиотеке. олед запустился. вывожу время.
#include <avr\pgmspace.h>
на
#if (defined(__AVR__))
#include <avr\pgmspace.h>
#else
#include <pgmspace.h>
#endif
олед запустился. вывожу время. на экране пару цифр и точки :smile14: