Вывод текста на дисплеи OLED c интерфейсом I2C и контроллером SSD1306
Добавлено: 23.08.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
Добавлено: 11.01.2019{, 10:55}
Dimm
Приветствую всех! Заюзал данный ПБ, вроде понравилось) Имеет место явление:
не сбрасываются предидущие значения. если, например, вывести трехзначное число, потом на этом же месте вывести двухзначное, то видеть мы будем трехзначное. т.к. третий знак не погас. Например, выводим 99 - видим 99, затем выводим 100- видим 100, потом обратно 99 - увидим 199. Предполагаю, что где-то что-то должно обнуляться... Может знает кто как лечить?, т.к. в коде я нешипко шарю
Вывод текста на дисплеи OLED c интерфейсом I2C и контроллером SSD1306
ivanpost, Для работы с часами придется заменить библиотеку Wire.h на iarduinoRTC.h. Все в сумме работает очень быстро и ест мало RAM (жалкие 300 байт ). флэш -прилично . Так что библиотеки легко можно использовать для 328p. Вот рабочий блок для часов
C:\Users\sergi\AppData\Local\Temp\flprog\pr1\pr1.ino:5:28: warning: extra tokens at end of #include directive [enabled by default]
#include "user_interface.h";
^
In file included from c:\Program Files (x86)\FLProg\ideV2\libraries\iarduino_RTC/iarduino_RTC.h:28:0,
from C:\Users\sergi\AppData\Local\Temp\flprog\pr1\pr1.ino:2:
c:\Program Files (x86)\FLProg\ideV2\libraries\iarduino_RTC/iarduino_RTC_DS1307.h: In member function 'void iarduino_RTC_DS1307::funcBegin(uint32_t)':
c:\Program Files (x86)\FLProg\ideV2\libraries\iarduino_RTC/iarduino_RTC_DS1307.h:65:248: error: 'TWBR' was not declared in this scope
c:\Program Files (x86)\FLProg\ideV2\portable\packages\esp8266\hardware\esp8266\2.3.0-rc2\cores\esp8266/Arduino.h:184:25: note: in definition of macro '_BV'
Вывод текста на дисплеи OLED c интерфейсом I2C и контроллером SSD1306
Добавлено: 14.01.2019{, 16:56}
sergii2012
пока не решен вопрос
Вывод текста на дисплеи OLED c интерфейсом I2C и контроллером SSD1306
Добавлено: 14.01.2019{, 18:00}
aidar_i
В просторах интернета есть много примеров с разными библиотеками. Проверьте, какие Вам нравятся, ПБ для олед дисплеев тоже есть в форуме разные.
Еще попробуйте заменить драйверы
Вывод текста на дисплеи OLED c интерфейсом I2C и контроллером SSD1306
Добавлено: 01.02.2019{, 20:01}
aidar_i
Накидал блок для теста OLED + ESP8266. Без кириллицы.
Модель дисплея выберите в "редактирование" блока, в DeclareSection, (удалите ненужный или закомментируйте, по умолчанию стоит
#include "SH1106.h"
SH1106 display(adr_disp, pin_SDA, pin_SCK);
Вывод текста на дисплеи OLED c интерфейсом I2C и контроллером SSD1306
Добавлено: 02.02.2019{, 10:36}
ingener
А вот вопрос немного не в тему, но касательно дисплея и 12С. Можно ли, если 12С уже впаян в 1602, подключать дисплей напрямую? То есть, к пинам припаивать провода, идущие к выводам Ардуино?
Больно хлопотно выпаивать 12С с дисплея, да и потенциометр яркости уже на месте.
Вывод текста на дисплеи OLED c интерфейсом I2C и контроллером SSD1306
Добавлено: 02.02.2019{, 10:40}
aidar_i
Я думаю, можно, на счёт потенциометра не знаю, надо схему смотреть.
Вывод текста на дисплеи OLED c интерфейсом I2C и контроллером SSD1306
Добавлено: 02.02.2019{, 12:18}
seri0shka
Простите, влезу в тему со своим вопросм, чтоб не создавать новую. Есть возможность купить OLED 128 х 64 с I2C или с SPI (с другими заказами за компанию). Какой из этих интерфейсов проще и удобнее для программирования в ИДЕ и ФЛпрог?
Вывод текста на дисплеи OLED c интерфейсом I2C и контроллером SSD1306
Добавлено: 02.02.2019{, 13:56}
aidar_i
Мне хватает и нравится I2C.
Отправлено спустя 1 минуту 57 секунд:
1602. Лучше отпаяйте и поставьте разъем.
Отправлено спустя 1 час 52 минуты 8 секунд:
Подключил
СпойлерПоказать
СпойлерПоказать
Вывод текста на дисплеи OLED c интерфейсом I2C и контроллером SSD1306
Добавлено: 04.02.2019{, 20:33}
pipapsix
aidar_i,
запустил значит, все ок.
Больше двух строчек можно выводить??
Чет я в дебрях не разобрался))
Вывод текста на дисплеи OLED c интерфейсом I2C и контроллером SSD1306
Добавлено: 05.02.2019{, 00:29}
aidar_i
Да , работает, сегодня прикрутил кириллицу. Можно добавить строки, сколько влезет.
Может работать и с SPI.
Выложу позже, пока доделываю.
СпойлерПоказать
СпойлерПоказать
СпойлерПоказать
Вывод текста на дисплеи OLED c интерфейсом I2C и контроллером SSD1306
Если использовать вместе с ардуиной не советую этот дисплей использовать вообще. Уж очень много ОЗУ съедает не оставляя места для остального алгоритма проекта.
Попробуйте легкую библиотеку ASOLED. Я его приспособил и к ESP8266. Он выводит только текст.
Вывод текста на дисплеи OLED c интерфейсом I2C и контроллером SSD1306
Добавлено: 10.02.2019{, 08:45}
aidar_i
Автор пишет, это плата за "лёгкость". Почитайте его тему.
Вывод текста на дисплеи OLED c интерфейсом I2C и контроллером SSD1306
Добавлено: 09.05.2019{, 10:02}
Shurik2975
Здравствуйте. Может не совсем в ту тему но по той же тематике. Подскажите пожалуйста почему вот этот блок Автора программы SSD1306 print не отображает кириллицу, хотя автор пишет что он с кириллицей дружит?
Уже не актуально, кириллица появилась.
Админ можете удалить сообщение.