Arduino UNO R3 + LCD 2.4 TFT

Good-Warrior
Good-Warrior аватар
Offline
Зарегистрирован: 31.01.2016

Спасибо. Очень полезные ссылки ;)

Pinochet
Pinochet аватар
Offline
Зарегистрирован: 19.12.2015

Good-Warrior пишет:

Спасибо большое. Буду изучать. А формума. Точнее страцы ни кто не создавал тут на форуме, для начинающих? Что бы ускорить процесс обучения.

Некоторые отдельные моменты здесь есть, но ведь тем очень много а энтузиастов маловато. 

Good-Warrior
Good-Warrior аватар
Offline
Зарегистрирован: 31.01.2016

Я кстати, на англоязычном сайте нашёл, что можно этот сенсорный монитор подключать к Мега. Без переделывания в нём не чего. Теперь мне только осталось понять как библиотеки загружаются и постич азы )))

Pinochet
Pinochet аватар
Offline
Зарегистрирован: 19.12.2015

Нашел отличный сборник библиотек на все случаи жизни. Здесь:

https://codebender.cc/libraries

Pinochet
Pinochet аватар
Offline
Зарегистрирован: 19.12.2015

Good-Warrior пишет:

Я кстати, на англоязычном сайте нашёл, что можно этот сенсорный монитор подключать к Мега. Без переделывания в нём не чего. Теперь мне только осталось понять как библиотеки загружаются и постич азы )))

В нём переделывать ничего не нужно, верно. Нужно только уметь перенаправить сигналы с одних пинов на другие. А поскольку я к примеру пока в этом вопросе новичок, не рискую даже пытаться. До тех пор пока не начну понимать.

Gres
Gres аватар
Offline
Зарегистрирован: 26.03.2013

Pinochet пишет:

В нём переделывать ничего не нужно, верно. Нужно только уметь перенаправить сигналы с одних пинов на другие. А поскольку я к примеру пока в этом вопросе новичок, не рискую даже пытаться. До тех пор пока не начну понимать.

Для этого нужно в одном из файлов библиотеки закоментировать одну строку и раскоментировать одну строку.

Есть уже и готовые библиотеки предназначеные именно для Меги и Уно, специально для тех, кто не в состоянии один знак переставить из одной строки в другую.

Вся эта информация многократно на этом форуме обсуждалась с примерами, форма поиска находится в правом, верхнем углу этой страницы.

Pinochet
Pinochet аватар
Offline
Зарегистрирован: 19.12.2015

Gres пишет:

Для этого нужно в одном из файлов библиотеки закоментировать одну строку и раскоментировать одну строку.

 

Пробовали? А я пробовал. Ничего подобного. - Это специально для самых умных пишу.

Sandr4 описывает вот в этой теме что именно комментировать подробно: http://arduino.ru/forum/obshchii/arduino-mega-2560-i-tft-24

Однако у меня это с таким же шилдом но чипом ILI9341 не сработало. И не только у меня. 

Gres
Gres аватар
Offline
Зарегистрирован: 26.03.2013

Pinochet пишет:

Gres пишет:

Для этого нужно в одном из файлов библиотеки закоментировать одну строку и раскоментировать одну строку.

 

Пробовали? А я пробовал. Ничего подобного. - Это специально для самых умных пишу.

Sandr4 описывает вот в этой теме что именно комментировать подробно: http://arduino.ru/forum/obshchii/arduino-mega-2560-i-tft-24

Однако у меня это с таким же шилдом но чипом ILI9341 не сработало. И не только у меня. 

Специально для ТЕХ КТО РОДИЛСЯ НА БРОНЕПОЕЗДЕ!!!

А вот тут конкретно по теме если даже с поиском у Вас проблеммы.

slider
Offline
Зарегистрирован: 17.06.2014

