[E-01] 한글 표시하기
LED_config.h
#ifndef _LED_CONFIG_H_ // 헤더 파일의 중복 포함 방지
#define _LED_CONFIG_H_
// 매트릭스 디스플레이 설정
#define MATRIX_WIDTH 32 // LED 매트릭스의 가로 크기를 정의 (LED의 가로 픽셀 수)
#define MATRIX_HEIGHT 16 // LED 매트릭스의 세로 크기를 정의 (LED의 세로 픽셀 수)
// 전체 디스플레이 영역 설정
#define TOTAL_WIDTH 32 // 전체 디스플레이의 가로 크기 (모듈 연결을 고려한 값, 현재는 단일 모듈)
#define TOTAL_HEIGHT 16 // 전체 디스플레이의 세로 크기 (모듈 연결을 고려한 값, 현재는 단일 모듈)
/* LED MATRIX 설정
ESP32-HUB75 매트릭스 라이브러리 사용 시 매트릭스 객체를 외부에서 참조 가능하도록 선언
extern 키워드를 사용하여 다른 소스 파일에서 이 객체를 정의 및 사용할 수 있도록 지정
*/
// #include <ESP32-HUB75-MatrixPanel-I2S-DMA.h>
// extern MatrixPanel_I2S_DMA *display;
/* NeoPixel MATRIX 설정
FastLED_NeoMatrix 객체를 외부에서 참조 가능하도록 extern으로 선언
다른 소스 파일에서 이 객체를 정의 및 사용할 수 있도록 지정
*/
#include <FastLED_NeoMatrix.h>
extern FastLED_NeoMatrix *display;
#endif // 헤더 파일의 중복 포함 방지를 위한 조건부 컴파일 종료
다음은 neo_kor.ino 내용입니다.
#include <FastLED_NeoMatrix.h> // FastLED NeoMatrix 라이브러리를 포함합니다.
// 이 라이브러리는 WS2812 기반 LED 매트릭스에 FastLED를 사용하여 효과적으로 제어할 수 있게 해줍니다.
#include "LED_config.h" // LED 설정 파일을 포함합니다.
// MATRIX_WIDTH, MATRIX_HEIGHT 같은 매트릭스 크기 정보가 이 파일에 정의되어 있다고 가정합니다.
#include "EURK_Arduino.h" // EURK_Arduino 헤더 파일을 포함합니다.
// EURK_putsxy 함수가 정의된 파일로, 문자열을 특정 좌표에 출력하는 데 사용됩니다.
#define MATRIX_PIN 17 // LED 매트릭스에 연결된 핀 번호를 정의합니다.
// 이 핀을 통해 데이터 신호가 LED로 전송됩니다.
#define MATRIX_TYPE NEO_MATRIX_TOP + NEO_MATRIX_LEFT + NEO_MATRIX_ROWS + NEO_MATRIX_PROGRESSIVE
// 매트릭스의 배치를 정의합니다.
// - NEO_MATRIX_TOP: 매트릭스가 위쪽부터 시작됨.
// - NEO_MATRIX_LEFT: 매트릭스의 시작점이 왼쪽임.
// - NEO_MATRIX_ROWS: 매트릭스가 행(row) 기반으로 배열됨.
// - NEO_MATRIX_PROGRESSIVE: LED가 순차적으로 연결됨.
CRGB leds[MATRIX_WIDTH * MATRIX_HEIGHT];
// CRGB 객체 배열을 선언합니다.
// 각 요소는 매트릭스의 한 픽셀에 해당하며, RGB 색상 값을 저장합니다.
FastLED_NeoMatrix *display = new FastLED_NeoMatrix(leds, MATRIX_WIDTH, MATRIX_HEIGHT, MATRIX_TYPE);
// FastLED_NeoMatrix 객체를 동적으로 생성합니다.
// 이 객체는 LED 매트릭스의 크기와 배치를 기반으로 초기화되며, 매트릭스를 제어할 수 있게 해줍니다.
void setup() {
Serial.begin(115200);
// USB 직렬 통신을 초기화합니다. 디버깅 정보를 출력하기 위해 사용됩니다.
FastLED.addLeds<WS2812, MATRIX_PIN, GRB>(leds, MATRIX_WIDTH * MATRIX_HEIGHT);
// FastLED 라이브러리를 사용하여 WS2812 LED를 초기화합니다.
// - WS2812: 사용되는 LED 타입.
// - MATRIX_PIN: 데이터를 출력할 핀 번호.
// - GRB: LED의 색상 순서를 정의합니다.
display->begin();
// LED 매트릭스 디스플레이를 초기화합니다.
display->setTextWrap(false);
// 텍스트 줄바꿈을 비활성화합니다. 텍스트가 화면 끝에 도달하면 잘립니다.
display->setBrightness(50);
// LED의 밝기를 50으로 설정합니다. (0~255)
display->fillScreen(0);
// 화면을 초기화합니다. 모든 픽셀을 검은색(꺼짐)으로 설정합니다.
Serial.println("USB CDC On Boot.");
// USB CDC(Communication Device Class)가 부팅되었음을 직렬 모니터에 출력합니다.
}
void loop() {
// 매트릭스에 텍스트를 출력하는 루프입니다.
EURK_putsxy(0, 0, "비젼밸류", display->Color(0, 255, 0), 1);
// EURK_putsxy는 다음을 수행합니다:
// - (0, 0): 텍스트 출력 좌표 (x, y).
// - "비젼밸류": 출력할 문자열.
// - display->Color(0, 255, 0): 텍스트 색상 (녹색).
// - 1: 글자 크기 (확대 비율).
display->show();
// 매트릭스에 변경된 내용을 즉시 반영합니다.
delay(100);
// 100밀리초 동안 대기합니다. (0.1초)
}
댓글