3,2 TFT LCD + TouchScreen?

sandr4
sandr4 аватар
Offline
Зарегистрирован: 11.02.2015

   "Пришел" дисплей от наших луноликих братьев:

Так вот вопрос: есть на нем тачскрин или нет?

AlexeyPG
Offline
Зарегистрирован: 15.02.2015

А название можно увидеть?

sandr4
sandr4 аватар
Offline
Зарегистрирован: 11.02.2015

  Судя по источнику в библиотеках есть примеры с кнопками, на тач там подключается к неподключенным пинам:

UTouch  myTouch(52, 48, 51,50, 49);

PIN48 и PIN49 на дисплее не подключены. В другом примере тач подключен так:

myTouch(52, 53, 50,51, 45);

PIN45 приходится на FLASH_CS дисплея, но кнопки все-равно не работают. Так есть ли TouchScreen или нет?

AlexeyPG
Offline
Зарегистрирован: 15.02.2015

так что за дисплей-то????

ну или хоть фото с обратной стороны выложи

sandr4
sandr4 аватар
Offline
Зарегистрирован: 11.02.2015

Все как на фото у продавца:

AlexeyPG
Offline
Зарегистрирован: 15.02.2015

Похоже на обычный, без TouchScreen

sandr4
sandr4 аватар
Offline
Зарегистрирован: 11.02.2015

Ещё мнения есть?

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

sandr4 пишет:

Ещё мнения есть?

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

sandr4
sandr4 аватар
Offline
Зарегистрирован: 11.02.2015

Попросили фото с обратной стороны, я и выложил... А с лицевой фото есть в источнике.

l3thFox
Offline
Зарегистрирован: 27.03.2015

Сори похоже что тач, но в описании ни слова о том что он тач,

sandr4
sandr4 аватар
Offline
Зарегистрирован: 11.02.2015

С тачем чем отличается?

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

судя по картинке "пример 4" у них все работает и тач там есть. Подождите, может кто еще юзил этот девайс...

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

sandr4 пишет:

С тачем чем отличается?

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

l3thFox
Offline
Зарегистрирован: 27.03.2015
sandr4
sandr4 аватар
Offline
Зарегистрирован: 11.02.2015

На ощупь есть переход с 0,5 мм на экран, как защитная пленка наклеена, подозреваю, что это и есть тач.

l3thFox
Offline
Зарегистрирован: 27.03.2015

Кстати слева на экране шлейф идет очень похоже, что именно на тач

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

l3thFox пишет:

Кстати слева на экране шлейф идет очень похоже, что именно на тач

абсолютно согласен - если это не подсветка :) , вероятность 99%

sandr4
sandr4 аватар
Offline
Зарегистрирован: 11.02.2015

Но в распиновке дисплея пинов на тач не видать...

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

sandr4 пишет:

Но в распиновке дисплея пинов на тач не видать...

SPI  - только для карты? может тач там-же?

sandr4
sandr4 аватар
Offline
Зарегистрирован: 11.02.2015

Может быть, но в библиотеке 5 пинов подключаются. С MOSI MISO CS и CLK вроде понятно, а пятый пин? Есть FLASH_CS, пробовал и его, не выходит "каменная чаша".

twsdwf
Offline
Зарегистрирован: 25.03.2015

судя по обратной стороне и пустому месту с подписью FLASH её там нет. А что на микрухах на обороте написано-то?

sandr4
sandr4 аватар
Offline
Зарегистрирован: 11.02.2015

HC245

3A9Y501

UXD335E

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

sandr4 пишет:

HC245

3A9Y501

UXD335E

Octal 3 - State Noninverting Bus Transceiver, это не контроллер, контроллер между экраном и платой,  его не видно (если вообще есть)

sandr4
sandr4 аватар
Offline
Зарегистрирован: 11.02.2015

Контроллер HX8357B

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

sandr4 пишет:

 В другом примере тач подключен так:

myTouch(52, 53, 50,51, 45);

PIN45 приходится на FLASH_CS дисплея, но кнопки все-равно не работают. Так есть ли TouchScreen или нет?

1) Выложите, пожалуйста, этот код примера.

2) откуда взяли распиновку из первого поста?

судя по даташиту контроллер с тачем не контачат, остается SPI - попробуйте "посмотреть" что приходит по SPI при нажатии на экран - там координаты должны быть.

