() 해외배송 가능
판매가 | |
---|---|
소비자가 | 0원 |
적립금 |
|
무이자할부 | |
제조사 | 자체제작 |
원산지 | |
상품코드 | P0000JMK |
수량 | |
국내/해외배송 | |
SNS 상품홍보 | |
QR코드 | |
QR코드 보내기 |
직경 : 68mm
무게 : 12g
전압 : 4.0 ~ 7.0VDC
LED : WS2812B * 16EA
제품상세정보 출처 : 기술여행자 블로그 [ http://arsviator.blogspot.kr/2015/04/ws2812-color-led.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed:+arsviator+(%EA%B8%B0%EC%88%A0+%EC%97%AC%ED%96%89%EC%9E%90+(ArsViator) ]
WS2812 color LED 사용하기
칼라 LED는 LED 내부에 빛의 3원색에 해당하는 Red, Green, Blue LED가 들어있어 각각의 밝기를 조절하면 원하는 색을 만들어 낼 수 있다.
일반적인 형태의 칼라 LED는 아래 사진과 같은 형태로 4개의 다리가 나와 있다.
Common Anode 타입의 LED인 경우 가장 긴 다리가 common anode로 이 다리는 +에 연결되어야 하고 나머지 3개의 다리는 프로세서의 I/O에 연결해 LED를 제어한다.
각 IO핀이 LOW면 해당 LED가 켜지고, HIGH면 LED가 꺼지게 된다. (PWM의 경우 duty가 0%면 가장 밝게 켜지고 100%면 꺼짐)
반대로 common cathode 타입의 LED인 경우, common cathode는 GND에 연결하고 나머지 3개 다리는 프로세서의 I/O에 연결한다.
이 경우 common anode와 반대로 IO핀이 HIGH이면 해당 LED가 켜지고, LOW면 LED가 꺼지게 된다.
(PWM의 경우 duty가 100%면 가장 밝게 켜지고 0%면 꺼짐)
아래 그림은 common cathode타입의 컬러 LED를 사용할 때의 연결이다.
보통 위와 같이 전류제한 용으로 저항이 필요하다.
이제 LED가 연결되면 컬러 LED를 제어하는 2가지 방법이 있다.
첫번째는 GPIO를 이용하는 것으로, 이 경우 각각 IO핀은 2개의 상태, LOW(0V)/HIGH(Vcc),를 가질 수 있으므로
총 8개의 다른 색(검은색 포함해서)을 낼 수 있다.
다른 방법으로는 각 색깔별 LED의 밝기를 조절하는 것이다.
PWM을 사용해 각각의 밝기를 조절하면 매우 다양한 색을 만들어 낼 수가 있게 된다.
아두이노의 경우 6개의 8-bit PWM 채널을 가지고 있기 때문에, 각 PWM은 0~255 사이의 값을 가질 수 있다.
그러므로 칼라 LED에 3개의 PWM 채널이 연결되기 때문에 총 256*256*256=16,777,216가지의 조합이 만들어 질 수 있다.
이 방법은 원하는 색을 만들어 낼 수 있지만, 단점은 칼라 LED 하나당 3개씩의 PWM 채널이 필요하다는 것이다.
아두이노 우노의 경우 6개, 메가의 경우 14개의 PWM을 가지고 있기 때문에 각각 2개, 4개의 칼라 LED밖에 연결할 수 없다.
물론 쉬프트 레지스터나 멀티플렉서등을 사용해서 더 많은 칼라 LED를 연결하는 방법이 있긴 해도 금새 매우 복잡해진다.
WS2812-based LED
Worldsemi라는 회사에서 이런 문제점을 완전히 해결해주는 새로운 칩을 만들었다.
처음에 만든것은 WS2811이라는 SMD IC로 내부에 시리얼 통신, 3개의 8-bit PWM 채널, 전류제한회로등을 가지고 있다.
다음으로 만든것은 WS2812로 5mm*5mm 정사각형 패키지 안에 WS2811에 추가로 고휘도 RGB LED를 다 집어 넣어 버렸다.
이 칩의 가장 좋은 점은 단지 4개의 핀(GND, Power(5V), Data In, Data Out)만 있으면 된다는 것이다.
즉 이 칩은 서로 daisy-chain으로 여러개를 연결해 줄 수 있다.
프로세서가 체인의 첫번째 칩의 Data-In을 구동하고, 첫번째 칩의 Data-Out이 두번째 칩의 Data-In을 다시 구동하는 식이다.
다음 그림을 보면 좀 더 이해하기 쉬울 것이다.
이런식으로 체인으로 연결하는데 특별히 칩 갯수 제한은 없다.
프로세서는 24-bit 값을 연속으로 보내게 되는데, 각 24-bit 값은 3개의 8-bit RGB 값을 나타낸다.
프로세서가 매번 24-bit 값을 보낼때마다 이 값은 체인의 첫번째 LED에 로드된다.
동시에 첫번째 LED는 자신이 가지고 있던 24-bit값을 두번째 LED로 전달한다.
두번째 LED는 세번째 LED로, 세번째 LED는 4번째 LED로 전달해 결국 값은 체인의 맨 마지막까지 전달되게 된다.
이 모든 작업이 매우 빠르게 진행되기 때문에 사람 눈에는 순식간에 일어난 것으로 보이게 된다.
결과적으로 프로세서의 IO 핀 1개(PWM이 아닌 일반 GPIO핀)만으로 수백개의 칼라 LED를 제어할 수 있게 된다.
WS2812 기반의 LED를 사용하려면 가장 쉬운 방법은 믿을만한 라이브러리를 사용하고 그 중 다른 사람에 의해 테스트 된 함수를 사용하는 것이다.
Adafruit NeoPixel 라이브러리를 권장한다.