#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h>
#endif
#define PIN 6 // 네오픽셀 연결핀
#define NUMPIXELS 24 // 네오픽셀 수
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
// 네오픽셀을 pixels로 정의
int delayval = 500; // delay for half a second
int a;
void setup() {
#if defined (__AVR_ATtiny85__)
if (F_CPU == 16000000) clock_prescale_set(clock_div_1);
#endif
pixels.setBrightness(20); // 0~255 사이의 값으로 최대 밝기 조절 (255가 최대)
pixels.begin(); // This initializes the NeoPixel library.
pixels.show();
}
void loop() {
a = analogRead(A0);
a = constrain(a,100,1000);
a = map(a, 100,1000,0,23); // A0핀에서 받은 값을 100~1000로 제한후, 0~23 값으로 변환
PixeOFF(a); // 함수 a번째 픽셀을 제외한 나머지 부분 픽셀 끄기 함수 호출
pixels.setPixelColor(a, pixels.Color(0,150,0)); // a번째 픽셀 켜기
// 또는 pixels.setPixelColor(a, 0xff33cc); 로 직접 색생표를 넣어도됨.
pixels.show();
}
void PixeOFF(int num){ // 만약 5번째만 키려면 0~3, 5~23 번은 꺼야한다.
for(int i = 0; i < num ; i++){
pixels.setPixelColor(i, pixels.Color(0,0,0)); // 0~(i-1) 번째 칼라를 0x000000 값으로
pixels.show();
}
for(int i=24;i>num;i--){
pixels.setPixelColor(i, 0); // (i+1)~23 번째 칼라를 0 값으로
pixels.show();
}
}
포텐셜미터로 네오픽셀링 이동 작동영상
'아두이노_프로세싱 > 아두이노' 카테고리의 다른 글
도트 매트릭스 문자 흐름 (0) | 2023.10.02 |
---|---|
LCD쉴드 + 가속도센서 각도 측정 (0) | 2013.06.28 |
가속도 센서로 각도 측정 (1) | 2013.06.28 |
가속도센서 (1) | 2013.06.26 |
LCD 쉴드 자작 (0) | 2013.04.25 |