TFT 2.4 белый экран

kwa-kwa
kwa-kwa аватар
Offline
Зарегистрирован: 10.01.2014

Подскажите рабочую библиотеку для дисплея TFT 2.4.

На обратной стороне платы наклейка "8340". При тестировании скетчем LCD_ID_Reader Version 1.2, в монитор порта у меня отобразился адрес 0х000000. При подключении к UNO весь экран светится белым и ни на что не реагирует при загрузке любого скетча-тестера которые я находил.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016
kwa-kwa
kwa-kwa аватар
Offline
Зарегистрирован: 10.01.2014

ua6em пишет:

ILI 9325 ILI9341

К сожалению мне не помогло( скачивал от сюда: ссылка

Как был белый экран так и остался.

Волшебник
Offline
Зарегистрирован: 22.12.2016
kwa-kwa
kwa-kwa аватар
Offline
Зарегистрирован: 10.01.2014

Волшебник пишет:

А эту читали? http://arduino.ru/forum/apparatnye-voprosy/arduino-uno-r3-lcd-24-tft

Да читал, не помогло. Китайчан скинул файл (это оригинал как он мне прислал его), там схемы, библиотеки, скетчи, некоторые даже компилируются:). Если серьезно то они рабочие, запускаются, НО мне не подошли, может кому то подойдет. До сих пор белый экран и разговор с продавцом не двигается дальше "чем я могу вам помочь?" и вот этого архива.

Спрашивал у продавца можел ли быть такое что шлейф поврежден. Ответа не последовало

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

в поиск по форуму:   2.4 

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

kwa-kwa
kwa-kwa аватар
Offline
Зарегистрирован: 10.01.2014

slider пишет:

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

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

James
Offline
Зарегистрирован: 26.02.2016

0x9328 пробуй

James
Offline
Зарегистрирован: 26.02.2016

там ноги нужно правильно указывать

Волшебник
Offline
Зарегистрирован: 22.12.2016

Я адафрутовской пользуюсь, https://github.com/adafruit/TFTLCD-Library

// This sketch has been Refurbished by BUHOSOFT
// IMPORTANT: Adafruit_TFTLCD LIBRARY MUST BE SPECIFICALLY
// CONFIGURED FOR EITHER THE TFT SHIELD OR THE BREAKOUT BOARD.
// SEE RELEVANT COMMENTS IN Adafruit_TFTLCD.h FOR SETUP.
#include <Adafruit_GFX.h>    // Core graphics library
#include <Adafruit_TFTLCD.h> // Hardware-specific library

// The control pins for the LCD can be assigned to any digital or
// analog pins...but we'll use the analog pins as this allows us to
// double up the pins with the touch screen (see the TFT paint example).
#define LCD_CS A3 // Chip Select goes to Analog 3
#define LCD_CD A2 // Command/Data goes to Analog 2
#define LCD_WR A1 // LCD Write goes to Analog 1
#define LCD_RD A0 // LCD Read goes to Analog 0

#define LCD_RESET A4 // Can alternately just connect to Arduino's reset pin

#define DEBUG     1



// When using the BREAKOUT BOARD only, use these 8 data lines to the LCD:
// For the Arduino Uno, Duemilanove, Diecimila, etc.:
//   D0 connects to digital pin 8  (Notice these are
//   D1 connects to digital pin 9   NOT in order!)
//   D2 connects to digital pin 2
//   D3 connects to digital pin 3
//   D4 connects to digital pin 4
//   D5 connects to digital pin 5
//   D6 connects to digital pin 6
//   D7 connects to digital pin 7
// For the Arduino Mega, use digital pins 22 through 29
// (on the 2-row header at the end of the board).

// Assign human-readable names to some common 16-bit color values:
#define	BLACK   0x0000
#define	BLUE    0x001F
#define	RED     0xF800
#define	GREEN   0x07E0
#define CYAN    0x07FF
#define MAGENTA 0xF81F
#define YELLOW  0xFFE0
#define WHITE   0xFFFF

Adafruit_TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);
// If using the shield, all control and data lines are fixed, and
// a simpler declaration can optionally be used:
// Adafruit_TFTLCD tft;

void setup(void) {
 #ifdef DEBUG
  Serial.begin(115200);
  Serial.println(F("TFT LCD test"));
  Serial.print("TFT size is ");
  Serial.print(tft.width());
  Serial.print("x");
  Serial.println(tft.height());
#endif // DEBUG
  tft.reset();

  uint16_t identifier = tft.readID();

if(identifier == 0x9325) {
#ifdef DEBUG
    Serial.println(F("Found ILI9325 LCD driver"));
  } else if(identifier == 0x9328) {

    Serial.println(F("Found ILI9328 LCD driver"));
  } else if(identifier == 0x7575) {

    Serial.println(F("Found HX8347G LCD driver"));
  } else if(identifier == 0x9341) {

    Serial.println(F("Found ILI9341 LCD driver"));
  } else if(identifier == 0x8357) {

    Serial.println(F("Found HX8357D LCD driver"));
#endif // DEBUG
    } else {
    #ifdef DEBUG
    Serial.print(F("Unknown LCD driver chip: "));
    Serial.println(identifier, HEX);
    Serial.print(F("I try use ILI9341 LCD driver "));
    Serial.println(F("If using the Adafruit 2.8\" TFT Arduino shield, the line:"));
    Serial.println(F("  #define USE_ADAFRUIT_SHIELD_PINOUT"));
    Serial.println(F("should appear in the library header (Adafruit_TFT.h)."));
    Serial.println(F("If using the breakout board, it should NOT be #defined!"));
    Serial.println(F("Also if using the breakout, double-check that all wiring"));
    Serial.println(F("matches the tutorial."));
    #endif // DEBUG
    identifier = 0x9341;
  }


  tft.begin(identifier);
#ifdef DEBUG
  Serial.println(F("Benchmark                Time (microseconds)"));

  Serial.print(F("Screen fill              "));
  Serial.println(testFillScreen());
  delay(500);

  Serial.print(F("Text                     "));
  Serial.println(testText());
  delay(3000);

  Serial.print(F("Lines                    "));
  Serial.println(testLines(CYAN));
  delay(500);

  Serial.print(F("Horiz/Vert Lines         "));
  Serial.println(testFastLines(RED, BLUE));
  delay(500);

  Serial.print(F("Rectangles (outline)     "));
  Serial.println(testRects(GREEN));
  delay(500);

  Serial.print(F("Rectangles (filled)      "));
  Serial.println(testFilledRects(YELLOW, MAGENTA));
  delay(500);

  Serial.print(F("Circles (filled)         "));
  Serial.println(testFilledCircles(10, MAGENTA));

  Serial.print(F("Circles (outline)        "));
  Serial.println(testCircles(10, WHITE));
  delay(500);

  Serial.print(F("Triangles (outline)      "));
  Serial.println(testTriangles());
  delay(500);

  Serial.print(F("Triangles (filled)       "));
  Serial.println(testFilledTriangles());
  delay(500);

  Serial.print(F("Rounded rects (outline)  "));
  Serial.println(testRoundRects());
  delay(500);

  Serial.print(F("Rounded rects (filled)   "));
  Serial.println(testFilledRoundRects());
  delay(500);

  Serial.println(F("Done!"));
#endif // DEBUG
}

