Arduino + графічний 2.8″ дисплей із сенсорним екраном (TFT LCD Touch screen)

В даній статті розглянемо роботу Arduino з кольоровим сенсорним дисплеєм.

lcd_tft_1lcd_tft_2

Підключається дуже просто, по шілдовій системі (тобто всі виводи дисплея підтасовано під порти Arduino).

lcd_tft_3
В ідеалі проблем із дисплеєм виникнути не повинно було, але всі титоріали з Adafruit.com і бібліотеки з github.com спочатку не принесли позитивного результату. Можливо, мені до рук потрапила якась екзотична модель, а може в силу кривизни тих же рук, скетчі компілювалися, заливалися на Arduino, але дисплей не оживав 🙁

Все запрацювало із модифікованою бібліотекою Adafruit-TFTLCD, яку знайшов тут

Хоча й там довелося пошаманити, але про це пізніше.

Отже ми підключили дисплей до Arduino, розжилися на бібліотеки SWTFT-Shield, Touch-Screen-Library та Adafruit-GFX-Library.
Тепер завантажимо файл graphicstest.pde із папки example бібліотеки SWTFT-Shield на Arduino. Має вийти щось таке:

Гаразд, це все добре, але хотілось би погратися із сенсорним екраном. Для цього завантажимо із тої ж таки SWTFT-Shield файл tftpaint.ino. Тепер можна малювати по дисплею різними кольорами. Все ніби супер і мало би гарно працювати, але не в мене. В мене координати дотику до сенсорного екрану зчитувались і чомусь інвертувались. Тобто, коли я рисував лінію у нижній частині дисплея, вона з’являлась у верхній. Але після нехитрих маніпуляцій з кодом (помінявши місцями значення TS_MINX і TS_MAXX, TS_MINY і TS_MAXY, а також стрічку if (p.y > (TS_MINY-5)) на if (p.y < (TS_MINY-5)) ), все запрацювало правильно ;Р

Тобто так:

Важливо! При роботі можуть виникнути конфлікти з бібліотекою Robot_Control, тому на час роботи з дисплеєм її краще прибрати з папки Arduino/libraries.

До речі, в даного шілда також є роз'єм для micro SD карти пам'яті і зображення можна завантажувати прямо з неї, але про це якось іншим разом ;)



Оставить ответ

Обязательные поля помечены*

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.