2021.10.27~2021.11.2

이번 주는 부품 구매와 필요한 LED 갯수 파악, LED모듈 테스트, 기본이되는 코드 테스트를 진행했습니다.


구매한 부품

  • 전도성 천
  • 얇은 연선
  • 스펀지
  • 부직포
  • 네오픽셀
  • 전도성 실
  • 절연테이프

필요한 LED 갯수 파악

LED는 2cm의 간격으로 배치하는 조건으로 최소 28개의 LED가 필요한 것으로 파악했습니다.


LED 모듈 테스트

네오픽셀을 잘라서 2cm 간격으로 배치하고 확산 필름, 얇은 반투명 실리콘, 마감 패브릭을 올려도 LED 발광부가 동그랗게 보이는 현상이 있었습니다.. 혹시나 하는 마음에 확산 필름을 여러겹 겹처서 보아도 그대로였습니다. 이를 해결하기 위해서는 LED와 확산 필름의 간격을 최소 1.5cm는 띄워야 문제가 해결될 것 같습니다.


코드 테스트

버튼으로 LED를 아날로그 제어하는 코드를 짰습니다. 간단히 LED를 제어하는 코드임에도 이상하게 계속 마음대로 번쩍이는 현상이 있었습니다.

#include
#ifdef __AVR__
#include
#endif
#define PIN 11
#define NUMPIXELS 3
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

const int led = 10;
const int bt = 2;
int lightR = 0;
int lightG =0;
int lightB=0;

void setup() {
pixels.clear();
pinMode(led, OUTPUT);
pinMode(bt, INPUT);
#if defined(__AVR_ATtiny85__) && (F_CPU == 16000000)
clock_prescale_set(clock_div_1);
#endif

pixels.begin();

}

void loop() {
pixels.clear();
int btState = digitalRead(bt);

if (btState == HIGH) {
lightR++;
if (lightR >= 255) {
lightR = 255;
}
analogWrite(led, lightR);
pixels.setPixelColor(0, pixels.Color(lightR, 0, 0));
pixels.setPixelColor(1, pixels.Color(lightR, 0, 0));
pixels.setPixelColor(2, pixels.Color(lightR, 0, 0));
pixels.show();
delay(10);
} else {
lightR–;
if (lightR <= 0) {
lightR = 0;
}
analogWrite(led, lightR);
pixels.setPixelColor(0, pixels.Color(lightR, 0, 0));
pixels.setPixelColor(1, pixels.Color(lightR, 0, 0));
pixels.setPixelColor(2, pixels.Color(lightR, 0, 0));
pixels.show();
delay(30);
}

}