Подключение 7-дюймового экрана с тачскрином (Waveshare) к Arduino
Появилась у меня задача сделать один проект с экраном 7 дюймов с тачскрином. До этого я работал только со стандартными экранчиками под ардуинку не более 4.5 дюймов, которых много есть различных моделей в магазинах. А вот с экранами побольше выбора почти нет, да и информации мало. После долгих изучений я нашел 3 варианта:
1) делать проект на Raspberry, но выйдет намного дороже по комплектующим
2) использовать дисплей Nextion, но он тоже не дешевый и я хочу сделать проект на ESP32 с возможностью удаленной прошивки контроллера по воздуху, а с Nextion такое, как я понял, не получится.
3) с использованием контроллера RA8875
Первые два варианта я оставил как запасные, если не удастся с третим. По поводу RA8875 - есть отдельно готовый модуль от Adafruit https://www.adafruit.com/product/1590, но стоит он тоже многовато, а с учетом того, что нужно еще и экран покупать, то выйдет дороговато. А есть уже готовые модули с этим контроллером и экраном с тачскрином (резистивным или емкостным). Я остановился на таком варианте https://www.waveshare.com/7inch-capacitive-touch-lcd-c.htm
И вот приехал мне этот дисплей с алишки за 47$ как раз перед Новым годом. Сразу же запаял штырьки в правый нижний блок (2х7), так как подключать я его собирался по SPI, а слева выводы под паралельный интерфейс. Библиотеку взял https://github.com/adafruit/Adafruit_RA8875 Но сразу ничего не получилось. Пришлось изучать даташити на этот контроллер и искать информацию в интернете. И вот я наткнулся на одну статью (https://github.com/sumotoy/RA8875/wiki/Various-RA8875-based-...), где написано, что на этом дисплее не выведен SPI и подключить его не получится. Я уже расстроился и подумал, что придется пилить на Raspberry, но продолжил изучать даташиты. Сравнив схемы этого модуля и модуля Adafruit я увидел, что все сходится и SPI там выведен. Но тут выведены еще контакты PS, SIFS0,1, I2CA0,1. Изначально я их не подключил, но в даташите написано, что есть несколько режимов работы контроллера RA8875 - паралельный интерфейс, SPI 3-wire, SPI 4-wire, I2C. И в зависимости от того, какой режим используется надо эти контакты завести на VCC или GND.
И так в случае SPI 4-wire схема подключения такая:
PS - VCC
SIFS0 - GND
SIFS1 - VCC
IICA0 - GND
IICA1 - GND
SDO - MISO
SDI - MOSI
SCL - SCL
CS - любой цифровой выход
LCD_RST - любой цифровой выход
RS_INT - любой цифровой вход
После такого подключения экран заработал:
Сразу хочу уточнить, что ESP32 работает на 3.3В, но если вы захотите подключить экран к Arduino , которая работает на 5В, то нужно согласование уровней, а то можете спалить дисплей (http://we.easyelectronics.ru/Shematech/soglasovanie-logiches...)
После этого начал разбираться с тачскрином. В этой же библиотеке Adafruit_RA8875 есть возможность работы с тачскрином, а на контроллер RA8875 должны быть заведены контакты тачскрина Y+, Y-, X+, X- Но это сработает только в случае резистивного тача. А у меня модуль с емкостным и контакты его заведены на контроллер GT811. И тут опять возникла проблема: нет ни одной библиотеки для подключения этого контроллера к ардуино. Подключается он по I2C - 4 нижних контакта на этой же колодке (2х7):
SDA - I2C_SDA
SCL - I2C_SCL
СT_RST - любой цифровой выход
CT_INT - любой цифровой вход
Пришлось опять читать даташиты и искать в интернете информацию. Была найдена библиотека на GT811 для контроллера GD32 - аналог STM32 (https://github.com/pysco68/waveshare-hid/blob/master/src/gt8...) Детально ее изучив, переписал на простую библиотеку под ардуино https://github.com/levkovigor/GT811
На данном тачскрине можно отслеживать до 5 одновременных касаний.
Теперь остается только откалибровать координаты тачскрина относительно координат экрана и можно пилить проект.
Как доделаешь, сними видео, как работает.
Одно не могу понять, почему 7" готовый планшет, где уже есть - IPS экран с тачем 1024х800, флешка на 4гига, аккумулятор, проц на 4 ядра 1.7ггц стоит в рознице ТУТ!!!! 2.2тыс, а гребаный экран отдельно стоит 3.4тыс без доставки.
Я этот дисплей с Arduino Due использую, подключил параллельным интерфейсом. Очень порадовала возможность RA8875 загружать графику из SPI FLASH через DMA напрямую, минуя ардуину. По скорости обновления экрана очень даже неплохо.
Есть видео работы, надо?