전체상품목록 바로가기

본문 바로가기


현재 위치
  1. home
  2. community
  3. 기술문의 :)

기술문의 :)

기술문의 게시판 입니다.

상품 게시판 상세
subject 연결문제 문의
writer 아트로봇 (ip:)
  • date 2014-09-11 13:45:16
  • like 추천하기
  • view 70
rating 0점

안녕하세요

 

본 제품은 아두이노 로봇에 장착되는 아두이노 팀에서 보급중인 TFT LCD와 다른 제품이며 아두이노 SW에 포함된 예제코드로 동작되지 않습니다.

 

해당 제품은 아래의 튜토리얼 페이지에 연결법 및  사용될 라이브러리 및 예제소스가 공개되어 있으므로 관련 정보를 활용하여 시도해보시기 바랍니다.

https://learn.adafruit.com/adafruit-2-8-tft-touch-shield-v2/overview

 

 

더불어 블루노가 UNO 를 기본으로 한 제품이지만  UNO와 동일한 제품은 아니므로

UNO용 쉴드를 사용하시려면  좀더 사전 검토가 필요합니다.

일단은  문제 원인 파악을 용이하게 하기 위해   아두이노 UNO 보드를 이용하여 테스트를 해보시기 바랍니다.

 

아트로봇 드림

 


---------- Original Message ----------

블루노와 연결하고 예제코드를 동작하니 하얀색으로만 화면이 나옵니다.

블루노도 UNO계열로 알고있는데 호용이 안되는건지요?


아님 불량인가요? 블루노로 일반 아두이노 예제는 성공했기때문에

연결아님 LCD문제 같은데 뭐가 문제인질를 모르겠내요.


그리고 홈페이지 예제를 실행할때, 아두이노 기본 라이브러리의 Robot_Control과

충돌 문제도 있는거 같더군요.


사용 예제는 기본 예제인 그래픽 테스트입니다. 참고로 구동시키니 시리얼 모니터에서는

동장함을 확인했지만 LCD스크린 상으로는 하얀화면만 나옵니다.


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



#include "SPI.h"

#include "Adafruit_GFX.h"

#include "Adafruit_ILI9341.h"


// For the Adafruit shield, these are the default.

#define TFT_DC 9

#define TFT_CS 10


// Use hardware SPI (on Uno, #13, #12, #11) and the above for CS/DC

Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC);

// If using the breakout, change pins as desired

//Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC, TFT_MOSI, TFT_CLK, TFT_RST, TFT_MISO);