sandr4
sandr4 аватар
Offline
Зарегистрирован: 11.02.2015

Код примера (от луноликих братьев):



// UTFT_Buttons_Demo_320x240 (C)2013 Henning Karlsen
// web: http://www.henningkarlsen.com/electronics
//
// A small demo to demonstrate the use of some of the
// functions of the UTFT_Buttons add-on library.
//
// This demo was made for modules with a screen resolution 
// of 320x240 pixels, but should work on larger screens as
// well.
//
// This program requires both the UTFT and UTouch libraries
// in addition to the UTFT_Buttons add-on library.
//

#include <UTFT.h>
#include <UTouch.h>
#include <UTFT_Buttons.h>

// Declare which fonts we will be using
extern uint8_t SmallFont[];
extern uint8_t BigFont[];
extern uint8_t Dingbats1_XL[];

// Set up UTFT...
// Set the pins to the correct ones for your development board
// -----------------------------------------------------------
// Standard Arduino 2009/Uno/Leonardo shield   : <display model>,19,18,17,16
// Standard Arduino Mega/Due shield            : <display model>,38,39,40,41
// CTE TFT LCD/SD Shield for Arduino Due       : <display model>,25,26,27,28
// Standard chipKit Uno32/uC32                 : <display model>,34,35,36,37
// Standard chipKit Max32                      : <display model>,82,83,84,85
// AquaLEDSource All in One Super Screw Shield : <display model>,82,83,84,85
//
// Remember to change the model parameter to suit your display module!
UTFT          myGLCD(HX8357B,38,39,40,41);

// Set up UTouch...
// Set the pins to the correct ones for your development board
// -----------------------------------------------------------
// Standard Arduino 2009/Uno/Leonardo shield   : 15,10,14,9,8
// Standard Arduino Mega/Due shield            : 6,5,4,3,2
// CTE TFT LCD/SD Shield for Arduino Due       : 6,5,4,3,2
// Standard chipKit Uno32/uC32                 : 20,21,22,23,24
// Standard chipKit Max32                      : 62,63,64,65,66
// AquaLEDSource All in One Super Screw Shield : 62,63,64,65,66
UTouch  myTouch(52, 48, 51,50, 49);

// Finally we set up UTFT_Buttons :)
UTFT_Buttons  myButtons(&myGLCD, &myTouch);

void setup()
{
  myGLCD.InitLCD();
  myGLCD.clrScr();
  myGLCD.setFont(SmallFont);

  myTouch.InitTouch();
  myTouch.setPrecision(PREC_MEDIUM);
  
  myButtons.setTextFont(BigFont);
  myButtons.setSymbolFont(Dingbats1_XL);
}

void loop()
{
  int but1, but2, but3, but4, butX, butY, pressed_button;
  boolean default_colors = true;
  
  but1 = myButtons.addButton( 10,  20, 300,  30, "Button 1");
  but2 = myButtons.addButton( 10,  60, 300,  30, "Button 2");
  but3 = myButtons.addButton( 10, 100, 300,  30, "Button 3");
  but4 = myButtons.addButton( 10, 140, 300,  30, "Button 4", BUTTON_DISABLED);
  butX = myButtons.addButton(279, 199,  40,  40, "a", BUTTON_SYMBOL);
  butY = myButtons.addButton(  0, 199, 100,  40, "I", BUTTON_SYMBOL | BUTTON_SYMBOL_REP_3X);
  myButtons.drawButtons();

  myGLCD.print("You pressed:", 110, 205);
  myGLCD.setColor(VGA_BLACK);
  myGLCD.setBackColor(VGA_WHITE);
  myGLCD.print("None    ", 110, 220);

  while(1) 
  {
    if (myTouch.dataAvailable() == true)
    {
      pressed_button = myButtons.checkButtons();

      if (pressed_button==butX)
      {
        if (myButtons.buttonEnabled(but4))
          myButtons.disableButton(but4, true);
        else
          myButtons.enableButton(but4, true);
      }
      else if (pressed_button==butY)
      {
        if (default_colors)
        {
          myButtons.setButtonColors(VGA_YELLOW, VGA_RED, VGA_YELLOW, VGA_BLUE, VGA_GRAY);
          myButtons.relabelButton(butY, "_");
          myButtons.drawButtons();
          default_colors=false;
        }
        else
        {
          myButtons.setButtonColors(VGA_WHITE, VGA_GRAY, VGA_WHITE, VGA_RED, VGA_BLUE);
          myButtons.relabelButton(butY, "I");
          myButtons.drawButtons();
          default_colors=true;
        }
      }
      if (pressed_button==but1)
        myGLCD.print("Button 1", 110, 220);
      if (pressed_button==but2)
        myGLCD.print("Button 2", 110, 220);
      if (pressed_button==but3)
        myGLCD.print("Button 3", 110, 220);
      if (pressed_button==but4)
        myGLCD.print("Button 4", 110, 220);
      if (pressed_button==-1)
        myGLCD.print("None    ", 110, 220);
    }
  }
}

