9zip.ru Радиодетали и модули с Aliexpress  OLED дисплеи 128*64 и 128*32 Казалось бы, всем хороши ставшие стандартными символьные ЖК-дисплеи 16*2 и подобные. И подключаются легко, и программируются. Но иногда требуется альтернатива. Например, если делается какое-то очень компактное устройство, то обычный символьный дисплей в него может попросту не поместиться при его-то габаритах. Остаётся применить только какой-нибудь дисплей от кнопочного мобильного телефона или посмотреть, а что же есть на Aliexpress. Дисплеи от телефонов там тоже имеются, причём новоделы. Но есть и специальные, можно сказать, более удобные. Это - уже знакомые многим модули с OLED-дисплеями с разрешением 128*64 и 128*32 пикселей. Построены они с использованием контроллеров SSD1306. Данные модули - очень компактны, влезут в любой корпус. Да и в бескорпусном устройстве им будет легко найти место. Интерфейс взаимодействия с микроконтроллером - последовательный, i2c. Существуют модули с большим количеством пинов, с ними можно работать через SPI.  В отличие от символьных дисплеев, эти - чисто графические, т.е. никаких встроенных шрифтов тут нет. Это одновременно может являться как минусом, так и плюсом. С одной стороны, нужны процедуры для печати и сами шрифты, с другой - размер шрифта может быть любым, а это иногда весьма удобно. Глядя на некоторые фотографии этих модулей на Aliexpress, можно подумать, что дисплеи - цветные. Но нет, задавать цвет точек тут нельзя. Просто бывают такие разновидности этих экранов, у которых пиксели верхней четверти экрана имеют жёлтый цвет. Остальные же (или все, если экран - без этой жёлтой полоски) - голубые или белые. Ещё SSD1306 умеет изменять контрастность. ОЗУ контроллера разбито на 8 страниц по 128*8 бит (128 байт) в каждой. Программная часть библиотек очень простая и, в зависимости от потребностей, может быть очень небольшой по объёму кода. На плате модуля установлен стабилизатор на 3,3 вольта, поэтому питать можно от 5 вольт.  Модуль с дисплеем, имеющим разрешение 128x64, имеет диагональ 0,96" - это примерно 2,5*1,5 см. Некоторые фотографии создают обманчивое впечатление, что дисплей - достаточно большой. Нет, он - очень маленький, зато контрастность - изумительная, что достигается отсутствием подсветки. Пиксели светятся самостоятельно. Модуль с разрешением 128x32 имеет диагональ 0,91" с размерами около 2,5*1 см. Потребление - в районе 20 мА.  Прилагаются 4 исходника в BASCOM AVR: - для 128*64 и 128*32 с использованием библиотеки glcdSSD1306-I2C.lib, вывод графики и текста + 3 шрифта в комплекте
- Для 128*64 (по аналогии можно доработать и для 128*32) с библиотекой glcdSSD1306-I2C-Buf.lib, организующей буфер изображения в памяти МК. Выводить можно как напрямую на дисплей в реальном времени, так и в буфер, а затем мгновенно перекидывать на экран. Есть функции рисования фигур и изменения контрастности
- для 128*64 без библиотек, для вывода текста + изменение контрастности
ssd1306_128_32.zip ssd1306_128_64.zip ssd1306_128_64_buf.zip ssd1306_128_64_nolib.basА ещё есть полноцветные TFT дисплейчики с SPI.
 01 ноября 2020 Новая версия библиотеки: glcdSSD1306-I2C_V2.libДобавлена опция для поворота изображения на 180 градусов Const Ssd1306_rotate = 1 'поворот изображения [кабель дисплея внизу = 0, вверху = 1]В инструкцию "GLCDCMD" добавлен байт управления Нормальный/инверсный дисплей [A6:нормальный , A7:инверсный] Дисплей вкл/выкл [AE:выкл(спящий режим) , AF:вкл(дисплей включен)]Можно изменять контрастность _contrast = 0 : Glcdcmd &H81 'изменение контрастности дисплея [0:dark - 255:bright]В инструкцию "LCDAT" добавлена опция подчёркивания [2:линией , 3:точками]Исходник для тестирования новых возможностей библиотеки $regfile = "m88pdef.dat" $hwstack = 32 $swstack = 32 $framesize = 32 $crystal = 8000000 Config Clockdiv = 1 ' МК работает на частоте 8 МГц
