ESP32 C3 Super Mini LED 매트릭스

도트 매트릭스 디스플레이라고도 불리는 LED 매트릭스 디스플레이는 텍스트와 숫자를 표시하는 저렴하고 쉬운 방법입니다. 이 튜토리얼에서는 단 세 개의 신호선만으로 ESP32 C3 Super Mini로 MAX7219 LED 매트릭스를 구동하는 방법을 보여줍니다.

이 튜토리얼에서 배울 내용:

그 후에는 16x8 또는 64x8 LED 매트릭스 같은 다른 크기에 맞게 코드를 쉽게 수정할 수 있습니다.

ESP32 C3 Super Mini - LED 매트릭스

필요한 하드웨어

1×ESP32 C3 Super Mini 아마존
1×USB 케이블 타입-A to 타입-C (USB-A PC용) 쿠팡 | 아마존
1×USB 케이블 타입-C to 타입-C (USB-C PC용) 아마존
1×FC-16 LED Matrix 32x8 쿠팡 | 아마존
1×FC-16 LED Matrix 8x8 쿠팡 | 아마존
1×Generic LED Matrix 8x8 아마존
1×브레드보드 쿠팡 | 아마존
1×점퍼케이블 쿠팡 | 아마존
1×(옵션) DC 커넥터 전원 연결 잭 플러그 소켓 쿠팡 | 아마존
공개: 이 포스팅 에 제공된 일부 링크는 아마존 제휴 링크입니다. 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

LED 매트릭스에 대하여

LED 매트릭스 디스플레이

LED 매트릭스는 작은 칩으로 구동되는 LED 격자로, 모든 점을 제어할 수 있습니다. ESP32 C3 Super Mini에서는 MAX7219 기반 LED 매트릭스가 가장 인기 있는 선택입니다.

주요 특징:

  • 블록: LED 매트릭스의 기본 단위는 하나의 블록입니다.
  • 블록 내부: 각 블록에는 8x8 LED 매트릭스(LED 64개)와 MAX7219 드라이버 하나가 있습니다.
  • 두 가지 형태: 일반(generic) 모듈과 FC-16 모듈, 두 가지 인기 있는 블록 형태가 있습니다.
  • 단일 또는 여러 개: LED 매트릭스는 하나의 블록일 수도 있고, 데이지 체인으로 연결된 여러 블록일 수도 있습니다.
  • 완제품: 미리 조립된 다중 블록 LED 매트릭스(예: 4-in-1 또는 8-in-1)를 구매할 수 있습니다.
  • 직접 만들기: 블록을 따로 구매하여 원하는 크기로 연결할 수도 있습니다.
  • 코드에서: ESP32 C3 Super Mini 코드에서 LED 매트릭스의 크기를 선언합니다.

기술 사양:

  • 드라이버 칩: MAX7219
  • 공급 전압: 5V
  • 로직 레벨: ESP32 C3 Super Mini의 3.3V 신호로 작동합니다
  • 인터페이스: SPI (신호선 세 개: DIN, CS, CLK)
  • 밝기 단계: 0부터 15까지 16단계
  • 소비 전류: 최대 밝기에서 디스플레이당 최대 약 1A

핀아웃

LED 매트릭스 핀아웃

LED 매트릭스는 하나 이상의 블록으로 구성됩니다. 각 블록에는 두 개의 핀 그룹이 있습니다.

입력 핀 그룹:

  • VCC: 5V에 연결합니다.
  • GND: GND에 연결합니다.
  • DIN: 데이터 핀입니다. ESP32 C3 Super Mini의 GPIO 핀에 연결합니다.
  • CS: 칩 선택(Chip Select)입니다. ESP32 C3 Super Mini의 GPIO 핀에 연결합니다.
  • CLK: 클럭 핀입니다. ESP32 C3 Super Mini의 GPIO 핀에 연결합니다.

출력 핀 그룹:

  • VCC: 다음 모듈의 입력 핀 그룹의 VCC에 연결합니다.
  • GND: 다음 모듈의 입력 핀 그룹의 GND에 연결합니다.
  • DOUT: 데이터 출력(Data Out)으로, 다음 모듈의 입력 핀 그룹의 DIN 핀에 연결합니다.
  • CS: 다음 모듈의 입력 핀 그룹의 CS에 연결합니다.
  • CLK: 다음 모듈의 입력 핀 그룹의 CLK에 연결합니다.