Распиновка не помню с какого сайта, дисплей с тем-же контроллером что и у меня. Прошерстил даташит на дисплей - о таче ни слова не нашел.

 

sandr4
sandr4 аватар
Offline
Зарегистрирован: 11.02.2015

TouchScreen точно есть, как вычислить пины? Через сериал монитор? Помогите с кодом...

Bomberboy
Offline
Зарегистрирован: 08.07.2013

Вот вам ссыль на точно такой же дисп.

Тача нет, как следует из описания на сайте

sandr4
sandr4 аватар
Offline
Зарегистрирован: 11.02.2015

Да, облом. Такой классный дисплей с хорошим разрешением 480х320 и без тача. Но это не беда. Тач можно заказать отдельно, но опять-же, с контроллером он будет или без?. И снова "танцы с бубном". Лучше сразу брать нормальный с тачем.

 

Теперь другой вопрос. Есть дисплей 3,5'' с тачскрином на контроллере ILI9327(распиновка под UNO). После опять же "танцев" и чтения многочисленных страниц форума, запустил его на mega2560 с библиотекой UTFT(переделанной под этот контроллер). Все прекрасно, графическая демка работает, просто "летает"(в смысле скорости рисования). Вот только с тачем - снова облом. Он подключен к тем же пинам что задействуют дисплей ( YP - 38 нога меги, LCD_RS;  XM - 39 нога, LCD_WR; YM - 28, LCD_D7; XP - 29, LCD_D6). Соответственно, с библой UTouch от Карлсена, работать отказывается. Есть решение данной проблемы?

stakan1986
Offline
Зарегистрирован: 17.02.2015

тут ветка целая в том числе и про этот дисплей - все запускалось (по крайней мере на уне).

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

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

sandr4 пишет:

На ощупь есть переход с 0,5 мм на экран, как защитная пленка наклеена, подозреваю, что это и есть тач.

Блин, народ, вы что? наберите в гугле Тачскрин и узнаете и увидите его!  и не гадайте. Нет тут тача.  Если емкостный как в смартах, его тож видать по второму широкому шлейфу. 

Тач есть в магазах деталей от сотовых , стоит около 30-40 руб (2,2"-7" одинаково ). К примеру http://www.la-bora.ru/categories/272 . Для подключения потребуется 2 цифровых и 2 аналоговых пинах.

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

slider пишет:

sandr4 пишет:

На ощупь есть переход с 0,5 мм на экран, как защитная пленка наклеена, подозреваю, что это и есть тач.

Блин, народ, вы что? наберите в гугле Тачскрин и узнаете и увидите его!  и не гадайте. Нет тут тача.  Если емкостный как в смартах, его тож видать по второму широкому шлейфу.

Тач есть в магазах деталей от сотовых , стоит около 30-40 руб (2,2"-7" одинаково ). К примеру http://www.la-bora.ru/categories/272 . Для подключения потребуется 2 цифровых и 2 аналоговых пинах.

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

ЗЫ как раз у производителя, в одном из примеров тач работает. и несколько вариантов риспиновки приведены - в этом и вопрос.

AlexeyPG
Offline
Зарегистрирован: 15.02.2015

Это как раз и есть подсветка

sandr4
sandr4 аватар
Offline
Зарегистрирован: 11.02.2015

slider пишет:

sandr4 пишет:

На ощупь есть переход с 0,5 мм на экран, как защитная пленка наклеена, подозреваю, что это и есть тач.

