아두이노 #56 2.4inch TFT LCD 초기화 설정 및 시작하기
Lucy Archive
Lucy / Facilitate4U
2020. 12. 15. 02:36

Arduino TFT LCD 초기화 설정 및 Hello World! 출력

이번 포스트에서는

TFT LCD를 사용하기 위한 초기화 코드에 대해 알아보고, 간단하게 Hello World! 문자를 출력하는 법

을 소개합니다. 

MCU FRIEND 2.4inch TFT LCD

TFT LCD 관련 포스트에서 사용되는 모듈은 MCUFRIEND사의 TFT LCD Shield입니다. 외형은 아래 그림과 같고 Arduino 보드와 적층형으로 연결이 가능합니다.

아두이노 2.4inch TFT LCD

스펙

MCU Friend TFT LCD 의 주요 사양은 아래와 같습니다.

  • Screen Size : 2.4Inch
  • Resolution : 240 x 320 Pixel
  • Color : 262K
  • Interface : MCU Parallel or RGB
  • LCD Driver IC : Himax HX8347-D (아마도..)

라이브러리

위 TFT LCD를 동작하기 위해 아래의 2가지를 라이브러리를 기본적으로 사용합니다. 가지고 있는 TFT LCD가 Adafruit의 부품인 경우 MCUFRIEND_kbv.h 라이브러리가 아닌 Adafruit_TFTLCD.h 라이브러리를 사용해서 해당 라이브러리에서 지원하는 함수대로 코드를 작성해야합니다. 제조사마다 라이브러리가 차이 나는 이유는 TFT LCD 모듈에 사용되는 주된 이유는 Graphic Driver IC가 다르기 때문입니다. 

  • Adafruit_GFX.h
  • MCUFRIEND_kbv.h

Adafruit_GFX

Adafruit_GFX 라이브러리는 Adafruit에서 만든 라이브러리로 LCD, OLED, LED Matrix 등에 사용될 수 있는 그래픽 기능이 포함되어 있습니다. 예를들면 텍스트 폰트, 컬러, 도형 그리기 등의 메서드가 포함되어 있습니다. 

라이브러리 설치 방법은 아두이노 라이브러리 매니저에서 GFX를 검색 후 Adafruit GFX Library를 찾아 설치하면 됩니다. 

Adafruit GFX Library 설치

MCUFRIEND_kbv

MCUFRIEND_kbv 라이브러리는 MCUFRIEND 용 TFT LCD 드라이버 설정을 지원하는 라이브러리입니다. 그래픽 관련 기능은 Adafruit_GFX 라이브러리를 참조하여 사용하도록 설정되어 있습니다. 이런 이유로, Adafruit_GFX 라이브러리가 함께 설치되어 있어야 TFT LCD를 정상적으로 사용 가능합니다. 

라이브러리 설치 방법은 아두이노 라이브러리 매니저에서 MCUFRIEND_KBV 로 검색해서 설치합니다.

MCUFRIEND_kbv 라이브러리 설치

TFT LCD 초기화

MCUFRIEND_kbv tft 클래스 생성 및 초기화

MCUFRIEND_kbv 클래스 객체 생성은 아래의 함수를 사용할 수 있습니다. 아두이노 우노와 같은 표준 핀 맵과 해당 TFT LCD Shield를 사용하는 경우 매개변수가 없는 MCUFRIEND_kbv 로만 객체를 생성해도 됩니다. 

  • MCUFRIEND_kbv tft(CS, RS, A1, RD, RST)
  • MCUFRIEND_kbv tft

※ CS, RS, WR, RD, RST는 해당되는 아두이노 핀번호를 입력해야합니다.

LCD 실행

장치로부터 ID를 불러와, 해당 ID의 장치를 실행하도록 합니다. 같은 제조사의 2.4inch TFT LCD 이더라도 버전에 따라 다른 ID값을 가집니다. 정상적인 ID로 tft.begin() 함수를 실행해야 정상 동작합니다. 제품에 따라 ID를 직접 입력하는 경우 있습니다. 

  • uint16_t ID = tft.readID(); 장치의 ID를 불러와 ID변수에 저장
  • tft.begin(ID); TFT LCD 실행 - 직접 입력 가능

화면 방향 설정

아래의 함수로 화면의 방향을 0º, 90º, 180º, 270º 로 설정할 수 있습니다.

  • tft.setRotation(r); 
    • r = 0 : 0º
    • r = 1 : 90º
    • r = 2 : 180º
    • r = 3 : 270º

LCD 리셋

tft.reset() 함수를 실행하면 LCD 모듈을 Reset 합니다. Reset을 하고 나면 화면이 초기화되고, LCD 동작을 위해 새로운 설정이 필요합니다.

TFT LCD 초기화 요약

아래 코드는 TFT_LCD를 사용하기 위한 기본적인 설정 코드입니다. 당연히 더 많은 코드가 추가될 수 있습니다.

#include "Adafruit_GFX.h"
#include "MCUFRIEND_kbv.h"   // Hardware-specific library

//MCUFRIEND_kbv tft(A3, A2, A1, A0, A4);
MCUFRIEND_kbv tft;

void setup()
{
  uint16_t ID = tft.readID();
  tft.begin(ID);
  tft.reset();
  tft.setRotation(0);
}

 

Hello world! 출력하기

LCD 화면에 Hello World! 를 출력하기 위해 void loop() 문에 텍스트 출력 창을 출력하는 코드를 추가합니다.

#include "Adafruit_GFX.h"
#include "MCUFRIEND_kbv.h"   // Hardware-specific library

//MCUFRIEND_kbv tft(A3, A2, A1, A0, A4);
MCUFRIEND_kbv tft;

void setup()
{
  uint16_t ID = tft.readID();
  tft.reset();
  tft.begin(ID);
  tft.setRotation(0);
}

void loop()
{
  tft.fillScreen(TFT_BLACK);
  tft.setTextColor(TFT_WHITE);
  tft.setTextSize(2);
  tft.println("Hello world!"); 
  while(1);
}

위와 같이 코드를 실행하면 아래 그림과 같이 LCD 화면에 Hello World! 문자가 출력됩니다.

TFT LCD Hello World! 출력

 


마무리

이번 포스트에서 LCD 초기화 설정 코드에 대해 알아보고, Hello World! 출력하는 방법을 소개하였습니다. 이후의 포스트는 텍스트 출력 방법, 도형 출력 방법, 이미지(bmp) 출력 방법을 정리할 예정입니다.

끝까지 읽어 주셔서 감사합니다.

관련포스트

👉 아두이노 TFT LCD 관련글 목록 보기

👉 아두이노 디스플레이 장치 목록 보기

👉 아두이노 관련글 전체 목록 보기