void loop(void) {
  for(uint8_t rotation=0; rotation<4; rotation++) {
    tft.setRotation(rotation);
    testText();
    delay(2000);
  }
  testFilledRoundRects();
  testRoundRects();
  testFilledTriangles();
  testTriangles();
  testCircles(10, WHITE);
  testFillScreen();
  testText();
  testLines(CYAN);
  testFastLines(RED, BLUE);
  testRects(GREEN);
  testFilledRects(YELLOW, MAGENTA);
  testFilledCircles(10, MAGENTA);
}

unsigned long testFillScreen() {
  unsigned long start = micros();
  tft.fillScreen(BLACK);
  tft.fillScreen(RED);
  tft.fillScreen(GREEN);
  tft.fillScreen(BLUE);
  tft.fillScreen(BLACK);
  return micros() - start;
}

unsigned long testText() {
  tft.fillScreen(BLACK);
  unsigned long start = micros();
  tft.setCursor(0, 0);
  tft.setTextColor(WHITE);  tft.setTextSize(1);
  tft.println("Hello World!");
  tft.setTextColor(YELLOW); tft.setTextSize(2);
  tft.println(1234.56);
  tft.setTextColor(RED);    tft.setTextSize(3);
  tft.println(0xDEADBEEF, HEX);
  tft.println();
  tft.setTextColor(GREEN);
  tft.setTextSize(5);
  tft.println("Groop");
  tft.setTextSize(2);
  tft.println("I implore thee,");
  tft.setTextSize(1);
  tft.println("my foonting turlingdromes.");
  tft.println("And hooptiously drangle me");
  tft.println("with crinkly bindlewurdles,");
  tft.println("Or I will rend thee");
  tft.println("in the gobberwarts");
  tft.println("with my blurglecruncheon,");
  tft.println("see if I don't!");
  return micros() - start;
}

unsigned long testLines(uint16_t color) {
  unsigned long start, t;
  int           x1, y1, x2, y2,
                w = tft.width(),
                h = tft.height();

  tft.fillScreen(BLACK);

  x1 = y1 = 0;
  y2    = h - 1;
  start = micros();
  for(x2=0; x2<w; x2+=6) tft.drawLine(x1, y1, x2, y2, color);
  x2    = w - 1;
  for(y2=0; y2<h; y2+=6) tft.drawLine(x1, y1, x2, y2, color);
  t     = micros() - start; // fillScreen doesn't count against timing

  tft.fillScreen(BLACK);

  x1    = w - 1;
  y1    = 0;
  y2    = h - 1;
  start = micros();
  for(x2=0; x2<w; x2+=6) tft.drawLine(x1, y1, x2, y2, color);
  x2    = 0;
  for(y2=0; y2<h; y2+=6) tft.drawLine(x1, y1, x2, y2, color);
  t    += micros() - start;

  tft.fillScreen(BLACK);

  x1    = 0;
  y1    = h - 1;
  y2    = 0;
  start = micros();
  for(x2=0; x2<w; x2+=6) tft.drawLine(x1, y1, x2, y2, color);
  x2    = w - 1;
  for(y2=0; y2<h; y2+=6) tft.drawLine(x1, y1, x2, y2, color);
  t    += micros() - start;

  tft.fillScreen(BLACK);

  x1    = w - 1;
  y1    = h - 1;
  y2    = 0;
  start = micros();
  for(x2=0; x2<w; x2+=6) tft.drawLine(x1, y1, x2, y2, color);
  x2    = 0;
  for(y2=0; y2<h; y2+=6) tft.drawLine(x1, y1, x2, y2, color);

  return micros() - start;
}

unsigned long testFastLines(uint16_t color1, uint16_t color2) {
  unsigned long start;
  int           x, y, w = tft.width(), h = tft.height();

  tft.fillScreen(BLACK);
  start = micros();
  for(y=0; y<h; y+=5) tft.drawFastHLine(0, y, w, color1);
  for(x=0; x<w; x+=5) tft.drawFastVLine(x, 0, h, color2);

  return micros() - start;
}

unsigned long testRects(uint16_t color) {
  unsigned long start;
  int           n, i, i2,
                cx = tft.width()  / 2,
                cy = tft.height() / 2;

  tft.fillScreen(BLACK);
  n     = min(tft.width(), tft.height());
  start = micros();
  for(i=2; i<n; i+=6) {
    i2 = i / 2;
    tft.drawRect(cx-i2, cy-i2, i, i, color);
  }

  return micros() - start;
}