Блин, народ, вы что? наберите в гугле Тачскрин и узнаете и увидите его!  и не гадайте. Нет тут тача.  Если емкостный как в смартах, его тож видать по второму широкому шлейфу. 

Тач есть в магазах деталей от сотовых , стоит около 30-40 руб (2,2"-7" одинаково ). К примеру http://www.la-bora.ru/categories/272 . Для подключения потребуется 2 цифровых и 2 аналоговых пинах.

Вопрос по этому дисплею уже снят с повестки. Лучше подскажите, как быть с дисплеем из поста #29? Как его запустить с библиотекой UTouch?

 

sandr4
sandr4 аватар
Offline
Зарегистрирован: 11.02.2015

sandr4 пишет:

Да, облом. Такой классный дисплей с хорошим разрешением 480х320 и без тача. Но это не беда. Тач можно заказать отдельно, но опять-же, с контроллером он будет или без?. И снова "танцы с бубном". Лучше сразу брать нормальный с тачем.

 

Теперь другой вопрос. Есть дисплей 3,5'' с тачскрином на контроллере ILI9327(распиновка под UNO). После опять же "танцев" и чтения многочисленных страниц форума, запустил его на mega2560 с библиотекой UTFT(переделанной под этот контроллер). Все прекрасно, графическая демка работает, просто "летает"(в смысле скорости рисования). Вот только с тачем - снова облом. Он подключен к тем же пинам что задействуют дисплей ( YP - 38 нога меги, LCD_RS;  XM - 39 нога, LCD_WR; YM - 28, LCD_D7; XP - 29, LCD_D6). Соответственно, с библой UTouch от Карлсена, работать отказывается. Есть решение данной проблемы?

Имеется ввиду ILI9327 контроллер дисплея.

stakan1986
Offline
Зарегистрирован: 17.02.2015

http://arduino.ru/forum/apparatnye-voprosy/tft-35-i-arduino?page=4#comment-76055

Специально проверил на Меге  - всё работает.

sandr4
sandr4 аватар
Offline
Зарегистрирован: 11.02.2015

Как раз это читаю... Много раз начинал читать эту ветку, но уж столько воды здесь налито - не дочитывал. Сейчас - спдобился, осиливаю.

stakan1986
Offline
Зарегистрирован: 17.02.2015

там страниц 5 первых толковых, как раз по моей ссылке пост #214 с рабочей библиотекой.

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

sandr4
sandr4 аватар
Offline
Зарегистрирован: 11.02.2015

Прочитал всю ветку по ссылке из 36 поста :

Базара нет, на UNO все работает, и графика и тач. На этом можно было бы и успокоиться, только вот ног у UNO практически не остается свободных. Поэтому mega2560 предпочтительней. Графика на ней работает , но тач запустить не получается. Ну не дорос я еще умом библиотеки ковырять...

sandr4
sandr4 аватар
Offline
Зарегистрирован: 11.02.2015

Загружаю в мегу2560 этот тестовый код ( на UNO он работает ) .На пинах меги 38 и 39 напряжение изменяется, т.е тачскрин работает, но в библу эти данные не передает...

// Тест совместной работы UTFT и тача TFTLCD
// Arduino Uno R3 3.5 inch TFTLCD 8bit
// Правка в файле TouchScreen.cpp:
/////////////////////////////////////////////////////////////////////////////

/////////////////////////////////////////////////////////////////////////////
// This program is a quick demo of how create and use buttons.
//
// This program requires the UTFT library.
//
// It is assumed that the display module is connected to an
// appropriate shield or that you know how to change the pin 
// numbers in the setup.
//

#include <UTFT.h>
#include <stdint.h>
#include "TouchScreen.h"

bool Debug = false; //режим отладки

// These are the pins for the shield!
#define YP 38  
#define XM 39 
#define YM  28 
#define XP  29

#define MINPRESSURE 10
#define MAXPRESSURE 1000
#define TS_MAXX 92
#define TS_MINX 936
#define TS_MAXY 135
#define TS_MINY 900

// For better pressure precision, we need to know the resistance
// between X+ and X- Use any multimeter to read it
// For the one we're using, its 300 ohms across the X plate
TouchScreen ts = TouchScreen(XP, YP, XM, YM, 300);


