1 (2014-08-29 22:48:21 отредактировано RasNikGal)

Тема: Полосы Arduino UNO + 2.4 tft lcd touch shield (China)

Здразьте
Помогите пожалуйста.
Имеется констуктор Arduino UNO (China)

http://i63.fastpic.ru/big/2014/0829/86/5da13fdf05acd0e2f0752674eeb36e86.jpg

и 2.4 tft lcd touch shield (China)

http://i68.fastpic.ru/big/2014/0829/e9/1bb06414abfae926ae3c14c6c91386e9.jpg

http://i63.fastpic.ru/big/2014/0829/a0/6179a4af1823b08bfff44735526326a0.jpg

ИМЕЮ КОД:

#define LCD_CS A3   
#define LCD_CD A2   
#define LCD_WR A1   
#define LCD_RD A0   
// you can also just connect RESET to the arduino RESET pin
#define LCD_RESET A4
//Duemilanove/Diecimila/UNO/etc ('168 and '328 chips) microcontoller:
// Color definitions
#define    BLACK           0x0000
#define    BLUE            0x001F
#define    RED             0xF800
#define    GREEN           0x07E0
#define CYAN            0x07FF
#define MAGENTA         0xF81F
#define YELLOW          0xFFE0
#define WHITE           0xFFFF

#include "TFTLCD.h"

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

void setup(void) {
  Serial.begin(9600);
  Serial.println("8 Bit LCD test!");

  uint16_t identifier = tft.readRegister(0x0);
  Serial.print("ID=");
  Serial.println(identifier, HEX);

  Serial.println("tft.initDisplay");
  tft.reset();
  delay(100); // ???
  tft.initDisplay();
 
  Serial.println("fillscreen");
  tft.fillScreen(BLUE);

  Serial.println("testtext");
  testtext(RED);
  delay(2000);
  Serial.println("testlines");
  testlines(CYAN);
  delay(500);
  Serial.println("testfastlines");
  testfastlines(RED, BLUE);
  delay(500);
  Serial.println("testdrawrects");
  testdrawrects(GREEN);
  delay(500);
  Serial.println("testfillrects");
  testfillrects(YELLOW, MAGENTA);
  delay(500);
  Serial.println("tft.fillScreen");
  tft.fillScreen(BLACK);
  Serial.println("testfillcircles");
  testfillcircles(10, MAGENTA);
  Serial.println("testdrawcircles");
  testdrawcircles(10, WHITE);
  delay(500);
  Serial.println("testtriangles");
  testtriangles();
  delay(500);
  Serial.println("testfilltriangles");
  testfilltriangles();
  delay(500);
  Serial.println("testRoundRect");
  testRoundRect();
  delay(500);
  Serial.println("testFillRoundRect");
  testFillRoundRect();
 
}

void loop(void) {

Serial.println("tft.setRotation");
  for (uint8_t rotation=0; rotation<4; rotation++) {
    Serial.print("Rotation=");Serial.println(rotation);
    tft.setRotation(rotation);
    testtext(RED);
    delay(1000);
  }
}

void testFillRoundRect() {
  tft.fillScreen(BLACK);
 
  for (uint16_t x=tft.width(); x > 20 ; x-=6) {
    tft.fillRoundRect(tft.width()/2 -x/2, tft.height()/2 -x/2 , x, x, x/8,  tft.Color565(0, x, 0));
}
}

void testRoundRect() {
  tft.fillScreen(BLACK);
 
  for (uint16_t x=0; x < tft.width(); x+=6) {
    tft.drawRoundRect(tft.width()/2 -x/2, tft.height()/2 -x/2 , x, x, x/8, tft.Color565(x, 0, 0));
}
}

void testtriangles() {
  tft.fillScreen(BLACK);
  for (uint16_t i=0; i<tft.width()/2; i+=5) {
    tft.drawTriangle(tft.width()/2, tft.height()/2-i,
                     tft.width()/2-i, tft.height()/2+i,
                     tft.width()/2+i, tft.height()/2+i, tft.Color565(0, 0, i));
  }
}

void testfilltriangles() {
  tft.fillScreen(BLACK);
 
  for (uint16_t i=tft.width()/2; i>10; i-=5) {
    tft.fillTriangle(tft.width()/2, tft.height()/2-i,
                     tft.width()/2-i, tft.height()/2+i,
                     tft.width()/2+i, tft.height()/2+i,
                     tft.Color565(0, i, i));
    tft.drawTriangle(tft.width()/2, tft.height()/2-i,
                     tft.width()/2-i, tft.height()/2+i,
                     tft.width()/2+i, tft.height()/2+i, tft.Color565(i, i, 0));   
  }
}
void testtext(uint16_t color) {
  tft.fillScreen(BLACK);
  tft.setCursor(0, 20);
  tft.setTextColor(color);
  tft.setTextSize(1);
  tft.println("Hello World!");
  tft.setTextSize(2);
  tft.println(1234.56);
  tft.setTextSize(3);
  tft.println(0xDEADBEEF, HEX);
}