?  (//Так ведь добивали.....сь. Плохо добивали....сь ) в чем конкретно вопрос ?  

раз у вас заработало на UNO , на найденной либе, вот её и копайте, в ней вносите изменения (коментите/раскоментите в ней) . Бездумное взятие других либ, может не помочь, ибо у адафруита есть либы для ILI9341 SPI и они не такие как ILI9341 8бит . И UTFT тож зараьотает, в соседней ветке приводили правленную либу для адафруитского шилда ili9327 воткнутого в мегу. в основном останется только инит сменить и выбор с spi на 8бит.

svchekalin
Offline
Зарегистрирован: 29.01.2016

я бы добавил https://it4it.club/forum/16-arduino/ очень отзывчивый люд ! мне один перс вобще код писал и объяснял тупо разжовывал и в рот ложил а мне братцы 41 уже

arduinec
Offline
Зарегистрирован: 01.09.2015

Pinochet пишет:

Good-Warrior пишет:

Извините, возможно не в тему. Но вот какой вопрос. Только начал осваивать Ардуино. Взял Мега 2560, проверил, баботает. Ещё пришёл дисплей ТФТ 2.4". При покупки было написано что совместим с УНО, но возможно и к Мега 2560. Вобщем подключил и светит только белый экран. Поблуждал по инету и видел, как на видео выкладывали подключение Меги и такого дисплея как у меня (и в шапке этого поста). Всё работало. Подскажите  мне по-этапно как протестить его. Что-бы удостовериться, что работает исправно.

Ваш дисплейчик такой же как на картинке в первом посте темы? Если да, то он для UNO. Чтобы запустить на Mega, вам нужно пробрасывать пины дисплея с LD_D0 по LD_D7 на 22-29 пины Mega двухрядной гребёнки.

У меня похожий шилд работает и на Uno и на Mega. Для Меги нужно пробрасывать лишь пины для SD-карты, так как SPI на Uno и Mega разведён на разные ноги.

Русифицированный набор библиотек для моего шилда можно взять здесь:
http://arduino.ru/forum/programmirovanie/rusifikatsiya-biblioteki-adafru...

arduinec
Offline
Зарегистрирован: 01.09.2015

Good-Warrior пишет:

Подскажите тему где можно с самого начала познать все азы. Как загружать библиотеки... Короче вобще всё с самого нуля. За ссылочку буду очень благодарен

Бесплатные книги:

Гололобов В.Н. О проекте Arduino для школьников (и не только) 2011
http://vgololobov.narod.ru/content/arduino/intro.html

Руководство по освоению Arduino 2012
http://robot-kit.ru/manual/Arduino_Sketch_Robot-kit.ru.pdf

 

Good-Warrior пишет:

Может, есть другой форум, где открыто общаются все? Новички и Бывалые совместно.

Увы, на данном форуме с новичкам не няньчатся - подразумевается, что начальные знания по Ардуино новичок уже нашёл в Интернете (или хотя бы на сайте arduino.ru). Но на правильно поставленные вопросы новичкам даются разумные ответы. Отрицательно воспринимаются вопросы типа "напишите мне код", если этот вопрос не в теме "Ищу исполнителя".

 

Гриша
Offline
Зарегистрирован: 27.04.2014

arduinec пишет:

Бесплатные книги:

Гололобов В.Н. О проекте Arduino для школьников (и не только) 2011
http://vgololobov.narod.ru/content/arduino/intro.html

Руководство по освоению Arduino 2012
http://robot-kit.ru/manual/Arduino_Sketch_Robot-kit.ru.pdf

тут был топик, по этому вопросу, как автор, добавьте ваши ссылки в него. если не трудно.

--------------------------

arduinec пишет:

Good-Warrior пишет:

Может, есть другой форум, где открыто общаются все? Новички и Бывалые совместно.

Увы, на данном форуме с новичкам не няньчатся - подразумевается, что начальные знания по Ардуино новичок уже нашёл в Интернете (или хотя бы на сайте arduino.ru). Но на правильно поставленные вопросы новичкам даются разумные ответы. Отрицательно воспринимаются вопросы типа "напишите мне код", если этот вопрос не в теме "Ищу исполнителя".

здесь другой форум и другие люди и специфика другая - полная аналогия сути.

romster
Offline
Зарегистрирован: 15.04.2013

привет всем, есть шилд ST7789V + тачскрин + sd картридер

экран отлично тестирует графику, но не идин скетч тачскрин-тест не работает и вообще не понятно, какие пины выведены на тачскрин с шилда. Вопрос, как юзать тачскрин ?

З.Ы. только у моего маркировка LCD Shield(st7789v) www.mcufriend.сом

flat
Offline
Зарегистрирован: 05.02.2015

romster пишет:

привет всем, есть шилд ST7789V + тачскрин + sd картридер

экран отлично тестирует графику, но не идин скетч тачскрин-тест не работает и вообще не понятно, какие пины выведены на тачскрин с шилда. Вопрос, как юзать тачскрин ?

З.Ы. только у моего маркировка LCD Shield(st7789v) www.mcufriend.сом

 

На этом чипе собаку сьел.  Все работает. Так как лички нету ... ссылку дам тут (если запрещено пусть модер удалит)  http://eseal.ru/index.php/stati/arduino/spravochnye-dannye/moduli-dlya-arduino/38-2-4-tft-lcd-displej

Статья по этому экрану( правленая под себя чужая статья) что то не понятно будет пишите отвечу... 

конкретно у меня была проблемма что были перепутаны пины тача на шилде.

svchekalin
Offline
Зарегистрирован: 29.01.2016

рабочая библеотека тут https://it4it.club/topic/29-24-tft-touch-screen/

Buzzer2010
Buzzer2010 аватар
Offline
Зарегистрирован: 10.03.2016

svchekalin пишет:

рабочая библеотека тут https://it4it.club/topic/29-24-tft-touch-screen/

Страничка зачотная, спасибо. У меня всё засветилось и забегало...

Однако же меня интересует вот что: по дефолту (или мне так кажется), дисплей ориентирован как портрет. А как его перевернуть на 90 градусов в Landscape?

flat
Offline
Зарегистрирован: 05.02.2015

tft.setRotation(tft.getRotation()+1); // разворот экрана на 90 градусов

сам не менял ... но если на этой же библиотеке то так ) 

