ESP

ESP32C3 Super Mini / ST7796S TFT LCD -1

찬영_00 2025. 1. 8. 23:50

ESP-IDF로 제어하기 전에 먼저 arduino IDE로 해당 3.5 inchi TFT LCD를 제어해보겠다.

 

ESP32C3 Super mini의 기본적인건 이전 포스팅을 참고하자

https://kksp12y.tistory.com/90

 

ESP32C3 SuperMini -1

ESP32보드는 어느정도 다루어 보았지만 이번 게시물은 역시나 프로젝트를 위해 보드 하나를 더 알아가기 위해 리뷰 겸 제어를 해볼 예정이다. ESP32C3 SuperMini는 매우 작고 WiFi도 사용이 가능하여

kksp12y.tistory.com

 

일단 내가 사용하는 하드웨어를 보이겠다.

 

보드 : ESP32C3 Super Mini

디스플레이 :https://www.ebay.com/itm/204891182194

 

3.5 Inch 320x480 SPI TFT Display Serial Port Module 3-5V PCB ST7796S LCD | eBay

Chip: ST7796S. Communication Protocol: SPI. Model: TFT screen. PCB Color: Blue. Parallel Port: Yes.

www.ebay.com

 

저것을 제어하기 위해 우리는 해당 디스플레이가 어떤 드라이버를 사용하는지 알아야한다.

해당 디스플레이의 정보를 확인하자

드라이버는 ST7796S를 사용하고, 3.3V ~ 5V 에서 동작한다.

그리고 SPI를 사용한다.

 

이제 우리는 ST7796드라이버를 제어하는 라이브러리를 만든 사람들을 찾으러 떠나자

나는 다음 라이브러리를 찾았다

https://github.com/Bodmer/TFT_eSPI/tree/master

 

GitHub - Bodmer/TFT_eSPI: Arduino and PlatformIO IDE compatible TFT library optimised for the Raspberry Pi Pico (RP2040), STM32,

Arduino and PlatformIO IDE compatible TFT library optimised for the Raspberry Pi Pico (RP2040), STM32, ESP8266 and ESP32 that supports different driver chips - Bodmer/TFT_eSPI

github.com

 

위 라이브러리는 아두이노IDE에도 있기때문에 굳이 zip로 아두이노IDE에 추가하지 않아도 된다.

 

추가적으로 우리가 만져야하는게 User_Setup과 User_Setup_Select.h를 우리 보드에 맞게 핀 변경해주고, 드라이버도 우리가 사용하는 걸로 변경해줘야 한다.

설치한 TFT_eSPI 라이브러리 폴더로 가는 방법 ( 컴퓨터 마다 다르겠지만 보통 문서에 Arduino폴더가 있음 )
내 pc -> 문서 -> Arduino -> libraries 안에 있음

 

 

User_Setup.h는 다음과 같이 수정했다.

.
.
.
// Only define one driver, the other ones must be commented out
//#define ILI9341_DRIVER       // Generic driver for common displays
//#define ILI9341_2_DRIVER     // Alternative ILI9341 driver, see https://github.com/Bodmer/TFT_eSPI/issues/1172
//#define ST7735_DRIVER      // Define additional parameters below for this display
//#define ILI9163_DRIVER     // Define additional parameters below for this display
//#define S6D02A1_DRIVER
//#define RPI_ILI9486_DRIVER // 20MHz maximum SPI
//#define HX8357D_DRIVER
//#define ILI9481_DRIVER
//#define ILI9486_DRIVER
//#define ILI9488_DRIVER     // WARNING: Do not connect ILI9488 display SDO to MISO if other devices share the SPI bus (TFT SDO does NOT tristate when CS is high)
//#define ST7789_DRIVER      // Full configuration option, define additional parameters below for this display
//#define ST7789_2_DRIVER    // Minimal configuration option, define additional parameters below for this display
//#define R61581_DRIVER
//#define RM68140_DRIVER
#define ST7796_DRIVER
//#define SSD1351_DRIVER
//#define SSD1963_480_DRIVER
//#define SSD1963_800_DRIVER
//#define SSD1963_800ALT_DRIVER
//#define ILI9225_DRIVER
//#define GC9A01_DRIVER
.
.
.
// For NodeMCU - use pin numbers in the form PIN_Dx where Dx is the NodeMCU pin designation
#define TFT_MISO  5  // Automatically assigned with ESP8266 if not defined
#define TFT_MOSI  6  // Automatically assigned with ESP8266 if not defined
#define TFT_SCLK  4  // Automatically assigned with ESP8266 if not defined

#define TFT_CS    7  // Chip select control pin D8
#define TFT_DC    3  // Data Command control pin
#define TFT_RST   2  // Reset pin (could connect to NodeMCU RST, see next line)
.
.
.
// #define SPI_FREQUENCY   1000000
// #define SPI_FREQUENCY   5000000
// #define SPI_FREQUENCY  10000000
// #define SPI_FREQUENCY  20000000
//#define SPI_FREQUENCY  27000000
//#define SPI_FREQUENCY  40000000
// #define SPI_FREQUENCY  55000000 // STM32 SPI1 only (SPI2 maximum is 27MHz)
#define SPI_FREQUENCY  80000000
.
.
.

 

나머진 그냥 그대로 두고 배선은 다음과 같다.

 

* 참고 ( 내가 직접 올린 글인데, 보드 호환성 때문에 반복적인 재부팅이 일어나 도움 요청을 하였고, 다음을 통해 오류해결이 되었으니 반복적인 재부팅이 일어날 경우 esp32보드 패키지의 버전을 2.0.13으로 낮추자)

 https://forum.arduino.cc/t/display-error-problems-using-st7796s-drivers/1340217/4

 

Display Error Problems Using ST7796S Drivers

You need to follow to because if you paste text as an image, the advisor won't be able to copy and paste your text to suggest corrections to your issue, which is a hassle. Edit: You did it! Thanks. And I recommend to search your issue at Issues · Bodmer/T

forum.arduino.cc

 

이렇게 진행하고, TFT_graphicstest_one_lib.ino 예제를 실행하자

(코드의 길이가 길어서 github 주소 남겨둠)

https://github.com/Bodmer/TFT_eSPI/blob/master/examples/480%20x%20320/TFT_graphicstest_one_lib/TFT_graphicstest_one_lib.ino

 

TFT_eSPI/examples/480 x 320/TFT_graphicstest_one_lib/TFT_graphicstest_one_lib.ino at master · Bodmer/TFT_eSPI

Arduino and PlatformIO IDE compatible TFT library optimised for the Raspberry Pi Pico (RP2040), STM32, ESP8266 and ESP32 that supports different driver chips - Bodmer/TFT_eSPI

github.com

 

그럼 다음과 같이 실행됨을 알 수 있다.

https://youtu.be/dbZR3NlPw1Q

 

다음 포스팅에서는 디스플레이를 이용해 원하는 것을 띄워보도록 하겠다

'ESP' 카테고리의 다른 글

ESP32C3 Super Mini / ST7796S TFT LCD -3  (0) 2025.01.12
ESP32C3 Super Mini / SD리더기  (0) 2025.01.11
ESP32C3 Super Mini / ST7796S TFT LCD -2  (0) 2025.01.09
ESP-IDF를 사용하자  (0) 2025.01.07
ESP32C3 SuperMini -1  (0) 2024.12.28