프로젝트

LED 신발만들기

페이지 정보

작성자 소피아 작성일16-06-10 15:07 조회4,269회 댓글0건

첨부파일

본문

네오픽셀led를 이용해 LED신발을 만들어 보았습니다.


<완성작품>
2083f3570b0137fdcd3e220014843681_1465538

 

재료 : GY-61 ADXL335 3축 가속도 센서, 아두이노 나노보두, 네오픽셀LED, FLVHQPXJFL 30-.7v 380mAH , 스위치

 

2083f3570b0137fdcd3e220014843681_1465538

<뒷면>

 

2083f3570b0137fdcd3e220014843681_1465538

<앞면>

 

< 소스 >

#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
  #include <avr/power.h>
#endif

// Which pin on the Arduino is connected to the NeoPixels?
// On a Trinket or Gemma we suggest changing this to 1
#define PIN            7

// How many NeoPixels are attached to the Arduino?
#define NUMPIXELS      15

// When we setup the NeoPixel library, we tell it how many pixels, and which pin to use to send signals.
// Note that for older NeoPixel strips you might need to change the third parameter--see the strandtest
// example for more information on possible values.
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

int delayval = 100; // delay for half a second

int xacc = 0;
int yacc = 0;
int zacc = 0;

// pin number
int xpin = 0;
int ypin = 1;
int zpin = 2;

void setup() {
  // This is for Trinket 5V 16MHz, you can remove these three lines if you are not using a Trinket
#if defined (__AVR_ATtiny85__)
  if (F_CPU == 16000000) clock_prescale_set(clock_div_1);
#endif
  // End of trinket special code
  pixels.begin(); // This initializes the NeoPixel library.
  // for debuggging
  Serial.begin(9600);
}

void loop() {
  // reading sensor data
  xacc = analogRead(xpin);
  yacc = analogRead(ypin);
  zacc = analogRead(zpin);
  //calculation of norm, xacc is not an actual acceleration
  int norm = sqrt(xacc^2+yacc^2+zacc^2);
  Serial.println(norm); // norm check
  // For a set of NeoPixels the first NeoPixel is 0, second is 1, all the way up to the count of pixels minus one.
  if (norm > 28) // 28 is the threshold
  {
  for(int i=0;i<NUMPIXELS;i++){

    // pixels.Color takes RGB values, from 0,0,0 up to 255,255,255
    pixels.setPixelColor(i, pixels.Color(150,150,150)); // Moderately bright green color.

    pixels.show(); // This sends the updated pixel color to the hardware.

    delay(50); // Delay for a period of time (in milliseconds).
  }
  delay(1000);
  }
  else
  {
  for(int i=0;i<NUMPIXELS;i++){

    // pixels.Color takes RGB values, from 0,0,0 up to 255,255,255
    pixels.setPixelColor(i, pixels.Color(0,0,0)); // Moderately bright green color.

    pixels.show(); // This sends the updated pixel color to the hardware.

    //delay(delayval); // Delay for a period of time (in milliseconds).

  }
  }
}
 

 


 

 

댓글목록

등록된 댓글이 없습니다.


모바일 버전으로 보기