по ссылке выше основные команды этой бибилиотеки...

svchekalin
Offline
Зарегистрирован: 29.01.2016

Ну дык там и спросил бы там модер чутьли не за тебя сам програмит )) ну понятно что это пока людей мало

Buzzer2010
Buzzer2010 аватар
Offline
Зарегистрирован: 10.03.2016

flat пишет:

tft.setRotation(tft.getRotation()+1); // разворот экрана на 90 градусов

сам не менял ... но если на этой же библиотеке то так ) 

по ссылке выше основные команды этой бибилиотеки...

Так, спасибо, сейчас попробую...

О! Дело пошло!!! Спасибо!

А вот еще вопрос - где можно почитать о доступных коммандах этих библиотек? Что-то я не нахожу там внутри даже "KEYWORDS.txt"

#include <Adafruit_GFX.h>   
#include <Adafruit_TFTLCD.h> 
#include <SD.h>

 

flat
Offline
Зарегистрирован: 05.02.2015

#include <Adafruit_GFX.h>  

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

Buzzer2010
Buzzer2010 аватар
Offline
Зарегистрирован: 10.03.2016

flat пишет:

#include <Adafruit_GFX.h>  

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

Та блин, картинки читать - занимает больше 80% памяти только сама процедура вывода. Что-то я уже и не хочу картинки на экран выводить. Поигрался, получилось - и ладно.

flat
Offline
Зарегистрирован: 05.02.2015

дану ) картинку с флешки прочитать ? ) 

