ESP32-WROOM + LCD12864 I2C ( 12864 IIC 4P LCD 모듈 128X64 I2C ST7567S )

naver 2025년 11월 6일

화면에 보시다시피 ESP32에 확장보드 연결한 상태이구요

확실히 이렇게 선 연결할때 확장보드가 좋기는 좋네요

저처럼 이것저것 해보실 분들은 확장보드는 필수일것 같습니다

이제 본론으로 들어가서

기존에 16글자 * 2라인 LCD1602

20글자 * 4라인 LCD2004 로

글자를 표시했는데요

해보니깐 그래픽도 있음 좋을것 같아서

위 사진속 LCD12864 제품을 구매하여 그래픽+글자

표시하는것을 성공했습니다

우선 LCD에서 나온 4핀을 ESP32 에

D22, D21, VCC, GND 에 연결했구요

아두이노 IDE에 U8g2lib 를 사용했습니다

그래서 실행한 결과 위와 같은 결과물이 나왔는데요

한글도 깔끔하게

"안녕 세상" 이라고

예쁘게 나왔네요

다만 문제는

가끔가다 위 사진처럼 깨져보이다가 다시 정상적으로 보일때가 있는데요

이건 버퍼 초기화가 안되어서 발생한 문제인것 같다고 하는데,

오늘이 이거 다룬지 2일차라서

이런 하드웨어 특성은 확인치 못했습니다

다만

u8g2.clearBuffer(); u8g2.drawBox(0, 0, 128, 64); // 전면을 지움 u8g2.sendBuffer();

버퍼를 클리어할때

drawBox 로 전체를 검정색으로 칠하면?

이런 문제를 없앨수가 있다고 하는데

이게 눈가리고 아웅인지

원래 전부 이런식으로 처리하는건지 모르겠네요

일단 성공했으니깐

이렇게 블로그에 올려봅니다

아. 그리고 제가 작성한 esp32-wroom 용 전체 소스입니다

#include <Wire.h> #include <U8g2lib.h> U8G2_ST7567_JLX12864_F_HW_I2C u8g2(U8G2_R2, U8X8_PIN_NONE); void setup() { Wire.begin(21, 22); // SDA, SCL 핀 설정 u8g2.setI2CAddress(0x3F << 1); // LCD의 주소는 0x3F u8g2.begin(); u8g2.setContrast(130); // 밝기 조정 (필요시 조절) u8g2.enableUTF8Print(); // enable UTF8 support for the Arduino print() function } void loop() { u8g2.setFont(u8g2_font_unifont_t_korean1); u8g2.setFontDirection(0); u8g2.clearBuffer(); // 버퍼 초기화 u8g2.sendBuffer(); // 버퍼 내용을 화면에 전송 delay(1000); // 초기화가 잘 되고 있는지 확인하려고 1초 텀을 주었음 u8g2.setCursor(0, 15); u8g2.print("Hello World!"); u8g2.setCursor(0, 40); u8g2.print("안녕 세상"); // 한글 출력 // 사각형 u8g2.drawFrame(0, 0, 128, 64); u8g2.sendBuffer(); // 버퍼 내용을 화면에 전송 delay(3000); // 화면출력 완료후 3초를 주어서 초기화시 텀 과 확인할 수 있게 함 }


원문: https://m.blog.naver.com/eggfocus/223887194100

태그