Config Scl = Portc.5 ' используемые i2c выводы МК Config Sda = Portc.4 Config Twi = 400000 ' скорость i2c
I2cinit
$lib "i2c_twi.lbx" ' используем TWI вместо программно эмулируемого I2C $lib "glcdSSD1306-I2C_V2.lib" ' заменяем дефолтную библиотеку на glcdSSD1306-I2C_V2.lib
#if _build < 20784 Dim ___lcdrow As Byte , ___lcdcol As Byte ' для старых версий компилятора #endif
Dim _contrast As Byte ' значение контрастности дисплея [0-255] 'Const Ssd1306_rotate = 1 ' поворот экрана [кабель снизу = 0, кабель сверху = 1] Config Graphlcd = Custom , Cols = 128 , Rows = 64 , Lcdname = "SSD1306" Cls
Setfont Font8x8tt ' выбираем шрифт
Do Lcdat 1 , 1 , "BASCOM-AVR" Lcdat 2 , 10 , "1995-2015" Lcdat 3 , 5 , "MCS Electronics" , 1 ' Опционально инвертирование Lcdat 5 , 1 , " ABCDefg012345678 " , 2 ' Опционально подчёркивание чертой Lcdat 7 , 1 , " ABCDefg012345678 " , 3 ' Опционально подчёркивание точками Wait 3
Glcdcmd &HA7 ' Нормальный/инверсный дисплей [A7:инверсный] Wait 3 Glcdcmd &HA6 ' Нормальный/инверсный дисплей [A6:нормальный] Wait 3
_contrast = 0 : Glcdcmd &H81 ' Изменяем контрастность [0:тёмный - 255:светлый] Wait 3 _contrast = 255 : Glcdcmd &H81 ' Изменяем контрастность [0:тёмный - 255:светлый] Wait 3
Glcdcmd &HAE ' Вкл/выкл дисплей [AE:Выкл(спящий режим) , AF:Вкл(экран включен)] Wait 3 Glcdcmd &HAF ' Вкл/выкл дисплей [AE:Выкл(спящий режим) , AF:Вкл(экран включен)] Wait 3
Showpic 0 , 0 , Plt Wait 3 Cls Loop
End
$include "font8x8TT.font" ' true type шрифт с разной шириной символов
Plt: $bgf "ks108.bgf" ' подгружаем изображение glcdSSD1306-I2C_V2.zip
комментировать
25  нравится? 6  18.02.2018 © 9zip.ru Авторские права охраняет Роскомнадзор
 | Понравилась статья? Винни Пух говорит: поделись с друзьями! |
|
Хочешь почитать ещё про Aliexpress? Вот что наиболее популярно на этой неделе:
И вновь купоны на Aliexpress
Халява на Aliexpress: бесплатные радиодетали от китайцев на $4
Зарядное устройство Lii-100B
Есть вопросы, комментарии? Напиши:
 | iranian boy |  | 28 ноя 2022 1:25 |
thank you bro
 | LA |  | 09 сен 2022 17:09 |
В данном дисплее нет шрифтов, он графический. Все шрифты для вывода на экран текста несёт микроконтроллер.
 | Андрей Мельник |  | 08 сен 2022 18:32 |
Не понял! Так изночально шрифты в ssd1306 есть? Или меется в ввиду что шрифты есть в прошивке для attiny85?
 | LA |  | 08 сен 2022 13:18 |
Это графический дисплей. Шрифты хранятся в прошивке микроконтроллера.
 | Андрей Мельник |  | 08 сен 2022 9:06 |
Скажите пожалуйста дисплей 128×32 изначально не может отображать текст и цифровую информацию? Как можно установить библиотеки с шрифтами? Куда они должны загружаться в мк ssd1406 или мк attiny85?
 | Orkun |  | 06 июл 2020 16:29 |
Hello,
In the program I compiled with ssd1306-i2c-buf.lib, there is flickering on the screen and there is a distorted image in the last line on the screen.
When I try the test software with the ssd1306-i2c.lib library, there is no flickering or distortion on the last line on the screen.
I am waiting for your advice. Thank you.
Have a nice day.
ta1sor
Пользовательские теги: чип и дип индикатор ssd1306 128 64 бит bascom ssd1306 line [ Что это? ] Дальше в разделе радиодетали и модули с aliexpress: TP5000, зарядка для Li, LiFePO4 и NiZn, зарядное устройство для никель-цинковых батарей на основе простого модуля зарядки на tp5000 для литиевых и литий-железо-фосфатных аккумуляторов. |