flat
Offline
Зарегистрирован: 05.02.2015
void knopki() { //функция чтения с карты и вывода на экран
  for (tem1 = 0; tem1 <= 53; tem1++)
  {
    B = myFile.read();
  }
  for (tem1 = 0; tem1 <= 11; tem1++)
  {
    B = myFile.read();
  }
  for (Y1 = 60; Y1 > 0; Y1--)
  {
    for (X1 = 60; X1 > 0; X1--)
    {
      B = myFile.read();
      G = myFile.read();
      tft.drawPixel(60 - X1 + X, Y1 + Y - 1, G * 256 + B);
    }
  }
  myFile.close();
}

 

вызов функции 

SD.begin(SD_CS); // включаем картриер
  X = 260;
  Y = 180;
  myFile = SD.open("nastr.bmp", FILE_READ); //рисуем кнопку настройки
  knopki();

читает картинку в 16 битном цвете (не путать с 16 цветами) с карты и выводин на экран в координаты ... 

на адафруте можно сделать и 24 цвета... но у мну экран сним не робит ... 

первые 2 цикла пропускают данные о картинке... они почти всегда одинаковые( оттуда например мона почрпнуть размер картинки и использовать в последних циклах, но мне это не надо)...  гугл структура BMP файла

выводятся 8 картинок 60х60 секунд за 5 ... но тока при в ключении ... а дальше экран не чищу а стираю квадрат заливая его цветом фона 

Buzzer2010
Buzzer2010 аватар
Offline
Зарегистрирован: 10.03.2016

flat пишет:

void knopki() { //функция чтения с карты и вывода на экран
  for (tem1 = 0; tem1 <= 53; tem1++)
  {
    B = myFile.read();
  }
  for (tem1 = 0; tem1 <= 11; tem1++)
  {
    B = myFile.read();
  }
  for (Y1 = 60; Y1 > 0; Y1--)
  {
    for (X1 = 60; X1 > 0; X1--)
    {
      B = myFile.read();
      G = myFile.read();
      tft.drawPixel(60 - X1 + X, Y1 + Y - 1, G * 256 + B);
    }
  }
  myFile.close();
}

 

вызов функции 

SD.begin(SD_CS); // включаем картриер
  X = 260;
  Y = 180;
  myFile = SD.open("nastr.bmp", FILE_READ); //рисуем кнопку настройки
  knopki();

читает картинку в 16 битном цвете (не путать с 16 цветами) с карты и выводин на экран в координаты ... 

на адафруте можно сделать и 24 цвета... но у мну экран сним не робит ... 

первые 2 цикла пропускают данные о картинке... они почти всегда одинаковые( оттуда например мона почрпнуть размер картинки и использовать в последних циклах, но мне это не надо)...  гугл структура BMP файла

выводятся 8 картинок 60х60 секунд за 5 ... но тока при в ключении ... а дальше экран не чищу а стираю квадрат заливая его цветом фона 

Какая-то маленькая функция получилась..... Ану пробану ..

Так, а с библиотеками там как вообще? У меня именно АДАФРУТ только и работает кое-как, и то если ему внаглую вбить 0x9341. Сам он этого не делает...

И кстати - я забыл уже как делать 16-ти битный .BMP )))) А то адафрут 320х240х24b вырисовывает аж за больше чем 3 секунды!

flat
Offline
Зарегистрирован: 05.02.2015

смотря для чего картинка ... я вывожу меню по бокам и не стираю его ... мне время не критично ... в адафруте надо копаться там свои команды есть ... что то типа drawbitmap..... 

16 битку делал в онлйн конвертере какомто ... 

tokima
Offline
Зарегистрирован: 29.08.2015

Здравствуйте, для своих поделок, по неопытности (ардуино) прикупил в Китае несколько Уно с экранами 2.4 - 2.8 ". Курением и бубном все запустил, по разному но общее это "Adafruit_GFX.h" Вот тестовый скетч:

#include <Adafruit_GFX.h> // Libreria de graficos
#include <Adafruit_TFTLCD.h> // Libreria de LCD
 