배선 다이어그램

ESP32 C3 Super Mini는 SPI로 LED 매트릭스와 통신하므로 신호선 세 개만 있으면 됩니다.

LED 매트릭스 핀 ESP32 C3 Super Mini 핀
VCC 5V (외부 전원)
GND GND
DIN GPIO6 (MOSI)
CS GPIO7
CLK GPIO4 (SCK)
  • 참고: GPIO4(SCK)와 GPIO6(MOSI)는 하드웨어 SPI 핀입니다. 그대로 유지하세요.
  • 참고: GPIO7은 CS 핀입니다. 코드에서도 함께 변경한다면 다른 빈 GPIO 핀으로 바꿀 수 있습니다.
  • 참고: ESP32 C3 Super Mini의 GND와 전원 공급 장치의 GND는 반드시 서로 연결해야 합니다.
  • 참고: 디스플레이 전원을 켜기 전에 항상 VCC와 GND를 두 번 확인하세요.

LED 매트릭스가 단일 블록으로 되어 있는 경우:

  • 입력 핀 그룹을 ESP32 C3 Super Mini에 연결합니다
  • 출력 핀 그룹은 연결하지 않고 둡니다
ESP32 C3 Super Mini 8x8 LED 매트릭스 fc-16 배선 다이어그램

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

ESP32 C3 Super Mini 8x8 LED 매트릭스 일반형 배선 다이어그램

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

LED 매트릭스가 미리 조립된 다중 블록 모듈인 경우:

  • 입력 핀 그룹을 ESP32 C3 Super Mini에 연결합니다
  • 출력 핀 그룹은 연결하지 않고 둡니다
ESP32 C3 Super Mini LED 매트릭스 디스플레이 배선 다이어그램

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

여러 블록으로 LED 매트릭스를 직접 만드는 경우:

  • 첫 번째 블록의 입력 핀 그룹을 ESP32 C3 Super Mini에 연결합니다
  • 각 블록의 출력 핀 그룹을 다음 블록의 입력 핀 그룹에 연결합니다
  • 마지막 블록의 출력 핀 그룹은 연결하지 않고 둡니다
ESP32 C3 Super Mini 32x8 LED 매트릭스 fc-16 배선 다이어그램

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

WARNING

디스플레이는 많은 전류를 소비하며, 최대 밝기에서 최대 1A까지 소비합니다.

  • ESP32 C3 Super Mini의 5V 핀으로 LED 매트릭스에 전원을 공급하지 마세요.
  • 대신 외부 5V 전원 공급 장치를 사용하세요.
  • ESP32 C3 Super Mini와 LED 매트릭스는 같은 5V 전원 어댑터를 공유할 수 있습니다.

LED 매트릭스 프로그래밍 방법

MAX7219를 직접 제어하는 것은 어렵지만, 라이브러리를 사용하면 간단해집니다. 아래는 LED 매트릭스용 ESP32 C3 Super Mini 코드를 작성하는 단계입니다.

  • 라이브러리를 포함합니다:
#include <MD_Parola.h> #include <MD_MAX72xx.h>
  • 사용하는 하드웨어를 라이브러리에 알려줍니다: GENERIC_HW 또는 FC16_HW.
#define HARDWARE_TYPE MD_MAX72XX::FC16_HW
  • 사용하는 LED 블록 수를 설정합니다. 예를 들어, 4-in-1 LED 매트릭스는 블록이 4개입니다.
#define MAX_DEVICES 4
  • LED 매트릭스의 CS 핀에 연결되는 ESP32 C3 Super Mini 핀을 설정합니다. 예: GPIO7.
#define CS_PIN 7
  • LED 매트릭스 디스플레이용 MD_Parola 클래스의 새 인스턴스를 생성합니다.
MD_Parola ledMatrix = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);
  • Setup() 함수를 작성합니다:
