Круглый LCD дисплейчик на i2c (нет) — как он работает из коробки
Такой может потребоваться, чтобы отображать шкалу прибора или для необычной поделки.
«Из коробки» — это не метафора, поставляется дисплейчик действительно в пластиковой коробочке.
Изготовлен дисплейчик аккуратно.
На обороте шелкография с описанием девайса:
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 и получаем вот такой классный циферблатик:
Видео:
Что можно сказать в итоге? Дисплейчик годный, работает шустро, необычная форма привлекает внимание и практически безальтернативна для некоторого типа поделок. Яркость хорошая. Углы обзора превосходны. Софт весь готовый есть. Цена низкая. А что еще надо?










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