티스토리 뷰

 제목: 평창 기념 탁상용 조명

<활용도구>

3D프린트 (네오픽셀 거치대 가로1cm세로1cm길이 9cm)

오렌지보드를 활용한 블루투스 조명(네오픽셀8)

레이저커트(아크릴 인그레이빙,나무 인그레이빙과 cut)

애플리케이션: smartlight

오일링: cutting board oil (USA)

 

<재료>

납땜도구:  페이스트  :   solderring paste -    brnley 57g

              납:  제조사----구룡비철  룡표 실땜남

              인두  :  소비전력 40ww   ceramic heater type    s

oldering iron  220v  60hz

(주)엑소  최고온도 450도     

모델명: jy-2200     절연저항    100 메가옴

 

5V 네오픽셀 스틱 8개 LED / WS2812 RGB, RGBW / 개별제어

구매는  에이브이컴

왼쪽의 4 단자에 점퍼캐이블을 납땜 연결한다.

Din --디지털신호입력

 

<구성요소>


오렌지보드는 아두이노 Uno+blutooth

 

3mm  MDF (BOX)




네오픽셀

네오픽셀은 Adafruit사에서 붙인 이름으로, WS281x 칩이 내장된 LED를 말합니다.

LED는 다른 조명들에 비해 가격이 비싸지만 밝고, 수명이 길다는 장점이있습니다.

 

● 네오픽셀의 장점은?

각각의 LED에 대한 개별제어(색상, ON,OFF)가 가능하며, 연결 배선이 간단하단 점입니다. 네오픽셀는 

다양한 모양이 존재하며 어떤 모양이든 서로 연결이 가능합니다, 연결된 LED가 1개든 100개든 단 3개의

선만으로 모든 LED를 제어할 수 있습니다. 

 

● 네오픽셀의 단점은?

컨트롤러가 필요하다는 점입니다. 네오픽셀은 총 3개의 공통단자가 존재하며, 각각 VCC, GND, D핀입니다.

VCC와 GND로는 전원을 입력해주며, D핀으로는 디지털 신호를 입력해줘야합니다. 디지털 신호를 어떻게

보내주느냐에 따라 LED를 제어할 수 있습니다. 아두이노라는 컨트롤러로 사용하는 경우가 많으며, 사용방법은

예제가 많기때문에 크게 어렵진 않습니다. 

 

● 네오픽셀의 종류는?

■ 모양에 의한 분류 : 네오픽셀은 제품에 따라 링, 스트립, 스틱, 매트릭스, 소자 등 여러가지 타입이 존재합니다.

[출처] 네오픽셀 RGB LED WS2812에 대해 알아보기 / 아두이노 조명 네오픽셀 / Adafruit Neopixel|작성자 오픈랩



<회로도 그리기>

Fritzing

은 포츠담 대에서 만들어진 오픈소스형 CAD프로그램으로, 엔지니어 보다는 디자이너나 하드웨어 제작자(Maker), 예술가를 대상으로 한 도구 이고 사용이 매우 편리합니다.

사용자들을 위한 화면배열이 잘 되어 있고, 끌어당겨서 옮겨놓으면 회로를 구현할 수 있을 정도로 쉽게 구성되어 있습니다. 

Fritzing은 http://fritzing.org/download/



















지름길이 9cm의 원형블루투스 거치대를 모델링 해서 제작한것입니다.

 

<최종결과물>

 


 

 

smartlight 앱을 통한 컬러 조절

 

 

이두이노소스코드>

/* 제목 : 평창올림픽조명 :  kocoafab 소스도움 */

#include <Adafruit_NeoPixel.h>
#include <SoftwareSerial.h>
#define PIN 6
// 디지털인풋신호

SoftwareSerial BTSerial(4, 5);

.
int redTemp = 0;
int blueTemp = 0;
int greenTemp = 0;

// 네오픽셀 LED 셋팅(여기선 8개의 Pixel을 사용했는데 연결한 Pixel 수에 맞게 숫자를 바꿔주세요)
Adafruit_NeoPixel strip = Adafruit_NeoPixel(8, PIN, NEO_GRB + NEO_KHZ800);

// Neopixel의 색깔을 정해주는 함수
void colorWipe(uint32_t c, uint8_t wait) {
  for (uint16_t i = 0 ; i<strip.numPixels() ; i++) {
    strip.setPixelColor(i, c);
    strip.show();
    delay(wait);
  }
}

void setup() {
  strip.begin();
  // 모든 LED Pixel을 Off로 셋팅해줍니다.
  strip.show();
  Serial.begin(9600);
  BTSerial.begin(9600);
}

void loop() {

  // 블루투스를 통해 데이터가 들어오면
  if (BTSerial.available()) {
   
    // 받은 데이터를 각 색깔별로 맞게 셋팅해줍니다.
    if (BTSerial.find("R")) {
      redTemp = BTSerial.parseInt();
    }
    if (BTSerial.find("G")) {
      greenTemp = BTSerial.parseInt();
    }
    if (BTSerial.find("B")) {
      blueTemp = BTSerial.parseInt();
    }
   
    // 각 색깔별로 제대로 된 수치가 들어왔는지 시리얼모니터로 확인
    Serial.print("R : ");
    Serial.println(redTemp);
    Serial.print("G : ");
    Serial.println(greenTemp);
    Serial.print("B : ");
    Serial.println(blueTemp);
   
    // 각 색깔별로 셋팅된 값을 이용하여 NeoPixel LED의 색깔을 밝혀줍니다.
    colorWipe(strip.Color(redTemp, greenTemp, blueTemp), 50);
   
    // NeoPixel LED 색깔이 모두 켜졌으면 각 색깔값들을 초기화 
    if (BTSerial.read() == 13) {
      redTemp = 0;
      greenTemp = 0;
      blueTemp = 0;
      Serial.println("Reset");
    }
  }
}

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/11   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
글 보관함