정보나눔

오픈소스하드웨어 프로젝트에 대한 다양한 정보를 나누는 공간입니다.

네오픽셀과 기울기센서...
정세연 | 2015-08-27

안녕하세요~

기울기센서를 이용해서 네오픽셀이 빛났다가 꺼졌다가 하는걸 만들어보려고 하는데요

만드려고 하는게

네오픽셀이 푸른빛을 내다가 기울기 센서를 기울이면 꺼지고 다시 제자리로 돌아오면 붉은빛으로 변하는 식으로 만들고 싶은데

기울기 센서로 일반 led를 끄고 켜는건 했는데 네오픽셀을 기울기 센서랑 합쳐서 하는 방법을 모르겠네요 ㅠㅠ

소스 짜는걸 좀 도움 좀 부탁드립니다...

 

프로필사진

판다마니아 2015-08-28 08:36:18

NeoPixel 사용하기 컨텐츠를 보시면 기본적인 NeoPixel 라이브러리를 다운로드및 사용하는 법이 나와있습니다.

 

NeoPixel을 단순히 색깔만 On/OFF 하는 방법은 어렵지 않은데요, 

 

Adafruit_NeoPixel 라이브러리를 호출 하시고  Pin번호와 NeoPixel를 선언해 줍니다.(맨 앞에 있는 숫자가(16) 해당 핀에 연결되어 있는 NeoPixel의 갯수인데 이거만 맞게 수정해 주시면 됩니다.)

 

#include <Adafruit_NeoPixel.h>

#define PIN 6

Adafruit_NeoPixel strip = Adafruit_NeoPixel(16, PIN, NEO_GRB + NEO_KHZ800);

 

 

맨 위에 라이브러리와 핀번호 NeoPixel를 선언해 주셧으면 setup() 함수에서 NeoPiexel을 begin()해 줍니다.

void setup() {
  strip.begin(); //네오픽셀을 초기화하기 위해 모든LED를 off시킨다
  strip.show(); 
}

 

 

여기까지가 기본적으로 NeoPixel을 사용하기 위해 준비하는 과정이었습니다. 이 다음 NeoPixel을 사용하실려면 소스 코드 마지막에(loop()함수 바깥쪽에) 밑의 함수를 선언하시고, 저 함수를 이용하여 NeoPixel의 색깔을 지정하신 후 NeoPixel을 켜주시면 됩니다.

//NeoPixel에 달린 LED를 각각 주어진 인자값 색으로 채워나가는 함수
void colorWipe(uint32_t c, uint8_t wait) {
  for(uint16_t i=0; i<strip.numPixels(); i++) {
      strip.setPixelColor(i, c);
      strip.show();
      delay(wait);
  }
}

 

EX : NeoPixel 제어

#include <Adafruit_NeoPixel.h>

#define PIN 6

Adafruit_NeoPixel strip = Adafruit_NeoPixel(16, PIN, NEO_GRB + NEO_KHZ800);


void setup() {
  strip.begin(); //네오픽셀을 초기화하기 위해 모든LED를 off시킨다
  strip.show(); 
}

void loop() {
  //아래의 순서대로 NeoPixel을 반복한다.
  colorWipe(strip.Color(255, 0, 0), 50); //빨간색 출력
  colorWipe(strip.Color(0, 255, 0), 50); //녹색 출력
  colorWipe(strip.Color(0, 0, 255), 50); //파란색 출력

}

//NeoPixel에 달린 LED를 각각 주어진 인자값 색으로 채워나가는 함수
void colorWipe(uint32_t c, uint8_t wait) {
  for(uint16_t i=0; i<strip.numPixels(); i++) {
      strip.setPixelColor(i, c);
      strip.show();
      delay(wait);
  }
}

 

위에 과정대로 NeoPixel을 사용하셧으면 기존에 가지고 계셧던 기울기 센서로 LED제어하는 부분에서 digitalWrite() 부분 대신 colorWipe() 를 사용해서 LED를 키고 끄시면 됩니다.(끌 경우는 모든 값을 0으로 넣어 주시면 됩니다.)

 

 

 

 

프로필사진

판다마니아 2015-08-28 08:39:03

추가로 strip.Color(빨, 녹, 파)  순입니다. 원하시는 색깔이 있으시면 색상표를 검색하셔서 빨,녹,파의 값을 조절하여 색상을 만드시면 됩니다.

그리고 colorWipe 마지막 값은 딜레이 값입니다. 불을 키고 그 뒤 딜레이를 정해주는 값입니다.

이전글   |    SD 데이터 로깅쉴드를 구입했는데요.. 2015-08-26
다음글   |    HC-06 기기 검색이 안됩니다 . 보드 문제일까요???... 2015-08-28