unsigned long testFilledRects(uint16_t color1, uint16_t color2) {
  unsigned long start, t = 0;
  int           n, i, i2,
                cx = tft.width()  / 2 - 1,
                cy = tft.height() / 2 - 1;

  tft.fillScreen(BLACK);
  n = min(tft.width(), tft.height());
  for(i=n; i>0; i-=6) {
    i2    = i / 2;
    start = micros();
    tft.fillRect(cx-i2, cy-i2, i, i, color1);
    t    += micros() - start;
    // Outlines are not included in timing results
    tft.drawRect(cx-i2, cy-i2, i, i, color2);
  }

  return t;
}

unsigned long testFilledCircles(uint8_t radius, uint16_t color) {
  unsigned long start;
  int x, y, w = tft.width(), h = tft.height(), r2 = radius * 2;

  tft.fillScreen(BLACK);
  start = micros();
  for(x=radius; x<w; x+=r2) {
    for(y=radius; y<h; y+=r2) {
      tft.fillCircle(x, y, radius, color);
    }
  }

  return micros() - start;
}

unsigned long testCircles(uint8_t radius, uint16_t color) {
  unsigned long start;
  int           x, y, r2 = radius * 2,
                w = tft.width()  + radius,
                h = tft.height() + radius;

  // Screen is not cleared for this one -- this is
  // intentional and does not affect the reported time.
  start = micros();
  for(x=0; x<w; x+=r2) {
    for(y=0; y<h; y+=r2) {
      tft.drawCircle(x, y, radius, color);
    }
  }

  return micros() - start;
}

unsigned long testTriangles() {
  unsigned long start;
  int           n, i, cx = tft.width()  / 2 - 1,
                      cy = tft.height() / 2 - 1;

  tft.fillScreen(BLACK);
  n     = min(cx, cy);
  start = micros();
  for(i=0; i<n; i+=5) {
    tft.drawTriangle(
      cx    , cy - i, // peak
      cx - i, cy + i, // bottom left
      cx + i, cy + i, // bottom right
      tft.color565(0, 0, i));
  }

  return micros() - start;
}

unsigned long testFilledTriangles() {
  unsigned long start, t = 0;
  int           i, cx = tft.width()  / 2 - 1,
                   cy = tft.height() / 2 - 1;

  tft.fillScreen(BLACK);
  start = micros();
  for(i=min(cx,cy); i>10; i-=5) {
    start = micros();
    tft.fillTriangle(cx, cy - i, cx - i, cy + i, cx + i, cy + i,
      tft.color565(0, i, i));
    t += micros() - start;
    tft.drawTriangle(cx, cy - i, cx - i, cy + i, cx + i, cy + i,
      tft.color565(i, i, 0));
  }

  return t;
}

unsigned long testRoundRects() {
  unsigned long start;
  int           w, i, i2,
                cx = tft.width()  / 2 - 1,
                cy = tft.height() / 2 - 1;

  tft.fillScreen(BLACK);
  w     = min(tft.width(), tft.height());
  start = micros();
  for(i=0; i<w; i+=6) {
    i2 = i / 2;
    tft.drawRoundRect(cx-i2, cy-i2, i, i, i/8, tft.color565(i, 0, 0));
  }

  return micros() - start;
}

unsigned long testFilledRoundRects() {
  unsigned long start;
  int           i, i2,
                cx = tft.width()  / 2 - 1,
                cy = tft.height() / 2 - 1;

  tft.fillScreen(BLACK);
  start = micros();
  for(i=min(tft.width(), tft.height()); i>20; i-=6) {
    i2 = i / 2;
    tft.fillRoundRect(cx-i2, cy-i2, i, i, i/8, tft.color565(0, i, 0));
  }

  return micros() - start;
}

Из своего опыта, была у меня одна ардуина УНО, китайская, все пины рабочие, но из дисплея всё время читала разные ID, я так с ней и неразобрался, приклеел бирку - с дисплеем не рулит и применил где-то где индикации нет.

James
Offline
Зарегистрирован: 26.02.2016

а в сериал, что она отвечает?

 

Волшебник
Offline
Зарегистрирован: 22.12.2016

Как в сктче и написано, отвечает 

    Serial.print(F("Unknown LCD driver chip: "));
082

    Serial.println(identifier, HEX);

0х0034 и другую муть, с нормальной ардуиной шилд сразу включился. Был 0ь9323

James
Offline
Зарегистрирован: 26.02.2016

значит унка странная :) хорошо когда есть замена

Волшебник
Offline
Зарегистрирован: 22.12.2016

Ага, или дисплей странный, не подходили они друг другу

kwa-kwa
kwa-kwa аватар
Offline
Зарегистрирован: 10.01.2014

Волшебник пишет:

Я адафрутовской пользуюсь, https://github.com/adafruit/TFTLCD-Library

О, выдал скетч драйвер ILI9341. Помучаю попрбую. Уже куда то сдвиг хоть. А скетч изменённый или это из примеров? У меня из примеров выдавал мне другое что то, уже точно не помню что.

Дополнено: А это просто распознавалка или он еще и рисует что то на экране? Спрашиваю потому что по коду он вроде рисует что то, но у меня все равно белый экран

kwa-kwa
kwa-kwa аватар
Offline
Зарегистрирован: 10.01.2014
TFT LCD test
Using Adafruit 2.8" TFT Arduino Shield Pinout
Unknown LCD driver chip: 0
If using the Adafruit 2.8" TFT Arduino shield, the line:
  #define USE_ADAFRUIT_SHIELD_PINOUT
should appear in the library header (Adafruit_TFT.h).
If using the breakout board, it should NOT be #defined!
Also if using the breakout, double-check that all wiring
matches the tutorial.
0

Rotation test выдает например вот это, хотя там так же предусмотрен ILI9341

Меня смущает что на моей плате нет пина LCD_CD, вместо него LCD_RS

Волшебник
Offline
Зарегистрирован: 22.12.2016

Там и написано -неизвестный 0. То есть не распознаёт

kwa-kwa
kwa-kwa аватар
Offline
Зарегистрирован: 10.01.2014

Волшебник пишет:

Там и написано -неизвестный 0. То есть не распознаёт

Но так ведь graficTest его вроде как распознает 9341 выдает:

