Найти тему

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

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

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

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

-2

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

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

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

-3

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

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

-4

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

-5

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

-6

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

-7

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

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

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

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