아두이노로 LED matrix 제어하기 #1 : LED matrix module

2017. 9. 11. 09:27

Arduino/Display

Robotdyn Matrix LED 8x8 module driver

Robotdyn에서 만든 LED Driver module에 대한 리뷰입니다.

로, 세로 8개씩 64개의 LED를 가진 module을 장착했고, MAX7221 LED driver를 사용하여 구동합니다. 또, SPI 방식으로 연결하여 아두이노를 통해 제어할 수 있으며 입력 핀과 출력 핀을 별도로 두어 여러 개의 모듈을 직렬로 연결할 수 있습니다. 전원(5V, GND)을 제외하면 딱 3개의 핀만으로, 연결된 LED module들을 제어할 수 있기 때문에, 아두이노와의 연결이 아주 간단해집니다.

Robotdyn Matrix LED 8x8 module driver 소개

아두이노나 컴퓨터 튜닝(Mod)에 입문할 때 가장 먼저 접하는 아이템이 LED가 아닐까 합니다. 자동차 튜닝도 마찬가지일 듯 하구요! 가격 저렴하고 다루기도 쉬워서 가장 많이 사용할 겁니다.

오늘 소개할 부품은 다른 프로젝트를 위해 알리에서 구입한 LED 모듈입니다. 개당 5천원 조금 안되는 금액이라 저렴한 편이고, 색상은 white, blue외에 몇가지 더 있습니다. 더 저렴한 제품들은 죄다 붉은 색만 있어서 비싼 것 같진 않다고 느껴지네요! 알리에서 파는 다른 제품과 다르게, 브랜드도 있고 자체 홈페이지도 운영하고 있어서 가격대비 괜찮다 싶어 구입했는데, 홈페이지에는 도움될 만한 내용은 별로 없습니다! 같이 판매하는 보드들도 레퍼런스를 벗어난 제품들이 많습니다. 이런 보드들은 기능은 좋아 보이지만, 제조사에서 충분한 문서와 예제들을 제공하지 않으면 초보자들에겐 무용지물인 경우가 많습니다. 예전에 DFRobot사 제품들에 대해서 잠깐 언급한 적이 있는데, 되도록이면 Arduino.cc에서 파는 레퍼런스 제품들이나 Adafruit 처럼 제대로된 문서와 예제를 제공하는 브랜드의 제품을 구입하여 실력을 쌓는 쪽이 좋습니다.

하지만, 이 LED 모듈은 널리 쓰는 Maxim사의 Max7221칩을 사용했기 때문에 관련 자료를 찿기가 쉽고, 아두이노에서 제공하는 라이브러리가 있기 때문에, 어려움 없이 활용할 수 있습니다.

별도의 박스 포장은 없고, 정전기 방지 필름속에 들어 있습니다. 그래도 알리제품들중에 라벨링은 잘 되있는 편입니다.

이베이에서 구입한 더 저렴한 제품보단 LED쪽이 깨끗한 편입니다. 가로세로 32x32mm 크기입니다.

뒤쪽은 핀 보호를 위해 스폰지로 덮었습니다.

검정색 스폰지를 제거한 뒷면입니다. 가운데 MAX7221칩이 있고, 디지털 입력 핀과 출력 핀이 좌우로 자리하고 있습니다. 그리고 중요한 것은 LED 모듈이 기판에 납땜으로 고정되어 있습니다. 제거하거나 교체가 불가능하고, 이 때문에, 네 군데 구석에 있는 고정 홀은 무용지물입니다.

보이는 것처럼 LED는 납땜되어 있습니다. 교체 불가능한 대신 높이는 많이 낮아졌습니다.

다른 저가형 제품과는 다르게 입력 핀들이 미리 납땜되어 있습니다. 수고를 덜 수 있어 좋긴 한데, 대신 연결 방향을 옆쪽으로 돌리기 위해 'ㄱ'자 핀을 사용할 순 없게 되었습니다.

Connect matrix LED module with Arduino

그런데, 제품 홈페이지에 보면 이상한 점이 있습니다. SPI가 아니라 I2C bus를 이용하여 사용한다고 되어 있습니다. 하지만, 주소에 대한 언급도 없고, 병렬도 아니고 직렬(Cascade)로 연결한다는 게 이해가 가질 않습니다. 그냥 SPI 방식으로 연결했더니 잘 작동하네요!

MAX7221 chip은 3개의 핀으로 아두이노와 연결합니다. 각각 DATA IN, CLK, LOAD(CS)라고 하는데, 아두이노의 어느 핀과 연결하든지 상관 없고, 소스 코드상에서 정확한 핀 번호로 선언만 잘 해주면 됩니다.

테스트에 사용할 보드는 ARDUINO UNO 버전이고, 핀은 그림과 같이 D10, D11, D12에 연결하였습니다. D12는 DATA IN(SDI), D11은 CLK(SCL), D10은 CS에 연결하고, DATA OUT(SDO)은 다음 모듈의 DATA IN(SDI)으로 들어 갑니다.(cascaded, daisy chain) 즉, 그림처럼 드라이버 모듈을 여러 개 연결할 경우엔, DATA IN, OUT을 cascade로 연결하고 CLK, CS는 병렬하여 연결합니다.

위와 같이 LED 드라이버 3개를 브레드보드를 이용하여 연결하였습니다.

여기까지 모듈 소개 및 기본적인 연결 설정에 대해서 설명하였습니다. 다음 글에서 라이브러리를 이용한 예제를 통하여 실제로 제어해보겠습니다.

Comments