LTTFT LCD test
Using Adafruit 2.8" TFT Arduino Shield Pinout TFT size is 240x320 Found ILI9341 LCD driver
...

А нужно раскомментировать USE_ADAFRUIT_SHIELD_PINOUT если плату используешь или нет?

Волшебник
Offline
Зарегистрирован: 22.12.2016

У меня закоментировано для Уно - //#define USE_ADAFRUIT_SHIELD_PINOUT 1

 
kwa-kwa
kwa-kwa аватар
Offline
Зарегистрирован: 10.01.2014

А еще бывает разная битность. По крайней мере я точно видел 16bit и 8bit это где меняется и может ли влиять на что то в моем случае?

Может быть с "Уной" проблеммы как можно проверить?

Разобрался с кодом выше: там

identifier = 0x9431; 

Поэтому у меня все замечательно отобразилось. Если не присваивать а именно считывать с дисплея, он 0 выдает

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

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

вот нашел http://arduino.ru/forum/apparatnye-voprosy/arduino-i-displei-ot-sotikov-mobilnykh-telefonov?page=4#comment-254691 Comondante выложил читалку и что она выдает

kwa-kwa
kwa-kwa аватар
Offline
Зарегистрирован: 10.01.2014

Интересная тема. Вот что выдала читалка:

Reading ID...0x0000
Loading LCD registers...
Filling the screen...
Done filling...
If your screen filled red, you may be able to use the library at <a href="http://misc.ws" rel="nofollow">http://misc.ws</a>
Register 0x00 : 0x0000
Register 0x01 : 0x0000
Register 0x02 : 0x0000
Register 0x03 : 0x3030
Register 0x04 : 0x0000
Register 0x05 : 0xAFAF
Register 0x06 : 0x0000
Register 0x07 : 0x7373
Register 0x08 : 0x0000
Register 0x09 : 0x0000
Register 0x0A : 0x0000
Register 0x0B : 0x0000
Register 0x0C : 0x0000
Register 0x0D : 0x0000
Register 0x0E : 0x0000
Register 0x0F : 0x0000
Register 0x10 : 0x0000
Register 0x11 : 0x3737
Register 0x12 : 0x0000
Register 0x13 : 0x0000
Register 0x14 : 0x0000
Register 0x15 : 0x0000
Register 0x16 : 0x0000
Register 0x17 : 0x6666
Register 0x18 : 0x5454
Register 0x19 : 0x0101
Register 0x1A : 0x4444
Register 0x1B : 0x2222
Register 0x1C : 0x0000
Register 0x1D : 0x3232
Register 0x1E : 0x3232
Register 0x1F : 0x0303
Register 0x20 : 0x0000
Register 0x21 : 0x0000
Register 0x22 : 0xF800
Register 0x23 : 0x4040
Register 0x24 : 0x1C1C
Register 0x25 : 0x3434
Register 0x26 : 0xA0A0
Register 0x27 : 0xB3B3
Register 0x28 : 0x0000
Register 0x29 : 0x0D0D
Register 0x2A : 0x0808
Register 0x2B : 0x0808
Register 0x2C : 0x3838
Register 0x2D : 0x0F0F
Register 0x2E : 0xA8A8
Register 0x2F : 0x1111
Register 0x30 : 0x0000
Register 0x31 : 0x0606
Register 0x32 : 0x0404
Register 0x33 : 0x0202
Register 0x34 : 0x0000
Register 0x35 : 0x0303
Register 0x36 : 0x0101
Register 0x37 : 0x0000
Register 0x38 : 0x0404
Register 0x39 : 0x0404
Register 0x3A : 0x0000
Register 0x3B : 0x0000
Register 0x3C : 0x0000
Register 0x3D : 0x0000
Register 0x3E : 0x0000
Register 0x3F : 0x0000
Register 0x40 : 0x7070
Register 0x41 : 0x5151
Register 0x42 : 0x3636
Register 0x43 : 0x0404
Register 0x44 : 0x3B3B
Register 0x45 : 0x0E0E
Register 0x46 : 0x0101
Register 0x47 : 0x1D1D
Register 0x48 : 0x0909
Register 0x49 : 0x0000
Register 0x4A : 0x0000
Register 0x4B : 0x0000
Register 0x4C : 0x0000
Register 0x4D : 0x0000
Register 0x4E : 0x0000
Register 0x4F : 0x0000
Register 0x50 : 0x0000
Register 0x51 : 0x5353
Register 0x52 : 0x0000
Register 0x53 : 0x1F1F
Register 0x54 : 0x3333
Register 0x55 : 0x0E0E
Register 0x56 : 0x0202
Register 0x57 : 0x7373
Register 0x58 : 0x0000
Register 0x59 : 0x0000
Register 0x5A : 0x0000
Register 0x5B : 0x0000
Register 0x5C : 0x0000
Register 0x5D : 0x0000
Register 0x5E : 0x0000
Register 0x5F : 0x0000
Register 0x60 : 0x0000
Register 0x61 : 0x0101
Register 0x62 : 0x0000
Register 0x63 : 0xD9D9
Register 0x64 : 0x0000
Register 0x65 : 0x0000
Register 0x66 : 0x4949
Register 0x67 : 0x9393
Register 0x68 : 0x1010
Register 0x69 : 0x2828
Register 0x6A : 0x0000
Register 0x6B : 0x0000
Register 0x6C : 0x0000
Register 0x6D : 0x3F3F
Register 0x6E : 0x0000
Register 0x6F : 0x0000
Register 0x70 : 0x2828
Register 0x71 : 0x1010
Register 0x72 : 0x0000
Register 0x73 : 0x3838
Register 0x74 : 0x0000
Register 0x75 : 0x7474
Register 0x76 : 0x4040
Register 0x77 : 0x0404
Register 0x78 : 0x0000
Register 0x79 : 0x0000
Register 0x7A : 0x0000
Register 0x7B : 0x0000
Register 0x7C : 0x0000
Register 0x7D : 0x0000
Register 0x7E : 0x0000
Register 0x7F : 0x0000
Register 0x80 : 0x0404
Register 0x81 : 0x0000
Register 0x82 : 0x0000
Register 0x83 : 0x0000
Register 0x84 : 0x8080
Register 0x85 : 0x0000
Register 0x86 : 0x0000
Register 0x87 : 0x0000
Register 0x88 : 0x0000
Register 0x89 : 0x0000
Register 0x8A : 0x0000
Register 0x8B : 0x0000
Register 0x8C : 0x0000
Register 0x8D : 0x0000
Register 0x8E : 0x0000
Register 0x8F : 0x0000
Register 0x90 : 0x0000
Register 0x91 : 0x0000
Register 0x92 : 0x0000
Register 0x93 : 0x4949
Register 0x94 : 0x0101
Register 0x95 : 0x0000
Register 0x96 : 0x0000
Register 0x97 : 0x0000
Register 0x98 : 0x0000
Register 0x99 : 0x0000
Register 0x9A : 0x0000
Register 0x9B : 0x0000
Register 0x9C : 0x0000
Register 0x9D : 0x0000
Register 0x9E : 0x3838
Register 0x9F : 0x0000
Register 0xA0 : 0x0000
Register 0xA1 : 0x0000
Register 0xA2 : 0x0000
Register 0xA3 : 0x0000
Register 0xA4 : 0x0000
Register 0xA5 : 0x0000
Register 0xA6 : 0x0000
Register 0xA7 : 0x0000
Register 0xA8 : 0x0000
Register 0xA9 : 0x0000
Register 0xAA : 0x0000
Register 0xAB : 0x0000
Register 0xAC : 0x0000
Register 0xAD : 0x0000
Register 0xAE : 0x0000
Register 0xAF : 0x0000
Register 0xB0 : 0x0000
Register 0xB1 : 0x0000
Register 0xB2 : 0x0000
Register 0xB3 : 0x0000
Register 0xB4 : 0x0000
Register 0xB5 : 0x0000
Register 0xB6 : 0x0000
Register 0xB7 : 0x0000
Register 0xB8 : 0x0000
Register 0xB9 : 0x0000
Register 0xBA : 0x0000
Register 0xBB : 0x0000
Register 0xBC : 0x0000
Register 0xBD : 0x0000
Register 0xBE : 0x0000
Register 0xBF : 0x0000
Register 0xC0 : 0x0000
Register 0xC1 : 0x0000
Register 0xC2 : 0x0000
Register 0xC3 : 0x0000
Register 0xC4 : 0x0000
Register 0xC5 : 0x0000
Register 0xC6 : 0x0000
Register 0xC7 : 0x0000
Register 0xC8 : 0x0000
Register 0xC9 : 0x0000
Register 0xCA : 0x0000
Register 0xCB : 0x0000
Register 0xCC : 0x0000
Register 0xCD : 0x0000
Register 0xCE : 0x0000
Register 0xCF : 0x0000
Register 0xD0 : 0x0000
Register 0xD1 : 0x0000
Register 0xD2 : 0x0000
Register 0xD3 : 0x0000
Register 0xD4 : 0x0000
Register 0xD5 : 0x0000
Register 0xD6 : 0x0000
Register 0xD7 : 0x0000
Register 0xD8 : 0x0000
Register 0xD9 : 0x0000
Register 0xDA : 0x0000
Register 0xDB : 0x0000
Register 0xDC : 0x0000
Register 0xDD : 0x0000
Register 0xDE : 0x0000
Register 0xDF : 0x0000
Register 0xE0 : 0x0000
Register 0xE1 : 0x0000
Register 0xE2 : 0x0000
Register 0xE3 : 0x0000
Register 0xE4 : 0x0000
Register 0xE5 : 0x0000
Register 0xE6 : 0x0000
Register 0xE7 : 0x0000
Register 0xE8 : 0x0000
Register 0xE9 : 0x0000
Register 0xEA : 0x0000
Register 0xEB : 0x0000
Register 0xEC : 0x0000
Register 0xED : 0x0000
Register 0xEE : 0x0000
Register 0xEF : 0x0000
Register 0xF0 : 0x0000
Register 0xF1 : 0x0000
Register 0xF2 : 0x0000
Register 0xF3 : 0x0000
Register 0xF4 : 0x0000
Register 0xF5 : 0x0000
Register 0xF6 : 0x0000
Register 0xF7 : 0x0000
Register 0xF8 : 0x0000
Register 0xF9 : 0x0000
Register 0xFA : 0x0000
Register 0xFB : 0x0000
Register 0xFC : 0x0000
Register 0xFD : 0x0000
Register 0xFE : 0x0000
Register 0xFF : 0x0000

 