void setup() { ledMatrix.begin(); // initialize the object ledMatrix.setIntensity(0); // set the brightness of the LED matrix display (from 0 to 15) ledMatrix.displayClear(); // clear led matrix display }
  • 텍스트, 숫자 및 애니메이션 효과 표시: 다음 부분을 참조하세요.

※ 주의:

DIN과 CLK 핀은 ESP32 C3 Super Mini의 하드웨어 SPI가 처리하므로 코드에서 지정할 필요가 없습니다. 스케치에는 CS 핀만 작성합니다.

ESP32 C3 Super Mini - LED 매트릭스 코드

아래 코드는 32x8 FC-16 LED 매트릭스 디스플레이(블록 4개)용이지만, 8x8, 16x8, 64x8 및 기타 크기에 맞게 쉽게 수정할 수 있습니다.

/* * 이 ESP32 C3 Super Mini 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP32 C3 Super Mini 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp32-c3/esp32-c3-super-mini-led-matrix */ #include <MD_Parola.h> #include <MD_MAX72xx.h> #define HARDWARE_TYPE MD_MAX72XX::FC16_HW #define MAX_DEVICES 4 // 4 blocks #define CS_PIN 7 // The ESP32 C3 SuperMini pin connected to the CS pin of the LED matrix // create an instance of the MD_Parola class MD_Parola ledMatrix = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES); void setup() { ledMatrix.begin(); // initialize the LED Matrix ledMatrix.setIntensity(15); // set the brightness of the LED matrix display (from 0 to 15) ledMatrix.displayClear(); // clear LED matrix display } void loop() { ledMatrix.setTextAlignment(PA_LEFT); ledMatrix.print("Left"); // display text delay(2000); ledMatrix.setTextAlignment(PA_CENTER); ledMatrix.print("Center"); // display text delay(2000); ledMatrix.setTextAlignment(PA_RIGHT); ledMatrix.print("Right"); // display text delay(2000); ledMatrix.setTextAlignment(PA_CENTER); ledMatrix.setInvert(true); ledMatrix.print("Invert"); // display text inverted delay(2000); ledMatrix.setInvert(false); ledMatrix.print(1234); // display number delay(2000); }

이 코드가 하는 일:

  • ESP32 C3 Super Mini에서 CS 핀을 GPIO7로 설정합니다
  • 디스플레이에 FC-16 블록이 4개 있다고 라이브러리에 알려줍니다
  • 디스플레이를 시작하고 밝기를 최대값인 15로 설정합니다
  • 같은 텍스트를 왼쪽, 가운데, 오른쪽 정렬로 표시합니다
  • 반전된 텍스트를 표시한 다음 숫자 1234를 표시합니다

빠른 단계

  • ESP32 C3 Super Mini가 처음이신가요? 먼저 ESP32 C3 슈퍼 미니 - 시작하기 튜토리얼을 완료하여 개발 환경을 설정하세요.
  • 부품 연결: 위 다이어그램과 같이 LED 매트릭스를 ESP32 C3 Super Mini에 연결합니다.
  • 디스플레이 전원 공급: 외부 5V 전원을 사용하고 접지를 서로 연결합니다.
  • 보드 연결: USB Type-C 케이블로 ESP32 C3 Super Mini를 컴퓨터에 연결합니다.
  • IDE 열기: 컴퓨터에서 Arduino IDE를 실행합니다.
  • 보드 선택: Tools > Board에서 ESP32 C3 Super Mini가 선택되어 있는지 확인합니다.
  • 포트 선택: ESP32 C3 Super Mini의 COM 포트를 선택합니다.
  • 라이브러리 매니저 열기: Arduino IDE 왼쪽 탐색 바에 있는 Library Manager 아이콘을 클릭합니다.
  • 라이브러리 검색: “MD_Parola”를 입력한 다음 MD_Parola 라이브러리를 찾습니다.
  • 설치: Install 버튼을 클릭합니다.
  • Search for MD_Parola created by majicDesigns and click the Install button.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32C3 Dev Module
Library Manager
Type:
All
Topic:
All
MD_Parola by majicDesigns
Implemented using the MD_MAX72xx library for hardware control. Provides functions to simplify the implementation of text special effects on the LED matrix. More info
3.7.2
INSTALL
Newbiely.ino
···
1 void setup() {
Output
Serial Monitor
Ln 1, Col 1
ESP32C3 Dev Module on COM15
1
  • 종속 라이브러리 설치: “MD_MAX72XX” 라이브러리를 설치하라는 메시지가 나타납니다. Install All 버튼을 클릭합니다.
  • 코드 복사: 위 코드를 복사하여 Arduino IDE에서 엽니다.
  • 업로드: Upload 버튼을 클릭하여 코드를 ESP32 C3 Super Mini에 업로드합니다.
  • 확인: LED 매트릭스 디스플레이에 텍스트와 숫자가 나타나는 것을 확인합니다.
  • 시리얼 모니터: 나중에 Serial 출력을 추가하는 경우, 시리얼 모니터의 보드레이트를 115200으로 설정하세요.
  • 전문가 팁: 문자가 좌우 반전되거나 반으로 잘려 보이면 HARDWARE_TYPE을 FC16_HW에서 GENERIC_HW로 변경하세요.

ESP32 C3 Super Mini LED 매트릭스 코드 – 스크롤 텍스트

긴 메시지는 작은 LED 매트릭스에 다 들어가지 않으므로, 대신 스크롤할 수 있습니다.

아래 ESP32 C3 Super Mini 코드는 LED 매트릭스 디스플레이에 메시지를 스크롤합니다.

/* * 이 ESP32 C3 Super Mini 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP32 C3 Super Mini 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp32-c3/esp32-c3-super-mini-led-matrix */ #include <MD_Parola.h> #include <MD_MAX72xx.h> #define HARDWARE_TYPE MD_MAX72XX::FC16_HW #define MAX_DEVICES 4 // 4 blocks #define CS_PIN 7 // The ESP32 C3 SuperMini pin connected to the CS pin of the LED matrix // create an instance of the MD_Parola class MD_Parola ledMatrix = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES); void setup() { ledMatrix.begin(); // initialize the object ledMatrix.setIntensity(15); // set the brightness of the LED matrix display (from 0 to 15) ledMatrix.displayClear(); // clear led matrix display ledMatrix.displayScroll("ESP32", PA_CENTER, PA_SCROLL_LEFT, 100); } void loop() { if (ledMatrix.displayAnimate()) { ledMatrix.displayReset(); } }

이 코드가 하는 일:

  • 같은 GPIO7 CS 핀과 같은 4블록 구성을 사용합니다
  • Setup()에서 텍스트와 속도를 넣어 displayScroll()을 한 번 호출합니다
  • 메시지를 디스플레이 전체에 걸쳐 오른쪽에서 왼쪽으로 스크롤합니다
  • Loop()에서 displayAnimate()를 호출하여 텍스트를 한 단계씩 이동시킵니다
  • 애니메이션을 리셋하여 메시지가 계속 반복되도록 합니다
  • 참고: displayScroll()의 마지막 숫자는 밀리초 단위의 속도입니다. 숫자가 작을수록 더 빠르게 스크롤됩니다.

더 많은 텍스트 효과는 MD_Parola 라이브러리 레퍼런스를 방문하세요.

응용 분야 및 프로젝트 아이디어

ESP32 C3 Super Mini와 LED 매트릭스로 만들 수 있는 쉬운 프로젝트들입니다.

  • 스크롤 이름표: 착용형 디스플레이에 이름이나 인사말을 표시합니다.
  • 탁상 시계: ESP32 C3 Super Mini의 Wi-Fi 시간을 이용해 LED 매트릭스에 시간을 표시합니다.
  • 날씨 전광판: 인터넷에서 온도를 가져와 디스플레이에 스크롤합니다.
  • 실내 온도계: DHT11 또는 DHT22 측정값을 큰 숫자로 표시합니다.
  • 카운트다운 타이머: 누구나 멀리서도 읽을 수 있는 주방용 또는 운동용 카운트다운을 표시합니다.
  • 알림판: 휴대폰에서 Wi-Fi로 보낸 새 메시지를 스크롤합니다.

도전 과제

ESP32 C3 Super Mini와 LED 매트릭스로 연습할 수 있는 작은 도전 과제들을 해보세요.

  • 쉬움: 표시되는 텍스트를 자신의 이름으로 바꿔보세요.
  • 쉬움: setIntensity()를 15에서 3으로 바꾸고 디스플레이가 어두워지는 것을 확인하세요.
  • 보통: 0부터 99까지 1초에 하나씩 숫자를 표시하는 카운터를 만들어보세요.
  • 보통: 스크롤 방향을 PA_SCROLL_RIGHT로 바꾸고 속도를 변경해보세요.
  • 고급: GPIO3에 푸시 버튼을 추가하여 두 가지 다른 메시지를 전환하도록 해보세요.
  • 고급: ESP32 C3 Super Mini를 Wi-Fi에 연결하고 웹 페이지에서 입력한 메시지를 스크롤해보세요.

관련 튜토리얼