void setup() {

  Serial.begin(9600);

  Serial.println("ILI9341 Test!"); 

 

  tft.begin();


  // read diagnostics (optional but can help debug problems)

  uint8_t x = tft.readcommand8(ILI9341_RDMODE);

  Serial.print("Display Power Mode: 0x"); Serial.println(x, HEX);

  x = tft.readcommand8(ILI9341_RDMADCTL);

  Serial.print("MADCTL Mode: 0x"); Serial.println(x, HEX);

  x = tft.readcommand8(ILI9341_RDPIXFMT);

  Serial.print("Pixel Format: 0x"); Serial.println(x, HEX);

  x = tft.readcommand8(ILI9341_RDIMGFMT);

  Serial.print("Image Format: 0x"); Serial.println(x, HEX);

  x = tft.readcommand8(ILI9341_RDSELFDIAG);

  Serial.print("Self Diagnostic: 0x"); Serial.println(x, HEX); 

  

  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(ILI9341_CYAN));

  delay(500);


  Serial.print(F("Horiz/Vert Lines         "));

  Serial.println(testFastLines(ILI9341_RED, ILI9341_BLUE));

  delay(500);


  Serial.print(F("Rectangles (outline)     "));

  Serial.println(testRects(ILI9341_GREEN));

  delay(500);


  Serial.print(F("Rectangles (filled)      "));

  Serial.println(testFilledRects(ILI9341_YELLOW, ILI9341_MAGENTA));

  delay(500);


  Serial.print(F("Circles (filled)         "));

  Serial.println(testFilledCircles(10, ILI9341_MAGENTA));


  Serial.print(F("Circles (outline)        "));

  Serial.println(testCircles(10, ILI9341_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!"));


}



void loop(void) {

  for(uint8_t rotation=0; rotation<4; rotation++) {

    tft.setRotation(rotation);

    testText();

    delay(1000);

  }

}


unsigned long testFillScreen() {

  unsigned long start = micros();

  tft.fillScreen(ILI9341_BLACK);

  tft.fillScreen(ILI9341_RED);

  tft.fillScreen(ILI9341_GREEN);

  tft.fillScreen(ILI9341_BLUE);

  tft.fillScreen(ILI9341_BLACK);

  return micros() - start;

}


unsigned long testText() {

  tft.fillScreen(ILI9341_BLACK);

  unsigned long start = micros();

  tft.setCursor(0, 0);

  tft.setTextColor(ILI9341_WHITE);  tft.setTextSize(1);

  tft.println("Hello World!");

  tft.setTextColor(ILI9341_YELLOW); tft.setTextSize(2);

  tft.println(1234.56);

  tft.setTextColor(ILI9341_RED);    tft.setTextSize(3);

  tft.println(0xDEADBEEF, HEX);

  tft.println();

  tft.setTextColor(ILI9341_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(ILI9341_BLACK);


  x1 = y1 = 0;

  y2    = h - 1;

  start = micros();

  for(x2=0; x2

  x2    = w - 1;

  for(y2=0; y2

  t     = micros() - start; // fillScreen doesn't count against timing


  tft.fillScreen(ILI9341_BLACK);


  x1    = w - 1;

  y1    = 0;

  y2    = h - 1;

  start = micros();

  for(x2=0; x2

  x2    = 0;

  for(y2=0; y2

  t    += micros() - start;


  tft.fillScreen(ILI9341_BLACK);


  x1    = 0;

  y1    = h - 1;

  y2    = 0;

  start = micros();

  for(x2=0; x2

  x2    = w - 1;

  for(y2=0; y2

  t    += micros() - start;


  tft.fillScreen(ILI9341_BLACK);


  x1    = w - 1;

  y1    = h - 1;

  y2    = 0;

  start = micros();

  for(x2=0; x2

  x2    = 0;

  for(y2=0; y2


  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(ILI9341_BLACK);

  start = micros();

  for(y=0; y

  for(x=0; x


  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(ILI9341_BLACK);

  n     = min(tft.width(), tft.height());

  start = micros();

  for(i=2; i

    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(ILI9341_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(ILI9341_BLACK);

  start = micros();

  for(x=radius; x

    for(y=radius; y

      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

    for(y=0; y

      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(ILI9341_BLACK);

  n     = min(cx, cy);

  start = micros();

  for(i=0; i

    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(ILI9341_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(ILI9341_BLACK);

  w     = min(tft.width(), tft.height());

  start = micros();

  for(i=0; i

    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(ILI9341_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;

}

 

file
password 삭제하려면 비밀번호를 입력하세요.
댓글 수정

password :

/ byte

비밀번호 : 확인 취소

댓글 입력

commentsname : password : 관리자 답변 보기

/ byte

왼쪽의 문자를 공백없이 입력하세요.(대소문자구분)

회원에게만 댓글 작성 권한이 있습니다.

관련 글 보기

관련글 모음
번호 상품명 제목 작성자 작성일 조회
15785 [TA1651] 아두이노용 2.8" 터치쉴드 (2.8" TFT Touch Shield for Arduino with Resistive Touch Screen ) 입고 문의 윤승환 2016-07-03 271
15787 [TA1651] 아두이노용 2.8" 터치쉴드 (2.8" TFT Touch Shield for Arduino with Resistive Touch Screen ) 입고 문의 아트로봇CT 2016-07-04 229
14928 [TA1651] 아두이노용 2.8" 터치쉴드 (2.8" TFT Touch Shield for Arduino with Resistive Touch Screen ) Initializing SD card...failed! 김진성 2015-10-10 5
14935 [TA1651] 아두이노용 2.8" 터치쉴드 (2.8" TFT Touch Shield for Arduino with Resistive Touch Screen ) Initializing SD card...failed! 아트로봇CT 2015-10-12 2
14939 [TA1651] 아두이노용 2.8" 터치쉴드 (2.8" TFT Touch Shield for Arduino with Resistive Touch Screen ) Initializing SD card...failed! 김진성 2015-10-12 3