kwa-kwa
kwa-kwa аватар
Offline
Зарегистрирован: 10.01.2014

Предполагаю что драйвер HX8340b или HX8340n или HX8340bn, но библиотеки не могу найти под ардуино и для 2,4". Нашел библиотеку, но она для 2,2", там SPY интерфейс. Можно как то портировать его что ли?

Дополнено: нашел на 8340 вот это: код инициализации (ссылка на архив), но как это использовать не знаю.

Дополнено2: Узнал как примерно использовать из темы предыдущего сообщения, но не помогло - экран белый.

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

Запустили? либа должна быть у китайцев, читали отзывы от таких же диспов на Али?

HX8340 врятли , у него меньшее разрешение , можете попробовать подключить проводами как в UTFT (с ним и даташит по подключению) ,  там есть HX8340  8 бит , выберите . RD на +5в .

пробуйте новую читалку v5.1 из http://arduino.ru/forum/apparatnye-voprosy/arduino-i-displei-ot-sotikov-mobilnykh-telefonov?page=5#comment-264976

у вас на шилде написано mcufriend , можете у них на сайте поискать либы к нему http://www.mcufriend.com/shop/html/?20.html

kwa-kwa
kwa-kwa аватар
Offline
Зарегистрирован: 10.01.2014

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

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

Думаю закупить нано и сделать отдельное питание от компьютерного БП. Должно ведь подойти?

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

