Круглый LCD дисплейчик на i2c (нет) - как он работает из коробки

Пост опубликован в блогах iXBT.com, его автор не имеет отношения к редакции iXBT.com

Такой может потребоваться, чтобы отображать шкалу прибора или для необычной поделки.


«Из коробки» — это не метафора, поставляется дисплейчик действительно в пластиковой коробочке.

Изготовлен дисплейчик аккуратно.

На обороте шелкография с описанием девайса:

TFT 1,28 дюйма

Разрешение: 240x240


Контроллер: GC9A01

Далее две надпись на китайском, но я перевел гуглем:

«Подтягивающий резистор R8 CS»

«Этот модуль не требует подключения к CS, RST»

Далее расписаны контакты гребенки.

На самом деле, купился я на низкую цену и удобный интерфейс i2c для подключения к контроллеру. Для такого подключения хватает всего четырех проводов. Да еще по этой же i2c шине, шлейфом, можно подключать к контроллеру многие другие устройства. Это очень удобно, упрощает разводку платы, а если вы предпочитаете навесной монтаж, не приводит к «бороде» проводов.


Но при ближайшем рассмотрении на гребенке дисплейчика кроме стандартных для I2C выводов SCL и SDA, обнаружились выводы DC и CS. Все это признаки наличия шины SPI. DC в этом случае — сигнал Data/Command, а CS — Chip Select. Чем же на самом деле соединяется дисплейчик с контроллером?

SPI. Это конечно более хлопотно, чем I2С, но зато интерфейс более скоростной, а значит и картинка будет шустрее.

Но тогда возникает «квантовая запутанность» с контактами: для шины SPI нужно как минимум определиться, где MOSI (master out slave in) — линия передачи от контроллера к дисплею и SCLK (serial clock) — тактовый сигнал.

К счастью, не очень много вариантов, так что нашлось все быстро: контакт, который обозначен SDA — это на самом деле MOSI, а SCL — это SCLK.

Для проверки дисплея берем контроллер ESP32. Для работы можно воспользоваться библиотекой TFT_eSPI. Для этого в Aduino IDE выбрать меню Tools -> manage Libraries, потом в строчке поиска ввести «TFT_eSPI», а в появившемся списке найти TFT_eSPI by Bodmer и нажать install.

Понадобится еще библиотека декодирования jpeg. Все то же самое, но с «TJpg_Decoder».

Последний шаг — находим в папке с библиотеками папку TFT_eSPI и в ней редактируем файл User_Setup.h

Нужно в разделе

// Only define one driver, the other ones must be commented out

закомментировать двумя слешами тот драйвер, который был раскомментирован и раскомментировать строчку

#define GC9A01_DRIVER

Осталось совсем чуть-чуть: В разделе

// ###### EDIT THE PIN NUMBERS IN THE LINES FOLLOWING TO SUIT YOUR ESP32 SETUP ######

Отредактировать список контактов для присоединения:

#define TFT_MOSI 23#define TFT_SCLK 18#define TFT_CS 22 // Chip select control pin#define TFT_DC 16 // Data Command control pin#define TFT_RST 4 // Reset pin (could connect to RST pin)

Сохраняем и подключаем провода в соответствии с этим списком.

А дальше ищем в меню примеров TFT_eSPI -> sprite -> animated dial, загружаем в ESP32 и получаем вот такой классный циферблатик:

Видео:

Что можно сказать в итоге? Дисплейчик годный, работает шустро, необычная форма привлекает внимание и практически безальтернативна для некоторого типа поделок. Яркость хорошая. Углы обзора превосходны. Софт весь готовый есть. Цена низкая. А что еще надо?

Ссылка на дисплейчик

Читайте также

Новости

Публикации