Подключение 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

Подключение 7-дюймового экрана с тачскрином (Waveshare) к Arduino Arduino, Esp32, Tft, Тачскрин, Gt811, Тег, Длиннопост

И вот приехал мне этот дисплей с алишки за 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 - любой цифровой вход


После такого подключения экран заработал:

Подключение 7-дюймового экрана с тачскрином (Waveshare) к Arduino Arduino, Esp32, Tft, Тачскрин, Gt811, Тег, Длиннопост

Сразу хочу уточнить, что 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 одновременных касаний.


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

Arduino & Pi

1.4K постов20.6K подписчиков

Добавить пост

Правила сообщества

В нашем сообществе запрещается:

• Добавлять посты не относящиеся к тематике сообщества, либо не несущие какой-либо полезной нагрузки (флуд)

• Задавать очевидные вопросы в виде постов, не воспользовавшись перед этим поиском

• Выкладывать код прямо в посте - используйте для этого сервисы ideone.com, gist.github.com или схожие ресурсы (pastebin запрещен)

• Рассуждать на темы политики

• Нарушать установленные правила Пикабу

19
Автор поста оценил этот комментарий
Нихера не понял, но зачем-то дочитал до конца ))
4
Автор поста оценил этот комментарий

Как доделаешь, сними видео, как работает.

раскрыть ветку
3
Автор поста оценил этот комментарий

Одно не могу понять, почему 7" готовый планшет, где уже есть - IPS экран с тачем 1024х800, флешка на 4гига, аккумулятор, проц на 4 ядра 1.7ггц стоит в рознице ТУТ!!!! 2.2тыс, а гребаный экран отдельно стоит 3.4тыс без доставки.

раскрыть ветку
6
Автор поста оценил этот комментарий
ТС, за цЫфру руки тебе оторвать!
раскрыть ветку
1
Автор поста оценил этот комментарий

Я этот дисплей с Arduino Due использую, подключил параллельным интерфейсом. Очень порадовала возможность RA8875 загружать графику из SPI FLASH через DMA напрямую, минуя ардуину. По скорости обновления экрана очень даже неплохо.

Есть видео работы, надо?

раскрыть ветку