Читалку новую попробую, спасибо

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

у меня  st7781. с адафрутовскими читалками было также ... ноли... поставил  Mcufriend все побежало. https://yadi.sk/d/LJ_SGe8knkRAs

Kshkoj
Offline
Зарегистрирован: 17.04.2017

У меня была схожая ситуация! Правда дисплей другой  https://ru.aliexpress.com/item/3-2-TFT-LCD-Display-module-Touch-Screen-Shield-board-onboard-temperature-sensor-w-Touch-Pen/32755473754.html?spm=2114.13010608.0.0.xMqTk9 .   Все грузилось, но экран светился белым. Оказалось, что под W8 имя пользователя на русском написано. А по этому в пути C:\....\пользователи\ИМЯ\докумены\....\Arduino... пишутся библиотеки дополнительные и промежуточные файлы. Создав другого юзера на латинице - все заработало!

kwa-kwa
kwa-kwa аватар
Offline
Зарегистрирован: 10.01.2014

Kshkoj пишет:

Оказалось, что под W8 имя пользователя на русском написано.

Полезное замечание, может кому то пригодится, но у меня на инглише. Думаю что из-за uno, так что друзья еще и arduino свои на исправность проверяйте

kwa-kwa
kwa-kwa аватар
Offline
Зарегистрирован: 10.01.2014

Дошли руки до нее попробую на Нано если найду размер маленький библиотеки

flat пишет:

у меня  st7781. с адафрутовскими читалками было также ... ноли... поставил  Mcufriend все побежало. https://yadi.sk/d/LJ_SGe8knkRAs

В вашей библиотеке ошибка на некий CS_IDLE ругается

Читалка не влезла в НАНО, попробовать не удалось.

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

Читалка не влезла в НАНО, попробовать не удалось.

[/quote]

Скетч использует 21 876 байт (71%) памяти устройства. Всего доступно 30 720 байт.
Глобальные переменные используют 718 байт (35%) динамической памяти, оставляя 1 330 байт для локальных переменных. Максимум: 2 048 байт.
 
у вас видимо 168 камень :) , а не 328.  
со 168 вообще нефиг соваться в графику с TFT, а пользовать только для мелких простых задач. Не экономьте на мелочах.
Тогда нужно было заккоментить графические тесты.
 
вот упрощенный скетч для atmega168:
 
#include <Adafruit_TFTLCD.h> // Hardware-specific library

// The control pins for the LCD can be assigned to any digital or
// analog pins...but we'll use the analog pins as this allows us to
// double up the pins with the touch screen (see the TFT paint example).
#define LCD_CS A3 // Chip Select goes to Analog 3
#define LCD_CD A2 // Command/Data goes to Analog 2
#define LCD_WR A1 // LCD Write goes to Analog 1
#define LCD_RD A0 // LCD Read goes to Analog 0

#define LCD_RESET A4 // Can alternately just connect to Arduino's reset pin
// When using the BREAKOUT BOARD only, use these 8 data lines to the LCD:
// For the Arduino Uno, Duemilanove, Diecimila, etc.:
//   D0 connects to digital pin 8  (Notice these are
//   D1 connects to digital pin 9   NOT in order!)
//   D2 connects to digital pin 2
//   D3 connects to digital pin 3
//   D4 connects to digital pin 4
//   D5 connects to digital pin 5
//   D6 connects to digital pin 6
//   D7 connects to digital pin 7
// For the Arduino Mega, use digital pins 22 through 29
// (on the 2-row header at the end of the board).


Adafruit_TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);

void setup(void) {
  Serial.begin(9600);
  Serial.println(" ");Serial.println(" ");
  Serial.println(F("v5.2 read all register + read ID "));
  tft.reset();
  uint16_t identifier = tft.readID(); // 0x9341; 
  uint8_t minimal = 0;

 Serial.println(" ");
  if(identifier == 0x9325) {
    Serial.println(F("Found ILI9325 LCD driver"));
  } else if(identifier == 0x9328) {
    Serial.println(F("Found ILI9328 LCD driver"));
  } else if(identifier == 0x7575) {
    Serial.println(F("Found HX8347G LCD driver"));
  } else if(identifier == 0x9341) {
    Serial.println(F("Found ILI9341 LCD driver"));
  } else if(identifier == 0x8357) {
    Serial.println(F("Found HX8357D LCD driver"));
  } else {
    Serial.print(F("Unknown LCD driver chip: "));
    Serial.println(identifier, HEX);
    Serial.println(F("***use minimal init as driver ili9341 ili9488 *** ->"));
    identifier = 0x9341; // если чип не найден, то принудительно минимальный инит подобных  ili9341 ili9488
    minimal=1;
    //return;
  }
}

void loop(void) 
{
}

 

 
Скетч использует 13 060 байт (91%) памяти устройства. Всего доступно 14 336 байт.
Глобальные переменные используют 496 байт (48%) динамической памяти, оставляя 528 байт для локальных переменных. Максимум: 1 024 байт.
 
 
kwa-kwa
kwa-kwa аватар
Offline
Зарегистрирован: 10.01.2014

slider пишет:

у вас видимо 168 камень :) , а не 328.  
со 168 вообще нефиг соваться в графику с TFT, а пользовать только для мелких простых задач. Не экономьте на мелочах.

Ну да :) знал бы не купил, повелся на то что нано v3 какая то новая была на тот момент.

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

 

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

уже сжал , выше ее и выложил  (упрощенный скетч для atmega168).

важен весь ответ, он должен быть такой большой:

v5.2 read all register + read ID + TFT LCD test 

v5.2  Reading all registers + ID tft lcd  B0h=0x03(FF),=0x04 . from 

 Slider
 arduino.ru/forum/apparatnye-voprosy/arduino-i-displei-ot-sotikov-

mobilnykh-telefonov 
 
