정보나눔

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

네오픽셀과 기울기 센서 다시 질문드려요 ㅠㅠ
정세연 | 2015-09-04

저번에 알려주신 네오픽셀에 대한 소스 설명 감사합니다 ㅠㅠ 네오픽셀은 예쁘게 불들어오더군요...

이걸 수은 기울기 센서와 소스를 합쳐서 해보려는데

기울기 센서로 네오픽셀을 단순히 on / off만 하려고 하는데

초보적인 실력으로 소스를 짜봤는데 소스에 문제가 생기네요...

소스를 한번 봐주셨으면 합니다ㅠㅠ

 

 

#include

#define PIN 6

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

const int S = 2; // 센서와 연결된 핀 번호
int sensorstate = 0; // 센서 상태값

 

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

 

void loop() {

  sensorstate = digitalRead(S);
 
  if(sensorstate == HIGH){
    digitalWrite(strip, HIGH);
  colorWipe(strip.Color(255, 0, 0), 50); //빨간색 출력
  colorWipe(strip.Color(0, 255, 0), 50); //녹색 출력
  colorWipe(strip.Color(0, 0, 255), 50); //파란색 출력

}

 else{ 
    digitalWrite(strip, LOW); // ON일 경우 LED를 꺼줍니다.
  colorWipe(strip.Color(0, 0, 0), 50);
  colorWipe(strip.Color(0, 0, 0), 50);
  colorWipe(strip.Color(0, 0, 0), 50);
 }

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

 

 

-------------------------------------------------------------------------------------------------------

 

 

 

프로필사진

SaBo 2015-09-04 14:25:45

어떻게 안되는지 설명좀 해주세요

궁금한게 기울기센서만 사용하여 센서값을 디지털값으로 읽어와서 0 또는 1로 출력되는건 확인 하셨나요?? 

프로필사진

염소할배 2015-09-04 14:59:55

#include <Adafruit_NeoPixel.h>


#define PIN 6
Adafruit_NeoPixel strip = Adafruit_NeoPixel(4, PIN, NEO_GRB + NEO_KHZ800);
const int S = 2; // 센서와 연결된 핀 번호
int sensorstate = 0; // 센서 상태값

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

void loop() {
  sensorstate = digitalRead(S);

  if(sensorstate == HIGH){    
    colorWipe(strip.Color(255, 0, 0), 50); //빨간색 출력
    colorWipe(strip.Color(0, 255, 0), 50); //녹색 출력
    colorWipe(strip.Color(0, 0, 255), 50); //파란색 출력
  }
  else{ 
    colorWipe(strip.Color(0, 0, 0), 50);
    colorWipe(strip.Color(0, 0, 0), 50);
    colorWipe(strip.Color(0, 0, 0), 50);
  }
  //NeoPixel에 달린 LED를 각각 주어진 인자값 색으로 채워나가는 함수
}

void colorWipe(uint32_t c, uint8_t wait) {
  for(uint16_t i=0; i<4;i++){      
    strip.setPixelColor(i, c);
    strip.show();
    delay(wait);
  }
}

 

 

이걸로 적용해보시면될것같습니다.

#include <Adafruit_NeoPixel.h>  괄호 유의하세요

프로필사진

정세연 2015-09-04 15:46:19

답변 감사합니다 ㅠㅠ 소스의 문제는 없는데... 수은센서에 반응해서 on off되어야하는데 그냥 네오픽셀이 계속 켜져있기만 하네요...

off가 왜 안되는지 답답하네요 ㅠㅠ

프로필사진

수박쨈 2015-09-04 16:54:20

먼저 수은 기울기 센서가 정확히 기울기에 따라 HIGH값과 LOW값을 출력하는지 먼저 보시고 하시는게 좋을 듯 하네요.

 

네오픽셀이 계속 켜져있다는건 2번핀에서 계속 HIGH값을 받아오기 때문으로 밖에 생각할 수 없습니다.

프로필사진

정세연 2015-09-04 16:58:27

감사합니다!!! ㅠㅠㅠㅠ 성공했네요!!

이전글   |    안녕하세요~ 저는 액션캠 관련해서 문의 드릴게 있어 이렇게 글을 남겨요~ ... 2015-09-03
다음글   |    LCD 사용 질문 2015-09-07