본문 바로가기
아두이노_프로세싱/아두이노

포텐셜미터+네오픽셀(포텐셜미터를 회전시켜 네오픽셀을 이동하듯...)

by 돌돌쌤 2023. 10. 2.

#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(); 
  }
}

 

 

 

포텐셜미터로 네오픽셀링 이동 작동영상

https://youtube.com/shorts/VZgRO1T2vjs

'아두이노_프로세싱 > 아두이노' 카테고리의 다른 글

도트 매트릭스 문자 흐름  (0) 2023.10.02
LCD쉴드 + 가속도센서 각도 측정  (0) 2013.06.28
가속도 센서로 각도 측정  (1) 2013.06.28
가속도센서  (1) 2013.06.26
LCD 쉴드 자작  (0) 2013.04.25