// Pines de conexion del LCD
#define LCD_CS A3  // Chip Select - Pin analogico 3
#define LCD_CD A2 // Command/Data - Pin Analogico 2
#define LCD_WR A1 // LCD Write - Pin Analogico 1
#define LCD_RD A0 // LCD Read - Pin Analogico 0
#define LCD_RESET A4 // LCD Reset - Pin Analogico 4


 #define WHITE   0x0000
#define YELLOW    0x001F
#define CYAN     0xF800
#define MAGENTA  0x07E0
#define RED    0x07FF
#define GREEN 0xF81F
#define BLUE  0xFFE0
#define BLACK   0xFFFF
// Instancia del LCD
Adafruit_TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);

void setup(void)
{
  
  tft.begin(0x9341); // Especificamos el controlador de nuestro LCD.
//                        En este caso el ILI9341.
// Otros controladores: 0x9325, 0x9328,0x7575, 0x9341, 0x8357.
 
 tft.fillScreen(BLACK);

 tft.setRotation(1); 
tft.setCursor(10, 10); 
tft.setTextSize(3);
tft.setTextColor(CYAN); 
tft.println("VOLTAGE   CURRENT");

tft.setCursor(10, 120); 
tft.setTextSize(3); 
tft.setTextColor(CYAN); 
tft.println("CONSTANT CURRENT");


}


void loop()
{
  tft.setCursor(10, 60); 
tft.setTextSize(3);
tft.setTextColor(YELLOW, BLACK);

float X = analogRead(A5); 
float Y = analogRead(A5); 

tft.print(X, 2);  
tft.print("   ");
tft.println(Y, 2);

tft.setCursor(10, 180);
tft.setTextSize(3);
tft.setTextColor(YELLOW, BLACK);

float Z = analogRead(A5);
tft.print(Z, 2);

delay(300);
}

Как видно свободен только  А5 аналоговый вход, мне хотелось бы освободить еще два аналога для своего проекта. Возможно ли это? Не используя функции SD карты освободить цифровые каналы и перенаправить аналоги на цифру? И если возможно, то в каких файлах библиотек это надо поправить?

Спасибо!

slider
Offline
Зарегистрирован: 17.06.2014

tokima пишет:

Здравствуйте, для своих поделок, по неопытности (ардуино) прикупил в Китае несколько Уно

....

Как видно свободен только  А5 аналоговый вход, мне хотелось бы освободить еще два аналога для своего проекта. Возможно ли это? Не используя функции SD карты освободить цифровые каналы и перенаправить аналоги на цифру? И если возможно, то в каких файлах библиотек это надо поправить?

Спасибо!