void testfillcircles(uint8_t radius, uint16_t color) {
  for (uint16_t x=radius; x < tft.width(); x+=radius*2) {
    for (uint16_t y=radius; y < tft.height(); y+=radius*2) {
      tft.fillCircle(x, y, radius, color);
    }
  } 
}

void testdrawcircles(uint8_t radius, uint16_t color) {
  for (uint16_t x=0; x < tft.width()+radius; x+=radius*2) {
    for (uint16_t y=0; y < tft.height()+radius; y+=radius*2) {
      tft.drawCircle(x, y, radius, color);
    }
  } 
}


void testfillrects(uint16_t color1, uint16_t color2) {
tft.fillScreen(BLACK);
for (uint16_t x=tft.width()-1; x > 6; x-=6) {
   //Serial.println(x, DEC);
   tft.fillRect(tft.width()/2 -x/2, tft.height()/2 -x/2 , x, x, color1);
   tft.drawRect(tft.width()/2 -x/2, tft.height()/2 -x/2 , x, x, color2);
}
}

void testdrawrects(uint16_t color) {
tft.fillScreen(BLACK);
for (uint16_t x=0; x < tft.width(); x+=6) {
   tft.drawRect(tft.width()/2 -x/2, tft.height()/2 -x/2 , x, x, color);
}
}

void testfastlines(uint16_t color1, uint16_t color2) {
   tft.fillScreen(BLACK);
   for (uint16_t y=0; y < tft.height(); y+=5) {
     tft.drawHorizontalLine(0, y, tft.width(), color1);
   }
   for (uint16_t x=0; x < tft.width(); x+=5) {
     tft.drawVerticalLine(x, 0, tft.height(), color2);
   }
 
}

void testlines(uint16_t color) {
   tft.fillScreen(BLACK);
   for (uint16_t x=0; x < tft.width(); x+=6) {
     tft.drawLine(0, 0, x, tft.height()-1, color);
   }
   for (uint16_t y=0; y < tft.height(); y+=6) {
     tft.drawLine(0, 0, tft.width()-1, y, color);
   }
   
   tft.fillScreen(BLACK);
   for (uint16_t x=0; x < tft.width(); x+=6) {
     tft.drawLine(tft.width()-1, 0, x, tft.height()-1, color);
   }
   for (uint16_t y=0; y < tft.height(); y+=6) {
     tft.drawLine(tft.width()-1, 0, 0, y, color);
   }
   
   tft.fillScreen(BLACK);
   for (uint16_t x=0; x < tft.width(); x+=6) {
     tft.drawLine(0, tft.height()-1, x, 0, color);
   }
   for (uint16_t y=0; y < tft.height(); y+=6) {
     tft.drawLine(0, tft.height()-1, tft.width()-1, y, color);
   }

   tft.fillScreen(BLACK);
   for (uint16_t x=0; x < tft.width(); x+=6) {
     tft.drawLine(tft.width()-1, tft.height()-1, x, 0, color);
   }
   for (uint16_t y=0; y < tft.height(); y+=6) {
     tft.drawLine(tft.width()-1, tft.height()-1, 0, y, color);
   }
}


void testBars() {
  uint16_t i,j;
  for(i=0; i < tft.height(); i++)
  {
    for(j=0; j < tft.width(); j++)
    {
      if(i>279) tft.writeData(WHITE);
      else if(i>239) tft.writeData(BLUE);
      else if(i>199) tft.writeData(GREEN);
      else if(i>159) tft.writeData(CYAN);
      else if(i>119) tft.writeData(RED);
      else if(i>79) tft.writeData(MAGENTA);
      else if(i>39) tft.writeData(YELLOW);
      else tft.writeData(BLACK);
    }
  }
}

Скачать ВСЮ библиотеку http://dropmefiles.com/X8iGr

ПОЧЕМУ ПОЛОСЫ?? ?

http://i63.fastpic.ru/big/2014/0829/22/03bf46fe5b05756b4ad378ba0bfe9622.jpg

Версия arduino IDE 1.0.5

2

Re: Полосы Arduino UNO + 2.4 tft lcd touch shield (China)

Помогите пожалуйста

3

Re: Полосы Arduino UNO + 2.4 tft lcd touch shield (China)

покупал такой же на aliexpress и теже полосы, может брак?

4

Re: Полосы Arduino UNO + 2.4 tft lcd touch shield (China)

Нет не брак, скорее всего у вас чип 7781 скачайте библиотечку отсюда http://www.spelecshop.com/1402480/56338 … duino.html