본문 바로가기
  • test
[E-01] Neo Matrix (Arduino V2.xx)/[E-01] 한글 표시하기

[E-01] 한글 표시하기

by ledmatrix 2024. 12. 29.

[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초)
}
 

 

 

 

 

댓글