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를 이용하면 깔끔하게 출력할 수 있을거 같다.
소스를 보면 주석처리로 배경화면이나 선 굵기 등을 설정할 수 있다.
'개발 > 아두이노' 카테고리의 다른 글
[아두이노] TFT LCD 구동소스 (0) | 2014.12.09 |
---|---|
[아두이노] 지문인식 모듈 구동 소스 (0) | 2014.12.09 |
[아두이노] LCD 동작소스코드 (0) | 2014.12.09 |
[아두이노] 타이머카운터, 타이머인터럽트 소스코드 (내부인터럽트) (2) | 2014.12.09 |
[아두이노] 블루투스 통신 소스 (0) | 2014.12.09 |