OLED-экранчики на базе SSD1306 / SSD1309 / SH1106 пользуются большой популярностью как в DIY сообществе, так и индустрии, благодаря своей яркости, широкому углу обзора и небольшой цене. Но при этом они способны выводить только бинарное изображение . В качестве альтернативы, лишенной этого досадного недостатка, можно предложить экранчики на базе контроллера SSD1351. По большому счету, они полостью аналогичны экранчикам на базе SSD1306, но выводят изображение в 16-и битном цвете.

Дисплеи на базе SSD1351 часто продаются в виде модулей с SPI-подобным интерфейсом, диагональю 1.5″ и разрешением 128 x 128 пикселей. Распиновка модулей совместима с распиновкой аналогичных модулей на базе SSD1306. Цена устройства составляет около 12$, что сопоставимо с ценой дисплеев на базе SSD1306 с такой же диагональю. Еще я видел варианты дисплеев 1.27″ 128 x 96 и 0.95″ 96 x 64. Однако почему-то цена таких урезанных модулей выше, чем цена полноразмерного модуля. Поэтому я не думаю, что когда-нибудь стану использовать их в своих проектах. Купить экранчики можно на eBay. Также они доступны в магазине Adafruit, но там они стоят заметно дороже.

Если вы используете Arduino, советую обратить внимание на библиотеку Adafruit SSD1351 . Данная библиотека просто работает, поэтому не будем на ней подробно останавливаться. Я же в последнее время предпочитаю микроконтроллеры STM32. Беглое гугление не выявило готовой библиотеки под это семейство МК, поэтому пришлось написать свою.

Оказалось, что SSD1351 использует протокол, крайне похожий на протокол SSD1306, ST7735 и ILI9341 , только коды команд немного другие, и отличается последовательность команд, необходимая для инициализации устройства. Поскольку ранее я уже писал библиотеки для всех этих экранчиков, а также имел перед глазами код Adafruit SSD1351, написать и отладить еще одну библиотеку заняло от силы два часа. Она имеет интерфейс, аналогичный интерфейсу предыдущих библиотек, и тоже основана на HAL:

void SSD1351_Init ( void ) ;
void SSD1351_DrawPixel ( uint16_t x , uint16_t y , uint16_t color ) ;
void SSD1351_WriteString ( uint16_t x , uint16_t y , const char * str ,
FontDef font , uint16_t color , uint16_t bgcolor ) ;
void SSD1351_FillRectangle ( uint16_t x , uint16_t y ,
uint16_t w , uint16_t h , uint16_t color ) ;
void SSD1351_FillScreen ( uint16_t color ) ;
void SSD1351_DrawImage ( uint16_t x , uint16_t y ,
uint16_t w , uint16_t h , const uint16_t * data ) ;
void SSD1351_InvertColors ( bool invert ) ;

Пример вывода текста:

Исходники библиотеки с примером ее использования вы найдете на GitHub .

Лично я нахожу OLED-экранчики на базе SSD1351 крайне приятными в использовании. И хотя TFT-экранчики на базе ST7735 предложат то же разрешение и количество цветов за существенно меньшие деньги (~4$), они конструктивно менее надежны, уязвимы к нажатиям и их крайне нежелательно отмывать в ультразвуковой ванне. Если вы не планируете серийное производство и хотите, чтобы ваше устройство надежно служило в течение многих лет, при прочих равных я бы отдал предпочтение SSD1351.

admin

Share
Published by
admin

Recent Posts

Что такое Zulip

Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…

2 месяца ago

Что такое Zookeeper

Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…

2 месяца ago

Что такое Zimbra

Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…

2 месяца ago

Что такое Zabbix

Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…

2 месяца ago

Что такое YouTube

YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…

2 месяца ago

Что такое yota

Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…

2 месяца ago