이제 TFT LCD의 touch 동작을 확인할 차례이다.
1. touch 라이브러리 설치
먼저 Adafruit touchscreen 라이브러리 설치가 필요하다. 아두이노의 라이브러리 매너저를 통해 라이브러리 설치를 진행한다.
2. touch 예제
라이브러리 설치가 완료된 후 touch를 확인하기 위해 예제를 연다.
다음과 같이 touch 좌표를 입력 받기 위한 pin 정보를 수정한 후 코드를 write 한다.
*pin 정보는 다음 글에 기재한 pin map을 참고한다.
2021.05.11 - [BerryMixLab/Arduino Tutorial] - Arduino Tutorial - 3. TFT LCD 모듈 연결
화면 이곳저곳을 터치하면 값이 변하고 정상적으로 터치가 인식되는 것을 알 수 있다.
하지만 변환된 좌표 값이 정상적이지는 않아 보인다. 제대로 Touch를 설정하고 제대로 동작을 확인하기 위해서는 몇 가지 라이브러리가 더 필요하다.
3. 추가 라이브러리 설치
아두이노 라이브러리매니저에서 다음 라이브러리를 모두 설치한다.
● Adafruit gfx
● Adafruit tftlcd
a. Adafruit gfx 라이브러리 설치
b. Adafruit tftlcd 라이브러리 설치
4. 예제 응용
이제 예제를 활용해 touch에 따라 TFT LCD에 정보를 표시해볼 차례이다. pin 정보를 수정하고 업로드를 시도하자. 하지만 예상과는 달리 예제를 컴파일 하면 의미를 해석하고 싶지 않은 오류들을 출력한다.
동작하지도 않는 예제를 왜 제공하는지 따져 물을 수 있지만 현재로서 그것은 능력 밖의 일이다. 그래서 다른 방법을 통해 예제의 코드를 수행해 보았다. 방법은 다음과 같다.
ESP32 utftdemo 예제에
Adafruit tftlcd의 tftpaint 예제를
적당히 붙여 넣기 하는 것.
말은 쉽다. 하지만 시도에는 시행 착오가 따른다. 그래서 성공한 예제를 첨부한다.
코드에 별도의 주석은 없으며 예제 실행을 위해 직접 수정한 부분 중 중요하게 생각하는 내용만 일부 별도로 기재한다.
a. setup()
analogReadResolution(10); // ADC 해상도 범위를 10bit로 설정해야 touch 영역이 정상적으로 인식됨.
// Setup the LCD
myGLCD.init(0x9431); //본 글에서 사용하고 있는 TFT LCD의 IC인 ILI9431를
//명시해야 정상적으로 초기화가 진행된다.
b. loop()
//p.x = map(p.x, TS_MINX, TS_MAXX, myGLCD.width(), 0); // 기존 코드
p.x = map(p.x, TS_MINX, TS_MAXX, 0, myGLCD.width()); // 좌표 값을 반전 시켜야
// touch가 정상적으로
// TFT LCD에 반영이 된다.
*ADC 해상도 관련 내용은 다음글에 자세하게 기록해 두었다.
2020.10.20 - [BerryMixLab/Arduino Project] - 아두이노 프로젝트 - GPS Logger 만들기
다운로드한 예제를 컴파일해 다음과 같은 화면이 나타나면 touch를 확인해 볼 수 있다.
이제 약간의 응용만 가능하다면 touch를 통해 ESP32를 제어할 준비가 끝났다. 여기까지 아무런 문제가 없다면 다음으로 넘어가자.
'BerryMixLab > Arduino Tutorial' 카테고리의 다른 글
Arduino Tutorial - 6. TFT LCD에 GPS 데이터 출력 (0) | 2021.06.09 |
---|---|
Arduino Tutorial - 5. GPS 모듈 연결 (0) | 2021.05.17 |
Arduino Tutorial - 3. TFT LCD 모듈 연결 (0) | 2021.05.11 |
Arduino Tutorial - 2. Hello world (Serial 통신) (0) | 2021.05.11 |
Arduino Tutorial - 1. GPS Logger 개발 준비 (2) | 2020.10.20 |