고퀄리티 LED 스틱 ( LED 요술봉 ) 만들기 두 번째 시간입니다.
LED 스틱이 좀 긴 편이라 컨트롤러 부분과 LED Display 부분을 각각 만들어 합치는 게 좋다고 생각이 됩니다.
그 형태는 이렇게 될 겁니다.
빈 비눗방울 장난감의 크기에 맞게 LED 24개를 8개씩 나눠 배치하고, 컨트롤 보드를 만들어서 연결할 계획입니다.
이 프로젝트를 진행하는데 가장 중요한 부분은 역시 3색 LED를 제어하는 것이며, 따라서 LED 드라이버 IC를 이해 하는것이 무엇보다 중요합니다.
사용할 LED 드라이버 IC 를 간략히 소개해 드리겠습니다.
바로 WS2811입니다.
이 녀석 1개에 3색 LED 1개를 달 수 있습니다.
앵? IC 하나에 LED 1개를? 너무 비효율적이고 어이없다고 생각되시나요?
하지만 이 녀석 생각보다 막강합니다.
WS2811을 한 번에 이해할 수 있는 문구는 " Singnal line 256 Gray level 3 channal Constant current LED drive IC "입니다.
쉽게 설명하자면 LED의 밝기를 256 단계로 제어할 수 있는 3개의 채널이 있다는 뜻입니다.
각 채널에 R, G, B LED를 달면 됩니다.
각 채널이 256단계라는 말은 8비트로 표현된다는 뜻입니다.
RGB를 8비트씩 3개로 표현하므로 24비트 컬러라는 뜻이 됩니다. 즉 트루 컬러라는 말이지요.
불어펜 3색 LED 스틱으로 개조 하기에서 사용한 3색 LED 하나를 3개의 색이 아닌 16,777,216 가지 색으로 표현할 수 있다는 뜻입니다. 엄청나지요? 이게 바로 트루 컬러.
사용될 LED 는 아래 불어펜 개조하기 글에 좀더 자세히 소개해 두었습니다.
Anyway ~
하나의 IC에 3색 LED 하나만 달아서 사용한다면 RGB 데이터 24비트만 순서대로 밀어 넣으면 그만이고, 생각보다 간단합니다.
하지만 지금 만들 고퀄 LED 스틱은 24개의 LED를 동시에 제어할 예정이며, 움직였을 때 잔상효과로 그림도 그려볼 것입니다.
그래서 우리는 연결된 IC 들에게 어떻게 데이터를 보낼 것인지를 이해해야 합니다.
본의 아니게 데이터 시트의 한 페이지를 통째로 넣게 되었는데요.
먼저 우측 상단의 그림을 보면 IC 세 개가 어떻게 연결되는지 알 수 있습니다.
Din으로 들어온 데이터가 DO로 나가서 다음 IC로 입력되는 식이지요.
그런데, D1 은 MCU에 출력되는 시그널이며 이것은 8x3x24 개일 텐데, 이것들이 모두 IC1에서 IC3 번까지 전달될까요?
IC 는 별도의 ADDRESS 를 지정하지 않으므로 자신이 몇 번이지 알 수 없는데 어떻게 자신의 데이터를 받아서 LED를 동작시킬까? 이런 의문이 생깁니다.
그 의문이 해결되는 그림이 그 아래 Cascade method에 나와 있습니다.
MCU에서 24 비트씩 3개의 데이터가 첫 번째 IC로 입력 되었다면, 첫번째 IC 입장에서는 처음 들어온 24비트를 제외한 두번째 부터 다음 IC 로 전송합니다.
두 번째 IC는 또 자신이 받은 첫 번째 24비트만 갖고 나머지를 다음으로 보내는 식이지요.
만약 이처럼 3개의 LED를 한순간에 제어하고 종료한다면 몰라도, 전광판의 영상처럼 계속해서 변화되는 색상을 표시해야 한다면 데이터 스트림의 끝을 알리는 신호가 필요합니다.
그런데 따로 핀을 할당하지 않았지요. 이 말은 데이터의 시그널로 그 구분을 한다는 뜻이 됩니다.
바로 RESET CODE입니다.
Reset code는 50uS 이상으로 되어있고, 데이터는 그보다 짧습니다.
실제로 위 그림의 좌측 상단에 데이터 상태 0과 1을 나타내는 시그널의 형태가 정의되어 있습니다.
눈으로만 봐도 0 은 H로 유지되는 시간이 1 의 H 로 유지되는 시간보다 짧다는 것을 알 수 있지요.
즉 시그널이 High, Low로 유지되는 시간으로 데이터 0, 1 그리고 다음 데이터 스트림 임을 구분할 수 있다는 뜻입니다.
우리는 이렇게 회로를 구성하고, MCU에서 타이밍에 맞게 신호를 출력해 주면 됩니다.
이것이 실제로 우리가 적용할 회로 형태와 동일한 연결도 입니다.
LED Controller는 MCU로 사용하고 DAT 핀은 GPIO로 연결해서 제어할 계획입니다.
그렇게 해서 그려진 LED 제어 회로입니다.
MCU 파트와 전원 파트를 하나의 PCB 보드로 구성하고, LED 바를 따로 만들어 연결할 생각입니다.
LED 바는 8개의 LED 가 연결된 형태로 그림의 우측 하단과 같이 다음 LED 바로 연결할 수 있는 단자가 있습니다.
다음 LED의 입력 포트에 저 세 개의 시그널을 연결하면 되는 것이지요. (PCB 사이즈를 줄이기 위해서 그랬어요)
사실 이번 작품에서 중요한 부분이 하나 더 있는데 바로 전원 회로입니다.
이 LED IC의 데이터 시트에 명시된 바와 같이 1개의 드라이버 IC에서 LED 제어를 위해 18.5mA를 소모한다면, 우리는 24개의 LED를 제어하므로, 동시에 모두 켤경우 444mA라는 전류가 소모된다는 것을 알 수 있습니다.
드라이버 IC의 구동전류 까지 포함해 여유있게 500mA 정도가 소모된다고 가정 할때 안정적인 운용을 위해서 지속적인 전류 공급이 1A 이상이 되는 승압 회로를 적용해야 한다는 뜻이 됩니다.
손으로 납땜이 가능한 범위에서 선정한 부품은 LMR62014입니다.
간략히 사양을 살펴보면.
위 그림의 상세정보에서 출력 2A라고 되어 있으나 실제 데이터 시트를 오픈해 보면 Switch Current up to 1.4A 라고 되어 있습니다. 항상 부품 선정시에는 데이터시트를 참고하세요.
컨트롤 보드
자 어쨌든 이제 LED를 어떻게 제어할지도 알아보고 주요 회로도 봤습니다.
다음 시간에는 PCB 설계를 해보겠습니다.
'아빠가 개발자면 생기는 일' 카테고리의 다른 글
왕스틱 비누방울 버블봉을 LED 요술봉으로 개조하기 #3/5 (0) | 2020.04.07 |
---|---|
시크릿쥬쥬 셀카폰 USB 충전식으로 개조하기 #5/5(마무리) (24) | 2020.04.07 |
불어펜 3색 LED스틱 Upgrade #2/2(마무리) (1) | 2020.04.04 |
불어펜 3색 LED스틱 Upgrade #1/2 (0) | 2020.04.04 |
왕스틱 비누방울 버블봉을 LED 요술봉으로 개조하기 #1/5 (2) | 2020.04.03 |
댓글