Укрощение маленького экранчика

Купил дешёвый IPS-экранчик 1.44″ для того, чтобы выводить на нём значения CO2 у самодельного устройства управления вентиляцией. Экранчик оказался не совсем стандартным, и чтобы заставить его работать правильно, пришлось повозиться и применить волшебные костыли.


Этот экранчик стоит чуть больше двухсот рублей вместе с доставкой. У него разрешение 128×128 точек и последовательный интерфейс SPI. На пакетике написано «IC: ST7735S», но похоже это не правда — с драйвером для чипа ST7735S он не работает, а с драйвером для ST7735 работает, но кривовато: неправильно определяется размер и положение экрана.

Для начала я скачал с LCDWiki набор софта для этого экрана, подключил его, как там написано, и проверил — работает.

Но такие страшненькие крупные шрифты меня не устраивают, поэтому задача была заставить работать этот экран с библиотекой UTFT, позволяющей использовать свои шрифты любого размера.

Конкретно этого экрана в списке поддерживаемых библиотекой нет, но есть несколько других на ST7735 и ST7735S. Экранчик заработал при указании типа ST7735, но при его очистке снизу оставалось три строки мусора, а при выводе текста по центру всё смещалось влево и первый символ портился. Пришлось применять костыли: вместо очистки рисовать чёрный прямоугольник 160×130 точек (экран, напомню, 128×128), а текст выводить, жёстко указывая координаты (смещение 26 по оси X оказалось на самом деле первой точкой экрана).

Для того, чтобы выводить четыре максимально больших цифры, я сделал шрифт 32×60 точек.

Шрифт для этой библиотеки делается достаточно просто: создаётся вот такая картинка, на которой каждая цифра занимает ровно одну десятую ширины и обрабатывается онлайн-инструментом на сайте автора библиотеки, в результате получается файл шрифта с расширением .c, который нужно положить в папку с библиотекой.

Цифры на экране получаются большие и красивые (в жизни они гораздо ровнее, чем на фото). Высота цифр 11 мм, ширина всех четырёх цифр 26 мм.

Вот весь скетч, выводящий на экран четыре цифры.

Пока датчик CO2 не пришёл, я ради эксперимента подключил к Arduino цифровой термодатчик DS1820 и сделал простейший термометр. Специально для него за пару минут создал огромный шрифт с размером символа 64×120 точек, на экран помещаются два таких символа.

Скетч термометра. Главное, не пытаться измерять им отрицательные температуры (символ «минус» отсутствует в шрифте и на экран не влезет) 🙂

Я подключил экранчик к Arduino Uno R3 просто потому, что она «попалась под руку». С тем же успехом этот экран можно подключить к Arduino Nano или любой другой плате.

На всякий случай я сохранил скетчи, все библиотеки, шрифты и схемы подключения в одном архиве.

© 2020, Алексей Надёжин


Десять лет я каждый день пишу о технике, скидках, интересных местах и событиях. Читайте мой блог на сайте ammo1.ru, в ЖЖ, Дзен, МирТесен.
Мои проекты:
Lamptest.ru. Тестирую светодиодные лампы и помогаю разобраться, какие из них хорошие, а какие не очень.
Elerus.ru. Собираю информацию об отечественных электронных устройствах для личного использования и делюсь ей.
Вы можете связаться со мной в Телеграм @ammo1 и по почте ammo1@mail.ru.

Этот пост в моём блоге LiveJournal: Укрощение маленького экранчика

Добавить комментарий