// Declare which fonts we will be using
extern uint8_t BigFont[];

// Uncomment the next two lines for the Arduino 2009/UNO
//UTFT        myGLCD(ITDB24D,19,18,17,16);   // Remember to change the model parameter to suit your display module!
//UTouch      myTouch(15,10,14,9,8);

// Uncomment the next two lines for the Arduino Mega
//UTFT        myGLCD(ITDB32S, 38,39,40,41);   // Remember to change the model parameter to suit your display module!
UTFT myGLCD(NIC35WS,38,39,40,41);
#define TOUCH_ORIENTATION  PORTRAIT

int x, y;
char stCurrent[20]="";
int stCurrentLen=0;
char stLast[20]="";

/*************************
**   Custom functions   **
*************************/

void drawButtons()
{
// Draw the upper row of buttons
  for (x=0; x<5; x++)
  {
    myGLCD.setColor(0, 0, 255);
    myGLCD.fillRoundRect (10+(x*60), 10, 60+(x*60), 60);
    myGLCD.setColor(255, 255, 255);
    myGLCD.drawRoundRect (10+(x*60), 10, 60+(x*60), 60);
    myGLCD.printNumI(x+1, 27+(x*60), 27);
  }
// Draw the center row of buttons
  for (x=0; x<5; x++)
  {
    myGLCD.setColor(0, 0, 255);
    myGLCD.fillRoundRect (10+(x*60), 70, 60+(x*60), 120);
    myGLCD.setColor(255, 255, 255);
    myGLCD.drawRoundRect (10+(x*60), 70, 60+(x*60), 120);
    if (x<4)
      myGLCD.printNumI(x+6, 27+(x*60), 87);
  }
  myGLCD.print("0", 267, 87);
// Draw the lower row of buttons
  myGLCD.setColor(0, 0, 255);
  myGLCD.fillRoundRect (10, 130, 150, 180);
  myGLCD.setColor(255, 255, 255);
  myGLCD.drawRoundRect (10, 130, 150, 180);
  myGLCD.print("Clear", 40, 147);
  myGLCD.setColor(0, 0, 255);
  myGLCD.fillRoundRect (160, 130, 300, 180);
  myGLCD.setColor(255, 255, 255);
  myGLCD.drawRoundRect (160, 130, 300, 180);
  myGLCD.print("Enter", 190, 147);
  myGLCD.setBackColor (0, 0, 0);
}

void updateStr(int val)
{
  if (stCurrentLen<20)
  {
    stCurrent[stCurrentLen]=val;
    stCurrent[stCurrentLen+1]='\0';
    stCurrentLen++;
    myGLCD.setColor(0, 255, 0);
    myGLCD.print(stCurrent, LEFT, 224);
  }
  else
  {
    myGLCD.setColor(255, 0, 0);
    myGLCD.print("BUFFER FULL!", CENTER, 192);
    delay(500);
    myGLCD.print("            ", CENTER, 192);
    delay(500);
    myGLCD.print("BUFFER FULL!", CENTER, 192);
    delay(500);
    myGLCD.print("            ", CENTER, 192);
    myGLCD.setColor(0, 255, 0);
  }
}

// Draw a red frame while a button is touched
void waitForIt(int x1, int y1, int x2, int y2)
{
if(Debug)
 { Serial.print("\tx1:");  Serial.print(x1);
  Serial.print("\ty1");Serial.print(y1);
  Serial.print("\tx2");Serial.print(x2);
  Serial.print("\ty2");Serial.println(y2);}

myGLCD.setColor(255, 255, 0);
  myGLCD.drawRoundRect (x1, y1, x2, y2);
  delay(500);
  TSPoint p = ts.getPoint();
  while      (p.z > MINPRESSURE && p.z < MAXPRESSURE) 
    TSPoint p = ts.getPoint();

  myGLCD.setColor(255, 0, 0);
  myGLCD.drawRoundRect (x1, y1, x2, y2);
  }

/*************************
**  Required functions  **
*************************/
void setup()
{
 if (Debug) { Serial.begin(9600);}
// Initial setup
  myGLCD.InitLCD();
  myGLCD.clrScr();

//  myTouch.InitTouch();
//  myTouch.setPrecision(PREC_MEDIUM);

  myGLCD.setFont(BigFont);
  myGLCD.setBackColor(0, 0, 255);
  drawButtons();  
}

