ESP32 C3 Super Mini LED 매트릭스
도트 매트릭스 디스플레이라고도 불리는 LED 매트릭스 디스플레이는 텍스트와 숫자를 표시하는 저렴하고 쉬운 방법입니다. 이 튜토리얼에서는 단 세 개의 신호선만으로 ESP32 C3 Super Mini로 MAX7219 LED 매트릭스를 구동하는 방법을 보여줍니다.
이 튜토리얼에서 배울 내용:
- LED 매트릭스가 무엇이며 MAX7219 드라이버가 어떻게 작동하는지
- 8x8 LED 매트릭스를 ESP32 C3 Super Mini에 연결하는 방법
- 32x8 LED 매트릭스를 ESP32 C3 Super Mini에 연결하는 방법
- 텍스트, 숫자 및 애니메이션 효과를 표시하는 방법
- 긴 메시지를 디스플레이에 스크롤하는 방법
그 후에는 16x8 또는 64x8 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 격자로, 모든 점을 제어할 수 있습니다. 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 매트릭스는 하나 이상의 블록으로 구성됩니다. 각 블록에는 두 개의 핀 그룹이 있습니다.
입력 핀 그룹:
- 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에 연결합니다
- 출력 핀 그룹은 연결하지 않고 둡니다

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

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
LED 매트릭스가 미리 조립된 다중 블록 모듈인 경우:
- 입력 핀 그룹을 ESP32 C3 Super Mini에 연결합니다
- 출력 핀 그룹은 연결하지 않고 둡니다

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
여러 블록으로 LED 매트릭스를 직접 만드는 경우:
- 첫 번째 블록의 입력 핀 그룹을 ESP32 C3 Super Mini에 연결합니다
- 각 블록의 출력 핀 그룹을 다음 블록의 입력 핀 그룹에 연결합니다
- 마지막 블록의 출력 핀 그룹은 연결하지 않고 둡니다

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
WARNING
디스플레이는 많은 전류를 소비하며, 최대 밝기에서 최대 1A까지 소비합니다.
- ESP32 C3 Super Mini의 5V 핀으로 LED 매트릭스에 전원을 공급하지 마세요.
- 대신 외부 5V 전원 공급 장치를 사용하세요.
- ESP32 C3 Super Mini와 LED 매트릭스는 같은 5V 전원 어댑터를 공유할 수 있습니다.
LED 매트릭스 프로그래밍 방법
MAX7219를 직접 제어하는 것은 어렵지만, 라이브러리를 사용하면 간단해집니다. 아래는 LED 매트릭스용 ESP32 C3 Super Mini 코드를 작성하는 단계입니다.
- 라이브러리를 포함합니다:
- 사용하는 하드웨어를 라이브러리에 알려줍니다: GENERIC_HW 또는 FC16_HW.
- 사용하는 LED 블록 수를 설정합니다. 예를 들어, 4-in-1 LED 매트릭스는 블록이 4개입니다.
- LED 매트릭스의 CS 핀에 연결되는 ESP32 C3 Super Mini 핀을 설정합니다. 예: GPIO7.
- LED 매트릭스 디스플레이용 MD_Parola 클래스의 새 인스턴스를 생성합니다.
- Setup() 함수를 작성합니다:
- 텍스트, 숫자 및 애니메이션 효과 표시: 다음 부분을 참조하세요.
※ 주의:
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에서 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.
- 종속 라이브러리 설치: “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 매트릭스 디스플레이에 메시지를 스크롤합니다.
이 코드가 하는 일:
- 같은 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에 연결하고 웹 페이지에서 입력한 메시지를 스크롤해보세요.