Adafruit사에서 만든 5V 12개 LED 네오픽셀링입니다.
무드등 한번 만들어보려고 하다가, 매번 낱개 LED 제어에 지쳐서 한번 구매해봤습니다.
LED가 12개 박혀있는 지름 5.2cm짜리 네오픽셀링을 구매했고, 4070원 주고 샀습니다.
6000K는 조명으로 쓰는 쨍-한 화이트고, 3000K는 무드등에 적합한 노란(?) 화이트로 알고 있습니다.
저는 3000K짜리 웜화이트 구매했습니다.
구매 전 주의할 사항은 납땜이 필요하다는 점입니다.
인터넷 검색 시에 납땜이 되어있는 사진만 보다가 실제로는 납땜 안 돼있는 게 와서 당황했습니다ㅠ_ㅜ
사용하던 인두기가 없어서, 테스트를 위해 테이프만 붙여서 해봤습니다.
별로 추천하고 싶지는 않지만, 테이프만 붙여도 동작하긴 했습니다.
급하게 테스트해봐야 한다! 하시는 분들만 테이프 붙여서 테스트해보시길 바랍니다.
테이프로 테스트해봤을 때 잘 동작해서, 인두기로 납땜해봤습니다.
납땜은 GND, 5V, DI만 하면 됩니다.
납땜용 실납을 너무 굵은걸 사서 컨트롤을 잘 못했습니다ㅠ
사진 찍고 보니 난장판이네요
보드 구성은 위와 같이 GND는 아두이노 GND에, 5V는 아두이노 5V에, DI는 2번 핀에 꽂아줍니다.
네오픽셀링을 사용하려면 라이브러리를 추가해줘야 합니다.
먼저 Arduino IDE를 실행한 후에 스케치>라이브러리 포함하기>라이브러리 관리를 클릭합니다.
Adafruit NeoPixel 라이브러리를 검색하고 설치해줍니다.
라이브러리를 설치했다면, 이제 원하는 대로 코드를 작성할 차례입니다.
먼저 모든 LED에서 흰색을 출력하는 코드로 테스트해봅니다.
#include <Adafruit_NeoPixel.h>
int pin = 2; // DI와 연결된 핀번호
int num_of_led = 12; // 네오픽셀링 led 개수
Adafruit_NeoPixel neopixel = Adafruit_NeoPixel(num_of_led, pin, NEO_GRBW + NEO_KHZ800);
void setup()
{
neopixel.setBrightness(255); // 0~255 사이의 값으로 최대 밝기 조절 (255가 최대)
neopixel.begin();
uint32_t color = neopixel.Color(0,0,0,255); // white
for(int i=0;i<num_of_led;++i){
neopixel.setPixelColor(i, color);
neopixel.show();
//delay(50)
}
}
void loop()
{
}
neopixel.Color() 안에는 순서대로 Red, Green, Blue, White값을 넣으면 됩니다.
0, 0, 0, 255로 했으니 white 색상 최대로 출력합니다.
LED 12개의 색상이 순차적으로 변경되었으면 좋겠다면, delay의 주석을 삭제하면 됩니다.
아래는 응용해서, 각 led가 RGBWRGBWRGBW를 순차적으로 출력하게 만드는 코드입니다.
#include <Adafruit_NeoPixel.h>
int pin = 2; // DI와 연결된 핀번호
int num_of_led = 12; // 네오픽셀링 led 개수
Adafruit_NeoPixel neopixel = Adafruit_NeoPixel(num_of_led, pin, NEO_GRBW + NEO_KHZ800);
void setup()
{
neopixel.setBrightness(120); // 0~255 사이의 값으로 최대 밝기 조절 (255가 최대)
neopixel.begin();
}
void loop()
{
uint32_t init = neopixel.Color(0, 0, 0, 0);
uint32_t red = neopixel.Color(255, 0, 0, 0);
uint32_t green = neopixel.Color(0, 255, 0, 0);
uint32_t blue = neopixel.Color(0, 0, 255, 0);
uint32_t white = neopixel.Color(0, 0, 0, 255);
for(int i=0;i<num_of_led;i++){
neopixel.setPixelColor(i, init);
neopixel.show();
delay(50);
if(i%4==0){
neopixel.setPixelColor(i, red);
} else if(i%4==1){
neopixel.setPixelColor(i, green);
} else if(i%4==2){
neopixel.setPixelColor(i, blue);
} else if(i%4==3){
neopixel.setPixelColor(i, white);
}
neopixel.show();
delay(50);
}
}
12개의 LED를 핀 하나로 제어할 수 있어서 굉장히 편리합니다.
코드도 쉬워서 활용 방법이 무궁무진하네요 :>
잘못된 내용이 있다면 언제든지 댓글이나 메일로 알려주시면 감사하겠습니다.
이 포스팅이 도움이 되었다면 공감 부탁드립니다.
궁금한 점은 언제든지 댓글 남겨주시면 답변해드리겠습니다:D
'관리하지않음 > 아두이노' 카테고리의 다른 글
라즈베리파이4 아두이노 블루투스 통신하기 (12) | 2020.10.11 |
---|---|
[아두이노] 진동센서(충격센서) 사용법 (2) | 2020.09.26 |
아두이노 안드로이드 블루투스 통신하기 (HC-06 AT 무응답 해결) (3) | 2020.09.23 |
[아두이노] DM860H 드라이버로 NEMA 23각 스텝모터 제어하기 (3) | 2020.08.14 |
[아두이노] 가변저항 사용법 및 예제 - led, 스텝 모터 (2) | 2020.08.11 |