неполностью изрекли .  A6 A7 разве уже использовали? (по крайней мере на Али брал 2 вида плат UNO , с разведенными этими пинами по разному. Если atmega328p в планарном корпусе, и эти пины не выведены на гребенку разъемов, то можно самому подпаяться прочитав даташит на атмегу328.

Если SD не используется, то управляющие пины (cd rd wr reset cs) можно на них перепаять иль проводами перекоммутировать, за исключением 2х пинов параллельных тачскрину если вы будете его использовать.  в скетче переписать на какие пины вы их перевесили 

// Pines de conexion del LCD
#define LCD_CS A3  // Chip Select - Pin analogico 3
#define LCD_CD A2 // Command/Data - Pin Analogico 2
#define LCD_WR A1 // LCD Write - Pin Analogico 1
#define LCD_RD A0 // LCD Read - Pin Analogico 0
#define LCD_RESET A4 // LCD Reset - Pin Analogico 4

// вообще для вывода изображения на эти дисплеи с 8ми битной шиной - хватает 8пинов шины данных DB0-DB7 и 2пина управления CD и WR ) . Итого всего-то 10 пинов! остальные пины вырезать из библиотеки, на RD подать + , на CS подать -(gnd) , RESET соеденить с RESET пином ардуино.  В скетче принудительно включить ваш тип контроллера.

tokima
Offline
Зарегистрирован: 29.08.2015

slider пишет:

 

неполностью изрекли .  A6 A7 разве уже использовали? (по крайней мере на Али брал 2 вида плат UNO , с разведенными этими пинами по разному. Если atmega328p в планарном корпусе, и эти пины не выведены на гребенку разъемов, то можно самому подпаяться прочитав даташит на атмегу328.

 

Тоесть я могу без  танцев подпаятся на 22 (ADC7) и 19 (ADC6) ноги и использовать их как дополнительные аналоговые входа, без всяких правок? Это было бы просто замечательно. Мне три аналога хватит за глаза.

Спасибо большое за ликбез.

flat
Offline
Зарегистрирован: 05.02.2015

ардуинка у вас какая ? ... 

в инете есть пара статей как вход резет на экране освободить ... 1 аналоговый получите... 

там библиотеку править надо ... если у вас библиотека стандартная adafruit то возможно ... а я просто купил мегу... еще 8 портов аналогвы свободно ... 

serega94778
Offline
Зарегистрирован: 13.06.2016

У меня есть скетч для определения и библиотеки для этого экрана. Если ещё актуально, подскажите как их сюда скинуть. А то чего то не пойму. Путаюсь я в этом форуме.

Good-Warrior
Good-Warrior аватар
Offline
Зарегистрирован: 31.01.2016

А на Мегу пойдёт? А то от UNO не работает у меня, хотя говорят, что поддерживает. Надо только что-то изменить в программах...

serega94778
Offline
Зарегистрирован: 13.06.2016

библиотека эта?

https://github.com/adafruit/TFTLCD-Library

Не понял я. Если вопрос ко мне... Нет. Мне китаец её выслал. В Интернете нет.

flat
Offline
Зарегистрирован: 05.02.2015

на меге идет что адафрут что mkufriend.

на дуо вторую запустить не смог ... хотя и не сильно заморачивался

agat20
Offline
Зарегистрирован: 25.06.2016

Сильно не ругайте, я новичок, учусь, купил такую  Ардуино http://ru.aliexpress.com/item/Free-shipping-latest-1lot-1-set-1pcs-UNO-R... и такой монитор http://ru.aliexpress.com/item/Free-Shipping-2-8-inch-TFT-Touch-LCD-Screen-Display-Module-for-UNO-R3-mega2560/32507684364.html 2 вечера протанцевал с бубном, вроде запустился экран, тесты пошли (до этого был белый экран) не могу проверить тач-скетч записывается на экран выводтся символы но тач не реагирует. И еще при комплировании скетча вылетает много строк красным,я так понимаю это какие то ошибки в коде. На пакетике монитора среди китайских символов есть надпись "2,8 (кит иероглифы) UNO" и тип контроллера "ILI9341" Насчет тача почитал но пока не понял что с этой бедой делать, может кто знает?

flat
Offline
Зарегистрирован: 05.02.2015

1. кинь скетч тестов. китайцы дают тесты без библиотек... тоесть не понятно выводить что то на экран ты уже можешь или нет ? 

2 по тачу http://eseal.ru/index.php/stati/arduino/spravochnye-dannye/moduli-dlya-arduino/38-2-4-tft-lcd-displej тут описал свои танцы с бубном...  

3. если всетаки юзаешь библиотеку то какую.. у меня чип другой... у тебя ILI9341 с ним пойдет обычная библиотека адафрут... у меня st7789 с ним тока Mcufriend работает...хотя заработает она и у тебя... 

 

agat20
Offline
Зарегистрирован: 25.06.2016

На экран выводил почти все тесты, кроме просмотра с сд карточки и с тачем еще мучаюсь. Китаец после двух обращений скинул библиотеки и примеры для монитора. Библиотеки разные пробовал для тача - не получается пока. Библиотеки и примеры он мне на почту прислал-13 мб,  Mcufriend у меня тоже частично работает но без тача.

flat
Offline
Зарегистрирован: 05.02.2015

проверь вывод текста к примеру на экран ... 

и почитай ссылку... та по тачу написано ... 

библиотека TouchScreen.h

основные проблеммы... выяснить выходы на экране.. и масштабация.. 

agat20
Offline
Зарегистрирован: 25.06.2016

flat пишет:

1. кинь скетч тестов. китайцы дают тесты без библиотек... тоесть не понятно выводить что то на экран ты уже можешь или нет ? 

2 по тачу http://eseal.ru/index.php/stati/arduino/spravochnye-dannye/moduli-dlya-arduino/38-2-4-tft-lcd-displej тут описал свои танцы с бубном...  

3. если всетаки юзаешь библиотеку то какую.. у меня чип другой... у тебя ILI9341 с ним пойдет обычная библиотека адафрут... у меня st7789 с ним тока Mcufriend работает...хотя заработает она и у тебя... 

 

Тест с буквами уже попробовал русифцировать, получилось, я в принципе не "писатель" я тупо копи-пастер, но помаленьку в суть вникаю, уже перепробовал кучу всяких датчиков, на подходе шилды-тоже буду пробовать.

flat
Offline
Зарегистрирован: 05.02.2015

Определение координат сенсорной точки
Для обнаружения нажатия необходимо знать сопротивление между крайними координатами по X. Сопротивление можно измерить с помощью любого мультиметра. Величина сопротивления, например, 300 ом и размеры сенсорной зоны устанавливаются отношением (Сопротивление меряется между пинами XM и XP).Замерив его я обнаружил что у меня пины перепутаны пины wr и rs. Сответсвенно поменял выводы в скетче

#define YP A1 // must be an analog pin
#define XM A2 // must be an analog pin
#define YM 7 // can be a digital pin
#define XP 6 // can be a digital pin
TouchScreen ts = TouchScreen(XP, YP, XM, YM, 300); // 300 это и есть сопротивление. в моем случае было 269

Для работы с сенсорным экраном необходимо подключить библиотеку

#include <TouchScreen.h> // библиотека сенсорного экрана

Обычно измеренные координаты сенсорной зоны дисплея масштабируются в координатах зоны изображения.
#define TS_MINX 150
#define TS_MINY 120
#define TS_MAXX 920
#define TS_MAXY 940

в координаты зоны изображения 240 x 320 точек с использованием следующих команд.
tft.fillRect(165, 160, 130, 52, ORANGE); // построение прямоугольника
TSPoint p = ts.getPoint(); // считывание координат нажатия в зоне 1024 х 1024
p.x = tft.width()-(map(p.x, TS_MINX, TS_MAXX, tft.width(), 0)); // преобразование
p.y = tft.height()-(map(p.y, TS_MINY, TS_MAXY, tft.height(), 0)); // преобразование
// нажатие в зоне прямоугольника ? 
if ((p.x > 15) and (p.x < 90) and (p.y > 120) and (p.y < 215)){…}

Несовпадение преобразованных координат нажатия на углы прямоугольника по оси Х с координатами построения изображения прямоугольника получилось как 15 к 160 и 90 к 212. Несовпадение можно уменьшить проведя калибровку резистивной матрицы сенсорного экрана.

Другой вариант использования тестовых угловых координат для определения - произошло ли нажатие в прямоугольной зоне, позволяет отказаться от функции перевода (масштабирования):
TSPoint p = ts.getPoint();// считывание координат нажатия в зоне 1024 х 1024
// нажатие в зоне прямоугольника ? 
if ((p.x > 200) and (p.x < 365) and (p.y > 525) and (p.y < 840)){…}

Особенности построения сенсорных клавиш
При использовании сенсорного дисплея для ввода реакции пользователя необходимо на экране показать зоны ввода (сенсорные клавиши). От варианта построения клавиш исчитывая координат нажатия на экран зависит надежность срабатывания ввода. Рассмотрим
два варианта организации ввода через дисплей.
1. Одна клавиша используется для ввода двух состояний, например, ВКЛ./ВЫКЛ. (ON/OFF)
2. Используются две клавиши: одна для ON, а другая для OFF.
В первом варианте за время нажатия происходило многократное переключение клавиши с ON на OFF и обратно, что затрудняло установку заданного положения клавиши. При введении 100 мс задержки между переключениями потребовалось значительно увеличить силу нажатия и, зачастую, требовалось многократное нажатие для изменения состояния клавиши.
Использование двух клавиш увеличило зону экрана занятую вводом, однако в этом варианте не зависимо от задержки происходило уверенное переключение даже при минимальной силе нажатия.

agat20
Offline
Зарегистрирован: 25.06.2016

flat пишет:

проверь вывод текста к примеру на экран ... 

и почитай ссылку... та по тачу написано ... 

 

Текст на экран выводится изумительно!

этот тест (тач) я пробовал уже вчера -картинки выводит а на тач не реагирует. Блин где то сохранил список ошибок при компиляции и найти не могу...

agat20
Offline
Зарегистрирован: 25.06.2016

у меня вроде так Пина тачскрина: A2-Xm, A3-Yp, D8-Xp, D9-Ym

flat
Offline
Зарегистрирован: 05.02.2015

тестером звякни между xp и xm

agat20
Offline
Зарегистрирован: 25.06.2016

flat пишет:

тестером звякни между xp и xm

ОК, спасибо, завтра гляну, сегодня уже поздно

flat
Offline
Зарегистрирован: 05.02.2015

я тож датый... лень доставать ) 

Buzzer2010
Buzzer2010 аватар
Offline
Зарегистрирован: 10.03.2016

У меня такой точно шилд. запускается вот как:

#include <Adafruit_GFX.h>    
#include <Adafruit_TFTLCD.h> 
#include <TouchScreen.h>
..............

Adafruit_TFTLCD tft(A3, A2, A1, A0, A4);

void setup()
{
  tft.reset();
  tft.begin(0x9341);
.............

 

agat20
Offline
Зарегистрирован: 25.06.2016

Buzzer2010 пишет:

У меня такой точно шилд. запускается вот как:

#include <Adafruit_GFX.h>    
#include <Adafruit_TFTLCD.h> 
#include <TouchScreen.h>
..............

Adafruit_TFTLCD tft(A3, A2, A1, A0, A4);

void setup()
{
  tft.reset();
  tft.begin(0x9341);
.............

 

а полностью скетч дать можешь? У меня немного отличается от твоего.

agat20
Offline
Зарегистрирован: 25.06.2016

flat пишет:

я тож датый... лень доставать ) 

померял сопротивление между XM и  XP -получилось 9.** кОм на плате и около 10 к на шилде... непоняточки

agat20
Offline
Зарегистрирован: 25.06.2016

Прошу пардону, подскажите а можно для модулей использовать стороннее питание +5 +3,3 и естественно ГНД  чтобы не нагружать шину питания ардуино а сигналы взять с ардуино?

agat20
Offline
Зарегистрирован: 25.06.2016

вот сообщение с ошибкой при компиляции 

Arduino: 1.6.9 (Windows 7), Плата:"Arduino/Genuino Uno"
 
tftpaint_shield:14: error: #error "This sketch is intended for use with the TFT LCD Shield. Make sure that USE_ADAFRUIT_SHIELD_PINOUT is #defined in the Adafruit_TFTLCD.h library file."
 
Несколько библиотек найдено для "TouchScreen.h"
 Используется: C:\Users\TOTI\Documents\Arduino\libraries\TouchScreen
Не используется: C:\Users\TOTI\Documents\Arduino\libraries\Touch-Screen-Library-master
exit status 1
#error "This sketch is intended for use with the TFT LCD Shield. Make sure that USE_ADAFRUIT_SHIELD_PINOUT is #defined in the Adafruit_TFTLCD.h library file."