void loop()
{
  while (true)
  {
  // a point object holds x y and z coordinates
  TSPoint p = ts.getPoint();
  if (p.z > MINPRESSURE && p.z < MAXPRESSURE) 
//    if (myTouch.dataAvailable())
    {
/*
      myTouch.read();
      x=myTouch.getX();
      y=myTouch.getY();
*/
  x = map(p.x,  TS_MAXX, TS_MINX, 399, 0);
  y = map(p.y, TS_MAXY, TS_MINY,  239, 0);
     // x=(927-p.x)>>1;
if (Debug)  {  Serial.print("p,x:");Serial.print(x);}
    //  y=int((p.y-150)/3); // подгоняем
if (Debug)  {  Serial.print("\ty:");Serial.println(y);}

      if ((y>=10) && (y<=60))  // Upper row
      {
        if ((x>=10) && (x<=60))  // Button: 1
        {
          waitForIt(10, 10, 60, 60);
          updateStr('1');
        }
        if ((x>=70) && (x<=120))  // Button: 2
        {
          waitForIt(70, 10, 120, 60);
          updateStr('2');
        }
        if ((x>=130) && (x<=180))  // Button: 3
        {
          waitForIt(130, 10, 180, 60);
          updateStr('3');
        }
        if ((x>=190) && (x<=240))  // Button: 4
        {
          waitForIt(190, 10, 240, 60);
          updateStr('4');
        }
        if ((x>=250) && (x<=300))  // Button: 5
        {
          waitForIt(250, 10, 300, 60);
          updateStr('5');
        }
      }

      if ((y>=70) && (y<=120))  // Center row
      {
        if ((x>=10) && (x<=60))  // Button: 6
        {
          waitForIt(10, 70, 60, 120);
          updateStr('6');
        }
        if ((x>=70) && (x<=120))  // Button: 7
        {
          waitForIt(70, 70, 120, 120);
          updateStr('7');
        }
        if ((x>=130) && (x<=180))  // Button: 8
        {
          waitForIt(130, 70, 180, 120);
          updateStr('8');
        }
        if ((x>=190) && (x<=240))  // Button: 9
        {
          waitForIt(190, 70, 240, 120);
          updateStr('9');
        }
        if ((x>=250) && (x<=300))  // Button: 0
        {
          waitForIt(250, 70, 300, 120);
          updateStr('0');
        }
      }

      if ((y>=130) && (y<=180))  // Upper row
      {
        if ((x>=10) && (x<=150))  // Button: Clear
        {
          waitForIt(10, 130, 150, 180);
          stCurrent[0]='\0';
          stCurrentLen=0;
          myGLCD.setColor(0, 0, 0);
          myGLCD.fillRect(0, 224, 319, 239);
        }
        if ((x>=160) && (x<=300))  // Button: Enter
        {
          waitForIt(160, 130, 300, 180);
          if (stCurrentLen>0)
          {
            for (x=0; x<stCurrentLen+1; x++)
            {
              stLast[x]=stCurrent[x];
            }
            stCurrent[0]='\0';
            stCurrentLen=0;
            myGLCD.setColor(0, 0, 0);
            myGLCD.fillRect(0, 208, 319, 239);
            myGLCD.setColor(0, 255, 0);
            myGLCD.print(stLast, LEFT, 208);
          }
          else
          {
            myGLCD.setColor(255, 0, 0);
            myGLCD.print("BUFFER EMPTY", CENTER, 192);
            delay(500);
            myGLCD.print("            ", CENTER, 192);
            delay(500);
            myGLCD.print("BUFFER EMPTY", CENTER, 192);
            delay(500);
            myGLCD.print("            ", CENTER, 192);
            myGLCD.setColor(0, 255, 0);
          }
        }
      }
    }
  }
}

stakan1986
Offline
Зарегистрирован: 17.02.2015

Так давайте ка уточним - речь идет про вот такой шилд??? http://ru.aliexpress.com/item/3-5-inch-TFT-Touch-LCD-Screen-Display-Module-For-Arduino-UNO-R3-HIGH-QUALITY-Free/1786048346.html?isOrig=true#extend . Зеленая плата ставится на Уно. Я по крайней мере про него. 

