본문 바로가기
  • test
[E-02] LED Panel 32x16 (Arduino V2.x.x)/[E-02] 한글 표시하기

[E-02] 한글 표시하기

by ledmatrix 2024. 12. 29.

[E-02] 한글 표시하기

LED_config.h 

#ifndef _LED_CONFIG_H_ // 헤더 파일의 중복 포함 방지
#define _LED_CONFIG_H_

// 매트릭스 디스플레이 설정
#define MATRIX_WIDTH  64         // LED 매트릭스의 가로 크기를 정의 (LED의 가로 픽셀 수)
#define MATRIX_HEIGHT 32         // LED 매트릭스의 세로 크기를 정의 (LED의 세로 픽셀 수)

// 전체 디스플레이 영역 설정
#define TOTAL_WIDTH  128         // 전체 디스플레이의 가로 크기 (모듈 연결을 고려한 값, 현재는 단일 모듈)
#define TOTAL_HEIGHT  32         // 전체 디스플레이의 세로 크기 (모듈 연결을 고려한 값, 현재는 단일 모듈)

/* 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 // 헤더 파일의 중복 포함 방지를 위한 조건부 컴파일 종료

 

 

led_hangul.ino

#include <ESP32-HUB75-MatrixPanel-I2S-DMA.h> // ESP32 HUB75 매트릭스 제어 라이브러리
#include "LED_config.h"                     // LED 매트릭스 설정을 포함한 사용자 정의 헤더 파일
#include "EURK_Arduino.h"                   // 사용자 정의 함수(EURK_putsxy)를 제공하는 헤더 파일

#define MATRIX_CHAIN 1   // 체인으로 연결된 매트릭스 패널의 총 개수 (현재는 1개 사용)

// MatrixPanel_I2S_DMA 클래스 객체 포인터를 초기화 (디스플레이 객체를 동적으로 생성)
MatrixPanel_I2S_DMA *display = nullptr;

void setup() {
  // 매트릭스 크기와 체인 수를 기반으로 HUB75 구성 초기화
  HUB75_I2S_CFG mxconfig(MATRIX_WIDTH, MATRIX_HEIGHT, MATRIX_CHAIN);

  // HUB75 매트릭스와 연결된 ESP32의 GPIO 핀 번호 설정
  mxconfig.gpio.r1 = 25;   // 첫 번째 스캔 라인의 빨간색 데이터 핀
  mxconfig.gpio.b1 = 26;   // 첫 번째 스캔 라인의 파란색 데이터 핀
  mxconfig.gpio.g1 = 27;   // 첫 번째 스캔 라인의 초록색 데이터 핀
  mxconfig.gpio.r2 = 21;   // 두 번째 스캔 라인의 빨간색 데이터 핀
  mxconfig.gpio.b2 = 22;   // 두 번째 스캔 라인의 파란색 데이터 핀
  mxconfig.gpio.g2 = 0;    // 두 번째 스캔 라인의 초록색 데이터 핀

  // 주소 핀 설정 (행 선택 신호)
  mxconfig.gpio.a   = 12;  // A 주소 핀
  mxconfig.gpio.b   = 5;   // B 주소 핀
  mxconfig.gpio.c   = 23;  // C 주소 핀
  mxconfig.gpio.d   = 4;   // D 주소 핀
  mxconfig.gpio.e   = -1;  // E 주소 핀 (사용하지 않음)

  // 기타 제어 핀 설정
  mxconfig.gpio.lat = 32;  // 래치 신호 핀 (데이터 잠금)
  mxconfig.gpio.oe  = 33;  // 출력 활성화 핀 (Output Enable)
  mxconfig.gpio.clk = 15;  // 클럭 신호 핀 (Clock)

  // 추가 설정
  mxconfig.clkphase = false; // 클럭 위상 설정 (false는 기본값)
  mxconfig.driver = HUB75_I2S_CFG::ICN2038S; // 매트릭스 드라이버 IC 지정 (ICN2038S)
  mxconfig.min_refresh_rate = 240;          // 최소 화면 리프레시 속도 설정 (240Hz)

  // MatrixPanel_I2S_DMA 객체를 동적으로 생성하고 초기화
  display = new MatrixPanel_I2S_DMA(mxconfig); // 디스플레이 객체 생성
  display->begin();                         // 디스플레이 초기화 (사용 준비)
  display->setTextWrap(false);              // 텍스트 줄 바꿈 비활성화
  display->setBrightness(150);              // 디스플레이 밝기 설정 (0~255, 150은 중간 밝기)
  display->clearScreen();                   // 화면 초기화 (검은색으로 채우기)
}

void loop() {
  // EURK_putsxy 함수 사용: 지정된 위치에 텍스트를 출력
  // EURK_putsxy(x, y, "텍스트", 색상, 크기):
  // - x, y: 텍스트 출력 시작 위치 (픽셀 단위)
  // - "텍스트": 출력할 문자열
  // - 색상: 텍스트 색상 (16비트 RGB565 값)
  // - 크기: 텍스트 크기 (기본 크기의 배수)
  EURK_putsxy(0, 0, "비젼밸류", display->color565(0, 255, 0), 1); 
  // "비젼밸류" 텍스트를 초록색(RGB: 0, 255, 0)으로 출력, 크기는 기본값 1

  // 출력 내용 유지 후 100ms 대기
  delay(100); // 속도 또는 화면 갱신 간격 제어 (100ms 간격)
}
 

 

 

EURK_putsxy(0, 0, "비젼밸류", display->color565(0, 255, 0), 1);

    좌표 0,0 에 "비젼밸류" 문자열을 녹색으로 1배 크기로 표시하기

 

EURK_putsxy(0, 0, "비젼밸류", display->color565(0, 255, 0), 2);

    좌표 0,0 에 "비젼밸류" 문자열을 녹색으로 2배 크기로 표시하기

 

 

댓글