개발/아두이노

[아두이노] TFT LCD 그래프 출력 소스

두노이노 2014. 12. 9. 21:02

TFT LCD로 많은것을 표현할 수 있지만 이번에는 제공되는 라이브러리를 이용하여서 그래프를 그려보자.

 

어떠한 센서값을 출력하여서 그래프를 그린다.

 

TFT LCD 세팅에 대한 내용은 이전 게시글을 보길 바란다.

 

<소스>

 

#include <TFT.h>  // Arduino LCD library
#include <SPI.h>

// pin definition for the Uno
#define cs   10
#define dc   9
#define rst  8

// pin definition for the Leonardo
// #define cs   7
// #define dc   0
// #define rst  1

TFT TFTscreen = TFT(cs, dc, rst);

// position of the line on screen
int xPos = 0;

void setup() {
  // initialize the serial port
  Serial.begin(9600);

  // initialize the display
  TFTscreen.begin();

  // clear the screen with a pretty color
  TFTscreen.background(255, 255, 255);
}

void loop() {
  // read the sensor and map it to the screen height
  int sensor = analogRead(A0);
  int drawHeight = map(sensor, 0, 1023, 0, TFTscreen.height());

 

  //센서값을 시리얼 모니터로 출력해줍니다.
  Serial.print("ADC 0 = ");
  Serial.print(sensor);
  Serial.print("   DrawHeight = ");
  Serial.println(drawHeight);

 

  // draw a line in a nice color
  TFTscreen.stroke(0, 0, 0);  //라인의 색깔 RGB 값을 넣으시면 됩니다.

  TFTscreen.line(xPos, TFTscreen.height() - drawHeight, xPos, TFTscreen.height()-drawHeight-2);   //제일 마지막부분 -2 이 값을 조절하시면  선의 두께를 조절할 수 있습니다. (-1은 1픽셀, -4는 4픽셀..)
  // if the graph has reached the screen edge
  // erase the screen and start again
  if (xPos >= 160) {
    xPos = 0;
    TFTscreen.background(255, 255, 255);  // 배경색깔을 넣을 수 있습니다.
  }
  else {
    // increment the horizontal position:
    xPos++;
  }

  delay(16);
}

 

 

 

</소스>

 

 

위의 소스를 이용하면 TFT LCD에 센서값을 그래프로 그려낼 수 있다.

 

간단하게 압력센서를 이용하여서 영상을 찍어 보았다.






픽셀이 너무 낮아서 깔끔한 구현은 힘들다.

 

고해상도나 좀 더 큰 LCD를 이용하면 깔끔하게 출력할 수 있을거 같다.

 

소스를 보면 주석처리로 배경화면이나 선 굵기 등을 설정할 수 있다.