128X64 1.3 인치 LCD (SH1106 I2C) 모듈에 u8g2의 한글폰트 사용해서 한글 출력해보자.
간편하지만 폰트의 사이즈가 커서 공간을 많이 차지하는 단점이 있다.
그래서 옛날 도스 시절에 사용하던 조합형 한글폰트를 사용하는 방법을 찾아보아야겠다.
#include <Arduino.h>
#include <U8g2lib.h>
#ifdef U8X8_HAVE_HW_SPI
#include <SPI.h>
#endif
#ifdef U8X8_HAVE_HW_I2C
#include <Wire.h>
#endif
U8G2_SH1106_128X64_NONAME_1_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);
void setup(void) {
u8g2.begin();
u8g2.enableUTF8Print(); // enable UTF8 support for the Arduino print() function
}
void loop(void) {
u8g2.setFont(u8g2_font_unifont_t_korean2); //2026-2-4 u8g2_font_unifont_t_korean1 -> u8g2_font_unifont_t_korean2
u8g2.setFontDirection(0);
u8g2.firstPage();
do {
u8g2.setCursor(0,15);
u8g2.print("Hello World!");
u8g2.setCursor(0, 31);
u8g2.print("안녕 세상");
u8g2.setCursor(0, 44);
u8g2.print("3번 라인");
u8g2.setCursor(0, 60);
u8g2.print("넷번째 줄");
} while ( u8g2.nextPage() );
delay(1000);
}

참고 블로그 글 : https://blog.naver.com/PostView.naver?blogId=hehevnt&logNo=222789933818
u8g2_font_unifont_t_korean1 의 메모리 사용
스케치는 프로그램 저장 공간 285585 바이트(27%)를 사용. 최대 1044464 바이트.
전역 변수는 동적 메모리 29856바이트(36%)를 사용, 52064바이트의 지역변수가 남음.
u8g2_font_unifont_t_korean2 의 메모리 사용
스케치는 프로그램 저장 공간 341873 바이트(32%)를 사용. 최대 1044464 바이트.
전역 변수는 동적 메모리 29856바이트(36%)를 사용, 52064바이트의 지역변수가 남음.
u8g2_font_unifont_t_korean1폰트는 없는 글자가 좀 많음
u8g2.print() 에서 사용을 하려면
u8g2.enableUTF8Print();
설정을 해주어야 한글이 나온다. (안하면. 영문 숫자는 나오지만 한글은 안나옴)
u8g2.enableUTF8Print(); 해도 drawStr() 함수에서는 한글이 출력 되지 않는다.
728x90
'Hardware > 아두이노' 카테고리의 다른 글
| Adafruit_SH110X 사용 (0) | 2026.02.01 |
|---|---|
| 아두이노 시작하기 - 다이오드 (1) | 2024.08.22 |
| 아두이노 시작하기 - 코일 (0) | 2024.08.07 |
| 아두이노 시작하기 -VScode 환경설정 (0) | 2024.08.07 |
| 아두이노 시작하기 - IDE 설치 (0) | 2024.08.07 |
