ESP32 - LED 매트릭스 | ESP32 - LED Matrix
LED 매트릭스 디스플레이, 또는 LED 디스플레이, 점 매트릭스 디스플레이로도 알려져 있으며, 널리 사용됩니다. 이 튜토리얼에서는 다음을 학습할 예정입니다:
- LED 매트릭스
- ESP32를 8x8 LED 매트릭스에 연결하는 방법
- ESP32를 32x8 LED 매트릭스에 연결하는 방법
- ESP32를 사용하여 LED 매트릭스에 텍스트, 숫자, 애니메이션 효과를 표시하는 방법
그 후에는 16x8 LED 매트릭스, 64x8 LED 매트릭스 등 다른 LED 매트릭스에 코드를 쉽게 적용할 수 있습니다.
준비물
1 | × | ESP-WROOM-32 Dev Module | 쿠팡 | Amazon | |
1 | × | USB Cable Type-C | 쿠팡 | Amazon | |
1 | × | FC-16 LED Matrix 32x8 | Amazon | |
1 | × | FC-16 LED Matrix 8x8 | 쿠팡 | Amazon | |
1 | × | Generic LED Matrix 8x8 | Amazon | |
1 | × | Breadboard | 쿠팡 | Amazon | |
1 | × | Jumper Wires | Amazon | |
1 | × | (Optional) DC Power Jack | 쿠팡 | Amazon | |
1 | × | (Recommended) Screw Terminal Expansion Board for ESP32 | 쿠팡 | Amazon |
LED 매트릭스에 대하여
LED 행렬에는 여러 종류가 있습니다. ESP32와 함께, MAX7219 기반 LED 행렬이 널리 사용됩니다. MAX7219 기반 LED 행렬은 다음과 같은 특징을 가지고 있습니다:
- LED 매트릭스의 기본 단위는 블록입니다.
- 각 블록은 8x8 LED 매트릭스(64 LED)와 MAX7219 드라이버를 가지고 있습니다.
- 두 가지 인기 있는 블록 형태는 일반 모듈과 FC-16 모듈입니다.
- LED 매트릭스는 단일 블록이거나 여러 블록을 데이지 체인으로 구성할 수 있습니다.
- 여러 블록이 사전 제작된 LED 매트릭스(예: 4-in-1, 8-in-1)를 구입할 수 있습니다.
- 원하는 크기의 LED 매트릭스를 형성하기 위해 여러 블록을 구입하고 연결할 수도 있습니다.
- ESP32 코드에서 사용하는 LED 매트릭스의 크기를 선언할 것입니다.
핀배열
LED 매트릭스는 하나 또는 여러 개의 블록으로 구성됩니다. 각 블록은 두 그룹의 핀을 포함합니다:
- 입력 핀 그룹:
- VCC: 5V에 연결합니다.
- GND: GND에 연결합니다.
- DIN은 데이터 핀으로, ESP32의 아무 디지털 핀에 연결합니다.
- CS: 칩 선택으로, ESP32의 아무 디지털 핀에 연결합니다.
- CLK: 클럭 핀으로, ESP32의 아무 디지털 핀에 연결합니다.
- 출력 핀 그룹:
- VCC: 다음 모듈의 입력 핀 그룹의 VCC에 연결합니다.
- GND: 다음 모듈의 입력 핀 그룹의 GND에 연결합니다.
- DOUT: 데이터 아웃으로, 다음 모듈의 입력 핀 그룹의 DIN 핀에 연결합니다.
- CS: 다음 모듈의 입력 핀 그룹의 CS에 연결합니다.
- CLK은 다음 모듈의 입력 핀 그룹의 CLK에 연결합니다.
선연결
LED 매트릭스가 단일 블록으로 구성된 경우:
- 입력 핀 그룹을 ESP32에 연결하세요.
- 출력 핀 그룹은 연결하지 않은 상태로 두세요.
이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
ESP32 및 다른 구성 요소에 전원을 공급하는 방법에 대해 잘 알지 못하는 경우, 다음 튜토리얼에서 안내를 찾을 수 있습니다: ESP32 전원 공급 방법.
이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
LED 매트릭스가 미리 구축된 여러 블록인 경우:
- 입력 핀 그룹을 ESP32에 연결하세요
- 출력 핀 그룹은 연결하지 마세요
이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
만약 LED 매트릭스를 여러 블록으로 직접 제작했다면:
- 첫 번째 블록의 입력 핀 그룹을 ESP32에 연결합니다.
- 각 블록의 출력 핀 그룹을 다음 블록의 입력 핀 그룹에 연결합니다.
- 마지막 블록의 출력 핀 그룹은 연결하지 않습니다.
이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
디스플레이가 최대 밝기에서 최대 1A까지 많은 전류를 소모하기 때문에:
- ESP32의 5V 핀에서 전력을 사용하지 마십시오.
- 대신 외부 5V 전원 공급 장치를 사용하십시오. ESP32와 LED 매트릭스는 5V 전원 어댑터로부터 전력을 공유할 수 있습니다.
ESP32가 SPI 핀을 통해 LED 매트릭스에 연결되기 때문에:
- ESP32의 GPIO18(SCK) 핀과 GPIO23(MOSI) 핀
- GPIO21(CS) 핀은 어떤 핀으로도 변경할 수 있음
LED 매트릭스를 프로그래밍하는 방법
LED 매트릭스를 제어하는 것은 쉽지 않습니다. 다행히도, 이를 쉽게 만들어주는 라이브러리가 있습니다. 아래는 LED 매트릭스를 제어하기 위해 ESP32 코드를 작성하는 방법에 대한 단계별 안내입니다.
라이브러리 포함:
사용 중인 하드웨어를 명시하세요: GENERIC_HW 또는 FC16_HW.
사용된 LED 블록의 수를 정의하십시오. 예를 들어, 4-in-1 LED 매트릭스는 4개의 블록이 있습니다.
LED 매트릭스의 CS 핀에 연결되는 핀을 정의하십시오. 예를 들어, 핀 GPIO21
LED 매트릭스 디스플레이를 위해 MD_Parola 클래스의 새로운 인스턴스를 생성하십시오.
설정() 함수 안의 코드:
텍스트, 숫자를 표시하고 애니메이션 효과를 보여줍니다: 다음 부분을 보세요
ESP32 - LED 매트릭스 코드
아래 코드는 32x8 FC-16 LED 매트릭스 디스플레이(4개 블록)용입니다. 하지만 여러분은 쉽게 이를 8x8, 16x8, 64x8 등으로 적용할 수 있습니다.
사용 방법
ESP32를 처음 사용하는 경우, Arduino IDE에서 ESP32 환경 설정하는 방법을 참조하십시오.
위 이미지와 같이 배선하십시오.
ESP32 보드를 마이크로 USB 케이블을 사용하여 PC에 연결하십시오.
PC에서 Arduino IDE를 엽니다.
올바른 ESP32 보드(예: ESP32 Dev Module)와 COM 포트를 선택하십시오.
Arduino IDE의 왼쪽 바에 있는 Libraries 아이콘을 클릭하십시오.
“MD_Parola”를 검색한 다음, MD_Parola 라이브러리를 찾으십시오.
Install 버튼을 클릭하십시오.
- “MD_MAX72XX” 라이브러리를 설치하라는 요청을 받게 됩니다
- 종속성을 설치하려면 Install All 버튼을 클릭하십시오.
- 위의 코드를 복사하여 아두이노 IDE로 열어 주세요
- 아두이노 IDE에서 Upload 버튼을 클릭하여 코드를 ESP32에 업로드하세요
- LED 매트릭스 디스플레이를 확인하세요
ESP32 LED 매트릭스 코드 - 스크롤 텍스트
LED 매트릭스 디스플레이에 맞출 수 없을 만큼 긴 메시지를 출력하고 싶을 때, 스크롤 텍스트 효과 기술을 사용할 수 있습니다.
아래의 ESP32 코드는 LED 매트릭스 디스플레이에서 메시지를 스크롤하는 방법을 보여줍니다.
더 많은 텍스트 효과를 보려면, MD_Parola 라이브러리 참조를 방문해 주세요.
동영상
비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.