reg  p1 p2 p3 p4 p5 p6 p7 p8  
00 = 0                       * 
01 = 0 
02 = 0 
03 = 0 
04 = 0                       * 
05 = 0 
06 = 0 
07 = 0 
08 = 0 
09 = 0 
0A = 0 
0B = 0 
0C = 0 
0D = 0 
0E = 0 
0F = 0 
10 = 0 
11 = 0 
12 = 0 
13 = 0 
14 = 0 
15 = 0 
16 = 0 
17 = 0 
18 = 0 
19 = 0 
1A = 0 
1B = 0 
1C = 0 
1D = 0 
1E = 0 
1F = 0 
20 = 0 
21 = 0 
22 = 0 
23 = 0 
24 = 0 
25 = 0 
26 = 0 
27 = 0 
28 = 0 
29 = 0 
2A = 0 
2B = 00 00 00 01 3F 00 00 00  
2C = 0 
2D = 0 
2E = 0 
2F = 0 
30 = 00 00 00 01 3F 00 00 00  
31 = 0 
32 = 0 
33 = 0 
34 = 0 
35 = 0 
36 = 0 
37 = 0 
38 = 0 
39 = 0 
3A = 0 
3B = 0 
3C = 0 
3D = 0 
3E = 0 
3F = 0 
40 = 0 
41 = 0 
42 = 0 
43 = 0 
44 = 0 
45 = 0 
46 = 0 
47 = 0 
48 = 0 
49 = 0 
4A = 0 
4B = 0 
4C = 0 
4D = 0 
4E = 0 
4F = 0 
50 = 0 
51 = 0 
52 = 0 
53 = 0 
54 = 0 
55 = 0 
56 = 0 
57 = 0 
58 = 0 
59 = 0 
5A = 0 
5B = 0 
5C = 0 
5D = 0 
5E = 0 
5F = 0 
60 = 0 
61 = 0 
62 = 0 
63 = 0 
64 = 0 
65 = 0 
66 = 0 
67 = 0 
68 = 0 
69 = 0 
6A = 0 
6B = 0 
6C = 0 
6D = 0 
6E = 0 
6F = 0 
70 = 0 
71 = 0 
72 = 0 
73 = 0 
74 = 0 
75 = 0 
76 = 0 
77 = 0 
78 = 0 
79 = 0 
7A = 0 
7B = 0 
7C = 0 
7D = 0 
7E = 0 
7F = 0 
80 = 0 
81 = 0 
82 = 0 
83 = 0 
84 = 0 
85 = 0 
86 = 0 
87 = 0 
88 = 0 
89 = 0 
8A = 0 
8B = 0 
8C = 0 
8D = 0 
8E = 0 
8F = 0 
90 = 0 
91 = 0 
92 = 0 
93 = 0 
94 = 0 
95 = 0 
96 = 0 
97 = 0 
98 = 0 
99 = 0 
9A = 0 
9B = 0 
9C = 0 
9D = 0 
9E = 0 
9F = 0 
A0 = 0 
A1 = 0 
A2 = 0 
A3 = 0 
A4 = 0 
A5 = 0 
A6 = 0 
A7 = 0 
A8 = 0 
A9 = 0 
AA = 0 
AB = 0 
AC = 0 
AD = 0 
AE = 0 
AF = 0 
B0 = 0 
B1 = 0 
B2 = 0 
B3 = 0 
B4 = 0 
B5 = 0 
B6 = 0 
B7 = 0 
B8 = 0 
B9 = 0 
BA = 0 
BB = 0 
BC = 0 
BD = 0 
BE = 0 
BF = 0                       * 
C0 = 0 
C1 = 0 
C2 = 0 
C3 = 0 
C4 = 0 
C5 = 0 
C6 = 0 
C7 = 0 
C8 = 0 
C9 = 0 
CA = 0 
CB = 0 
CC = 0 
CD = 0 
CE = 0 
CF = 0 
D0 = 0 
D1 = 0 
D2 = 0 
D3 = 0                       * 
D4 = 0 
D5 = 0 
D6 = 0 
D7 = 0 
D8 = 0 
D9 = 0 
DA = 0                       * 
DB = 0                       * 
DC = 0                       * 
DD = 0 
DE = 0 
DF = 0 
E0 = 0 
E1 = 0 
E2 = 0 
E3 = 0 
E4 = 0 
E5 = 0 
E6 = 0 
E7 = 0 
E8 = 0 
E9 = 0 
EA = 0 
EB = 0 
EC = 0 
ED = 0 
EE = 0 
EF = 0                       * 
F0 = 0 
F1 = 0 
F2 = 0 
F3 = 0 
F4 = 0 
F5 = 0 
F6 = 0 
F7 = 0 
F8 = 0 
F9 = 0 
FA = 0 
FB = 0 
FC = 0 
FD = 0 
FE = 0 
 
00 = 0                       * 
04 = 0                       * 
B0 = 0 
BF = 0                       * 
D3 = 0                       * 
DA = 0                       * 
DB = 0                       * 
DC = 0                       * 
EF = 0                       * 
 . . . . . . . 
  writing in Manufacturer Command Access Protect  (B0h) <- 0xFFFFFF 

 
B0 = 0 
Device Code Read (BFh)  
BF = 01 01 22 15 26 00 00 00 ***** 
 . . . 
 
