인투피온 강좌/아두이노 팁(Tip)

아두이노 WS2812B 네오픽셀 LED 모듈 코딩

인투피온 2021. 12. 28. 14:47

 

 

안녕하세요~ 인투피온입니다.
오늘은 WS2812B 네오픽셀 모듈 사용법에 대해서 알아보겠습니다.

WS2812 네오픽셀 모듈 동작​

 

먼저 아래 그림에 보이는 검은색 칩은 WS2812으로
GND, VDC, Data In, Data Out 4개의 핀 만 있으면 사용이 가능해요.
이 칩은 daisy-chain으로 Data In과 Data Out를 통해 여러 개의 칩을 연결할 수 있어요.

 

 

WS2812

 

준비물

 

 

뒷면은 저렇게 납땜을 해주셔야 돼요.
케이블이나 핀에 납땜해주시면 됩니다.

 

※상품명 클릭 시 구매 링크로 이동합니다.

아두이노 우노 호환 보드
WS2812B 1x8 네오픽셀 모듈
점퍼케이블

 

 

회로도

 

Fritzing 회로도

 

네오픽셀 모듈
아두이노 우노
GND
GND
VDC
VCC
DI
D6

 

코딩 및 동작

 

코딩하기에 앞서 먼저 라이브러리 추가를 해주셔야 돼요.

'Adafruit_NeoPixel' 를 검색하셔서 설치해주시면 됩니다.

 

 

#include <Adafruit_NeoPixel.h>
#define PIN 6 // DI 핀번호
#define N_LEDS 8 // 네오픽셀 LED 갯수

Adafruit_NeoPixel strip = Adafruit_NeoPixel(N_LEDS, PIN, NEO_GRB + NEO_KHZ800);
//NEO_GRB <= 네오픽셀 타입 , NEO_KHZ800 <= 클럭 주파수

void setup() {
  strip.setBrightness(100); // 네오픽셀 밝기
  strip.begin(); // 네오픽셀 시작

}

void loop() {
chase(strip.Color(50,255,50));
delay(150);
chase(strip.Color(50,50,255));
delay(150);
chase(strip.Color(255,50,50));
delay(150);
}

static void chase(uint32_t c) {
  for(uint16_t i=0; i<strip.numPixels()+4; i++) {
      strip.setPixelColor(i , c); // i 번째 픽셀에 LED 색상 지정
      strip.setPixelColor(i-3, 0); // i-3 픽셀에 색상 0을 지정하여 지움
      strip.show(); //
      delay(10);
  }
}

 

 

#include <Adafruit_NeoPixel.h>
#define PIN 6  // DI 핀번호
#define N_LEDS 8 // 네오픽셀 LED 갯수

Adafruit_NeoPixel strip = Adafruit_NeoPixel(N_LEDS, PIN, NEO_GRB + NEO_KHZ800);   
//NEO_GRB <= 네오픽셀 타입 ,  NEO_KHZ800 <= 클럭 주파수

void setup() {  
  strip.setBrightness(100);   // 네오픽셀 밝기  
  strip.begin();  // 네오픽셀 시작
}

void loop() {  
  int R = 0;  
  int G = 0;  
  int B = 0;  

  R = 255;  
  G = 0;  
  for (int B = 0; B < 256 ; B+=50) {   
      chase(strip.Color(R, G, 0));    
      R -= 50;    
      G += 50;  
  }  

  G = 255;  
  B = 0;  
  for (int R = 0; R < 256 ; R+=50) {    
      chase(strip.Color(0, G, B));   
      G -= 50;    
      B += 50;  
  }  

  B = 255;  
  R = 0;  
  for (int G = 0; G < 256 ; G+=50) {    
      chase(strip.Color(R, 0, B));    
      B -= 50;    
      R += 50;  
  }

}

static void chase(uint32_t c) {  
  for (uint16_t i = 0; i < strip.numPixels() + 4; i++) {    
      strip.setPixelColor(i  , c); // i 번째 픽셀에 LED 색상 지정    
      strip.setPixelColor(i-3, 0); // i-3 픽셀에 색상 0을 지정하여 지움
      strip.show();    
      delay(80);  
  }  
  /*  랜덤 위치 그리기      
            uint16_t i=random(0,8);      
            uint16_t j=random(0,8);      
            strip.setPixelColor(i  , c); // i 번째 픽셀에 LED 색상 지정      
            strip.setPixelColor(j  , c); // j 번째 픽셀에 LED 색상 지정      
            strip.show();      
            strip.setPixelColor(i  , 0); // i 번째 픽셀지움      
            strip.setPixelColor(j  , 0); // j 번째 픽셀지움      
            delay(100);   
  */
}

 

 

 
 

 

위 소스 구동 결과

 

 

 

 

아두이노 네오픽셀 WS2812 모듈 기본 동작

 

아두이노 네오픽셀 WS2812 모듈 RGB 동작

 

 

 

전자부품 전문 쇼핑몰 인투피온입니다.
필요한 자재에 관한 문의는 홈페이지를 통한 견적 신청, 혹은 전화나 메일로 주시면 빠른 회신을 드릴 수 있도록 하겠습니다.

▶ 홈페이지: http://intopion.com/
▶ 전화: 02-2615-7278
▶ FAX : 02-6124-4242
▶ 메일: intopion@hanmail.net