Запускал я его библиотекой из поста 214 той темы - и дисплей и тач работали. но инициализировал дисплей строкой UTFT myGLCD(ILI9327, A2,A1,A3,A4);. Тач заработал после танцев с бубном (ориентация не та и граничные значения пришлось вручную искать). Кстати этот пример изначально ориентацию тача неверную считывал - х и у путал. В связи с граниченностью пинов пробовал соединять две Уны по сериал порту чтоб одна считывала датчики а вторая работала с экраном. В итоге спалил обе платы и заказал Мегу.

Для того чтобы заработала Мега воспользовался указаниями из поста 308:

http://arduino.ru/forum/apparatnye-voprosy/tft-35-i-arduino?page=6#comment-90708

Все заработало на Меге без каких либо других изменений в коде. Единственно как я понимаю СД карта была разведена в порты Уны SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). А так на меге они другие то карта в пролете.

sandr4
sandr4 аватар
Offline
Зарегистрирован: 11.02.2015

В принципе, если не считать что у моего шилда цвет красный, это тот-же шилд для UNO. Сейчас все проделал согдасно всем рекомендациям, как-то :

1. Удалил все библиотеки для работы с TFT( Adafruit_TFT, TFT, UTFT).

2.Установил библиотеку с 214 поста. С UNO все прекрасно работает, и графика и тач.

3.Воспользовался указаниями с поста 308: IDE ругнулось на файл UTFT.h, пришлось внести изменения в файл HW_ATmega1280.h в 5 строке:

  было

void UTFT::LCD_Writ_Bus(char VL)

  исправил на

void UTFT::LCD_Writ_Bus(char VH,char VL, byte mode)

  все скомпелировалось и залилось. Тач не работает. Включил отладку, заменив bool Debug = false на true.

 В мониторе вижу координаты нажатий на тачскрин. Вроде как они адекватные, т.е. типа такого:

         p,x:221 y:105

                      x1:190 y170 x2240 y2120
 
 но кнопки не "нажимаются". Мой косяк, или что - где править? ( я так понимаю, что х2240 необходимо читать как х2 240 или я не прав?)
 

 

sandr4
sandr4 аватар
Offline
Зарегистрирован: 11.02.2015

Мало того, пример PAINT из скачанной библиотеки - рисует. Только поменял местами max и min

stakan1986
Offline
Зарегистрирован: 17.02.2015

ну если пример Паинт рисует - значит тач работает. Тогда пример с кнопками видимо в коде какие-то неполадки имеет

Кстати про изменения в HW_ATmega1280.h - тоже такое делал, потом если память не изменяет где то между 214 и 308 постом скидывали обновленную бибилотеку скидывали, в которой уже LCD_Writ_Bus(char VL) было. Вроде как отрисовка тестового примера шла быстрее на пару секунд, но на практике думаю не особо важно.

sandr4
sandr4 аватар
Offline
Зарегистрирован: 11.02.2015

Надеюсь, дальше разберусь сам. Раз нажатие в Paint правильное, "подсуну" что-нибудь в кнопки, чтоб и они заработали. Хотя это, уже вроде и не важно. 

kortium
Offline
Зарегистрирован: 23.01.2015

нету там тача, видно же, хотя бы по настоящему черному цвету экрана ) с тачем сразу цвета портятся. Вот как он с тачем выглядит http://www.aliexpress.com/item/Free-shipping-3-2-inch-TFT-LCD-screen-module-Ultra-HD-320X480-for-MEGA-2560-R3/32332326978.html

sandr4
sandr4 аватар
Offline
Зарегистрирован: 11.02.2015

С дисплеем и тачем давно разобрались, были и другие проблемы...

Lotus6202
Lotus6202 аватар
Offline
Зарегистрирован: 12.01.2018

Полностью согласен...   ИМЕННО ЭТОТ ДИСПЛЕЙ БЕЗ ТАЧА...  ШЛЕЙФ С ЛЕВО..  ИДЁТ НА ПОДСВЕТКУ МАКСИМУМ 7 ДОРОЖЕК...   6 ШТУК -gnd     И   1 ДОРОЖКА  + ПЛЮСОВОЙ......        ___________  Блин, народ, вы что? наберите в гугле Тачскрин и узнаете и увидите его!  и не гадайте. Нет тут тача.