reg  p1 p2 p3 p4 p5 p6 p7 p8  
B0 = 0 
B1 = 0 
B2 = 0 
B3 = 0 
B4 = 0 
B5 = 0 
B6 = 0 
B7 = 0 
B8 = 0 
B9 = 0 
BA = 0 
BB = 0 
BC = 0 
BD = 0 
BE = 0 
BF = 01 01 22 15 26 00 00 00 ***** 
C0 = 00 00 4F 00 10 A2 00 01  
C1 = 01 01 02 28 08 08 00 00  
C2 = 0 
C3 = 01 01 02 28 08 08 00 00  
C4 = 0 
C5 = 0 
C6 = 0 
C7 = 0 
C8 = 0 
C9 = 0 
CA = 0 
CB = 0 
CC = 0 
CD = 0 
CE = 0 
CF = 0 
D0 = 63 63 53 82 3F 37 00 00  
D1 = 0 
D2 = 0 
D3 = 0                       * 
D4 = 0 
D5 = 0 
D6 = 0 
D7 = 01 01 02 59 AC 07 0C B2  
D8 = 44 44 44 44 40 24 06 02  
D9 = 0 
DA = 0                       * 
DB = 0                       * 
DC = 0                       * 
DD = 0 
DE = 0 
DF = 0 
E0 = 0 
E1 = 0 
E2 = 0 
E3 = 00 00 3D 02 FF FF 02 02  
E4 = 00 00 00 22 AA 00 00 00  
E5 = 0 
E6 = 0 
E7 = 0 
E8 = 0 
E9 = 0 
EA = 0 
EB = 0 
EC = 0 
ED = 0 
EE = 0 
EF = 0                       * 
F0 = 0 
F1 = 0 
F2 = 0 
F3 = 0 
F4 = 0 
F5 = 0 
F6 = 0 
F7 = 0 
F8 = 0 
F9 = 0 
FA = 04 04 00 00 00 30 00 00  
FB = 0 
FC = 0 
FD = 0 
FE = 0 
 writing in Manufacturer Command Access Protect  (B0h) <- 0x040404  
B0 = 0 
Device Code Read (BFh)  
BF = 0                       * 
 . . . 
 
reg  p1 p2 p3 p4 p5 p6 p7 p8  
B0 = 0 
B1 = 0 
B2 = 0 
B3 = 0 
B4 = 0 
B5 = 0 
B6 = 0 
B7 = 0 
B8 = 0 
B9 = 0 
BA = 0 
BB = 0 
BC = 0 
BD = 0 
BE = 0 
BF = 0                       * 
C0 = 0 
C1 = 0 
C2 = 0 
C3 = 0 
C4 = 0 
C5 = 0 
C6 = 0 
C7 = 0 
C8 = 0 
C9 = 0 
CA = 0 
CB = 0 
CC = 0 
CD = 0 
CE = 0 
CF = 0 
D0 = 0 
D1 = 0 
D2 = 0 
D3 = 0                       * 
D4 = 0 
D5 = 0 
D6 = 0 
D7 = 0 
D8 = 0 
D9 = 0 
DA = 0                       * 
DB = 0                       * 
DC = 0                       * 
DD = 0 
DE = 0 
DF = 0 
E0 = 0 
E1 = 0 
E2 = 0 
E3 = 0 
E4 = 0 
E5 = 0 
E6 = 0 
E7 = 0 
E8 = 0 
E9 = 0 
EA = 0 
EB = 0 
EC = 0 
ED = 0 
EE = 0 
EF = 0                       * 
F0 = 0 
F1 = 0 
F2 = 0 
F3 = 0 
F4 = 0 
F5 = 0 
F6 = 0 
F7 = 0 
F8 = 0 
F9 = 0 
FA = 0 
FB = 0 
FC = 0 
FD = 0 
FE = 0 
 
Unknown LCD driver chip: 0
***use minimal init as driver ili9341 ili9488 *** ->

 

kwa-kwa
kwa-kwa аватар
Offline
Зарегистрирован: 10.01.2014

 v5.2 read all register + read ID
 
Unknown LCD driver chip: 0
***use minimal init as driver ili9341 ili9488 *** ->
 

Если питание не подавать на мониторчик, то выводит С0С0 или FEFE но это я думаю неправильно

loop45
Offline
Зарегистрирован: 18.09.2016

У меня тоже аналогичная проблема. Какие только библиотек не применял, одно и то же, белый экран. Может мне не рабочий дисплей попался?

James
Offline
Зарегистрирован: 26.02.2016

прозвоните шлеф, может контакт хреновый, еще внимание обратите на поведение выхода rst как он себя ведет при запуске

loop45
Offline
Зарегистрирован: 18.09.2016

Что в rst проверять? Напряжение? Уточните пжл чайнику ; )

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

kwa-kwa]</p> <p>Дошли руки до нее попробую на Нано если найду размер маленький библиотеки</p> <p>[quote=flat пишет:

у меня  st7781. с адафрутовскими читалками было также ... ноли... поставил  Mcufriend все побежало. https://yadi.sk/d/LJ_SGe8knkRAs

В вашей библиотеке ошибка на некий CS_IDLE ругается

код киньте .. и ошбочку тоже... возможно не указан пин CS?

James
Offline
Зарегистрирован: 26.02.2016

ну почти, лог.уровни 

kwa-kwa
kwa-kwa аватар
Offline
Зарегистрирован: 10.01.2014

James пишет:

внимание обратите на поведение выхода rst как он себя ведет при запуске

можно по подробнее?

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

loop45 пишет:
Что в rst проверять? Напряжение? Уточните пжл чайнику ; )

по rst ... его вообще не обяз подключать ..... я на своем выкусил и порт использую... есть пара статей в инете что надо ссделать .... щас лень искать... но поиск что то как освобоить пины на 2.4 tft lcd 

James
Offline
Зарегистрирован: 26.02.2016

на землю его нужно. не обяз.? а если от наводок он будет ресетиться постоянно?

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

rst лучше к rst ардуины . вот пример с вырезанными 3мя пинами на UTFT http://arduino.ru/forum/apparatnye-voprosy/arduino-i-displei-ot-sotikov-mobilnykh-telefonov?page=1#comment-167595

также к  примеру (rst-rst) необходимо делать в некоторых либах с SPI дисплеями http://arduino.ru/forum/apparatnye-voprosy/28-spi-tft-podklyuchenie#comment-160676

loop45
Offline
Зарегистрирован: 18.09.2016

Спасибо, попробую на выходных

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

>>на землю его нужно. не обяз.? а если от наводок он будет ресетиться постоянно?

 

Возможно .... но пока ни разу не резетнулся... если вы говорите на землю.. то это тоже свободный пин ардуинки ) запомню

kwa-kwa
kwa-kwa аватар
Offline
Зарегистрирован: 10.01.2014

Кто разбирал, скажите нормально что дорожки объеденины перед шлейфом (ну или после него)?