산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

Arduino 제어 인공 양초

구성품 및 소모품

SparkFun LED - SMD RGB(WS2812)
LED를 4개의 모듈에 배치했고 11개의 모듈이 필요했습니다.
× 44
Arduino Nano R3
× 1
포토 저항기
× 1
IKEA "MONTERA" 케이블 채널
× 2
남성 헤더 40 위치 1 행(0.1")
× 7
M20-1060300 전선 대 기판 커넥터, M20-1 시리즈, 크림프, 리셉터클, 3, 2.54mm
LED 모듈당 2개가 필요합니다(4개 LED 중)(그리고 몇 개 추가 가능)
× 25
M20-1180046 접점, M20 시리즈, 소켓, 크림프, 22 AWG, 주석 도금 접점, M20 시리즈 암 크림프 하우징
LED 모듈당 6개가 필요하지만 100개 패키지로 제공되므로 1개 패키지로 충분할 수 있습니다.
× 1

필요한 도구 및 기계

납땜 인두(일반)

이 프로젝트 정보

얼마 전 가을과 겨울에 너무 어두워지는 아트리움 방을 미묘하게 밝히는 프로젝트를 시작했습니다. 나는 단단한 LED 조명보다 더 자연스러운 것을 원했고, 차라리 깜박이는 촛불의 생생한 모습을 원했습니다.

참을성이 없는 사람들(동영상을 찾기 위해 맨 아래로 스크롤하고 싶지 않은 사람)을 위한 결과는 다음과 같습니다.

...크리스마스 버전:

이제 이야기로 돌아가서:

하지만 사실적인 인공 불꽃을 만드는 것은 쉬운 일이 아니므로 내 아이디어는 "불꽃"이 직접적으로 보이지 않는 방식으로 조명을 배치하는 것이었습니다. 다만 벽에서 춤추는 빛이 생성하는 것일 뿐입니다.

방이 대부분 유리벽으로 이루어져 있기 때문에 창문을 잡고 있는 흰색 빔에 빛이 투사되도록 하는 것이 분명한 선택이었습니다. 조명을 수평 빔의 하단에 배치하고 수직 빔의 아래쪽으로 조명을 투사하기로 했습니다.

준비 및 계획

각 "촛불"을 개별적으로 제어할 수 있기를 원했기 때문에 LED 조명을 선택하는 것은 쉬웠습니다. 분명히 WS2812 기반 LED 모듈 세트여야 하므로 개별 LED 100개를 주문했습니다.

위의 그림에서 볼 수 있듯이 각 LED에는 6개의 연결과 방향 이 있습니다. 뒷면에 화살표로 표시되어 있습니다.

연결 중 2개는 5V로 표시됩니다. , 두 개는 GND 그리고 Din이 있습니다. (데이터 입력) 및 Dout (데이터 아웃). 두 개의 5V 두 개의 GND가 연결되어 있습니다. 에스. 따라서 실제로는 사이; 5V , GND , 소음 도트 .

"촛불"당 다른 수의 LED로 몇 가지 실험을 한 후 4개의 숫자를 생각해 냈습니다. . 이 숫자를 통해 각 빔에 대해 충분히 흥미로운 조명 조작을 수행하여 너무 많은 LED를 요구하지 않고도 사실적인 양초 모양을 만들 수 있었습니다.

하지만 다시 해야 한다면 조립을 단순화하기 위해 2x2 LED 모듈 세트를 주문했을 것입니다.

컨트롤러가 아주 고급일 필요는 없었고 제 가정은 Arduino Nano 충분할 것입니다.

Arduino의 배치가 명확하지 않았습니다. 결국 위의 첫 번째 사진(맨 왼쪽)에서 볼 수 있는 두꺼운 기둥 뒤의 수평 빔 자체에 놓기로 했습니다. 기둥은 두 개의 유리 벽이 만나는 방의 모서리에 배치됩니다(그 중 "오른쪽" 벽이 사진에 표시됨). 이 방법으로 저는 각 스트링의 물리적 길이를 최소화하기 위해 각 벽에 하나씩 두 개의 병렬 스트링에 LED를 가질 수 있었습니다. 이제 각 스트링의 총 길이는 2배가 아닌 약 4미터(13피트)가 됩니다.

Adafruit NeoPixel Überguide는 여기에서 정말 좋은 글이었습니다. WS2812 LED 모듈을 가지고 놀 계획이라면 반드시 읽어야 합니다! 예를 들어, 와이어의 물리적 길이를 제한하는 것이 좋은 이유를 알려줍니다.

케이블을 숨기는 중...

...내 경우에는 LED를 수평 빔의 아래쪽에 배치해야 했기 때문에 그렇게 어렵지 않았습니다. 저렴한 케이블 채널을 이리저리 찾아보니 IKEA에서 하나 찾았습니다(아이러니한지 분명한지 알 수 없는 스웨덴 제품).

강력한 양면 테이프로 LED 모듈 자체를 간단히 부착했습니다.

LED 모듈 만들기

하나의 전체 길이 스트링에 전체를 함께 납땜하고 싶지 않았기 때문에(빔의 바닥면에 설치하려고 할 때 발생할 케이블 잼을 상상했습니다) 다음을 사용하여 LED 모듈을 구축하기로 결정했습니다. 강한>커넥터 케이블용입니다.

LED 모듈은 가능한 한 많은 빛을 반사하기 위해 수직 빔 바로 옆에 배치해야 했습니다. 또한 케이블을 빔에 가깝게 만들고 싶었고 LED의 방향을 존중해야 했습니다. 이로 인해 (말장난 없이) 두 가지 버전을 갖게 되었습니다. 모듈의; 오른쪽 으로 가는 문자열에 배치된 하나의 설정 Arduino와 왼쪽으로 가는 것 .

두 가지 모듈 버전에는 두 가지 고유한 납땜 레이아웃이 필요했으며 주요 차이점은 올바른 LED에서 다음 LED로 데이터 흐름을 유지하는 것이었습니다.

LED는 직경이 약 9mm(3/8") 정도로 매우 작기 때문에 납땜하기가 쉽지 않았고 납땜 경험이 없기 때문에 결과가 그렇게 멋지고 예쁘지 않습니다. 하지만 작동했습니다.

납땜

납땜하기 전에 2x5 원본 섹션에서 2x2 LED 모듈을 잘라냈습니다. 그런 다음 한쪽 끝을 빨간색으로 칠하고 다른 쪽 끝을 검은색으로 칠하여 측면을 5V 및 GND에 가깝게 표시했습니다(바보 같은 실수를 방지하기 위해).

1단계 첫 번째 납땜 연습은 각 LED의 작은 금속 섬에 땜납 '방울'을 넣는 것이었습니다.

다음 단계는 간단한 직선, 가까운 연결을 연결하는 것이었습니다.

그런 다음 절연을 유지하기 위해 다음 케이블이 필요했습니다.

전체적으로 각 방향에 5개의 빔과 코너 빔이 있어 총 11개의 빔을 제공합니다. 각 LED 모듈에는 4개의 LED가 있으므로 개별 LED의 수는 44개입니다.

몇 개의 모듈 후에는 요령을 터득했고 결국 약 30분 만에 완전한 모듈을 납땜할 수 있었습니다.

"짧은 케이블 트릭"

많은 작은 케이블은 절연이 필요했지만 케이블의 전체 길이가 센티미터 미만인 경우 내부 코어가 노출되도록 양쪽 끝에서 충분한 절연을 절단하기가 어려웠습니다.

그런 다음 이 (분명한) 트릭을 알아냈습니다.

1. 케이블의 한쪽 끝을 납땜한 다음 구부려 원하는 길이로 자릅니다. (이 예에서 납땜되지 않은 끝은 Dout 아래 사진의 우측 하단 LED 부분)

2. 단열재를 약간 아래로 내립니다.

3. 해방된 단열재에서 원하는 길이를 잘라냅니다.

4. 단열재를 뒤로 밀어 자유단의 코어를 노출시킵니다. 타다!

이 방법으로 노출된 케이블 코어의 정확한 길이를 생성할 수 있었고 결과는 꽤 좋았습니다.

LED 모듈 마무리

결국 LED 모듈은 빔에 거꾸로 부착되어야 하므로 납땜되고 케이블로 채워진 뒷면은 접착 테이프를 붙들 수 있도록 준비해야 합니다.

나는 단순히 사각형으로 자른 임의의 평평한 플라스틱을 사용하게되었습니다. 이들은 단순히 핫 글루로 LED 모듈에 부착되었습니다.

여기에 모든 완전한 모듈이 있습니다! 만세!

(이 시점에서 왼쪽으로 가는 것과 오른쪽으로 가는 것을 구분하기 위해 표시를 하는 것이 중요했습니다!)

이제 평평한 뒷면에 강력한 접착 테이프를 사용하여 전체 모듈을 쉽게 부착했습니다.

케이블 만들기

운 좋게도 오래된 전화 연장 코드 롤이 주위에 놓여 있었습니다. 이 케이블에는 3개의 와이어(5V, GND 및 데이터)가 필요했기 때문에 4개의 개별 와이어로 충분했습니다.

특수 압착 도구 없이 암 소켓을 장착하는 것은 쉽지 않았지만 완전히 가능했습니다.

케이블 채널은 쉽게 장착되었습니다. 적당한 길이로 잘라 미리 붙인 접착 테이프를 이용해 가로대에 붙이면 됩니다.

최종 마운트된 모듈은 다음과 같습니다.

자동 활성화 및 비활성화

어두워지면 수동으로 조명을 켜고 나중에 끄는 것을 원하지 않기 때문에 포토 레지스터를 넣었습니다.

나는 단순한 온/오프가 아니라 황혼의 시간 동안 점차적으로 빛의 세기가 변하는 것을 원했다. 이러한 이유로 "낮"이 "황혼"으로 바뀌고 "황혼"이 "어두움"으로 바뀌는 저녁 시간의 시점에서 내 포토 레지스터의 아날로그 값을 알아야 했습니다.

아래의 그래프에서 빨간색 곡선은 하루 동안 변하는 포토 저항기의 아날로그 판독값을 나타냅니다(아래 실제 판독값이 아니라 내 손으로 그린 ​​것). 두 개의 희미한 수평선이 두 수준을 표시합니다. 상단은 "낮"이 "황혼"으로 바뀌는 한계이고 하단은 "황혼"이 "어둠"으로 바뀌는 한계입니다. 따라서 빨간색 곡선이 상단 수평선 위에 있으면 DAY로 간주하고 하단에 있으면 NIGHT로 간주합니다.

녹색 직선은 "깨끗한" 일광 측정값입니다. 즉, 야간에는 최소값(0.0), 주간에는 최대값(1.0), 황혼 동안 선형 기울기입니다.

실제 아날로그 판독값을 알기 위해 4개의 저항기의 전류, 최소값 및 최대값을 표시하기 위해 LCD 화면과 함께 4개의 포토 저항을 Arduino에 연결했습니다. 나는 내가 나쁜 것을 가지고 있는지 몰랐기 때문에 4개를 사용했습니다. 그래서 그들 대부분이 거의 같은 판독값을 가지고 있다면 그들이 작동할 것이라는 것을 알았습니다. 분명히 나는 ​​Arduino가 결국 LED를 구동하도록 의도 한 동일한 위치에 장치를 배치했습니다. 이렇게 생겼습니다:

LCD는 매우 제한적이기 때문에 약 5초 동안 한 번에 하나의 포토 레지스터 판독값을 보여주었습니다. 그리고는 낮에 가끔 가서 종이에 숫자를 적었습니다. (분명히 나는 ​​그것을 내 노트북에 계속 연결하고 직렬 연결로 번호를 보낼 수 있었지만 낮에는 노트북이 필요했고 하루 종일 아트리움에 앉아 있고 싶지 않았습니다.)

결국 나는 "630"아래는 어둡고 "800"이상은 밝은 것으로 결정했습니다. 그러나 그 수치는 내가 직렬로 사용한 10kΩ 저항과 함께 내 포토 저항에 딱 맞아떨어지므로 절대적인 진실은 아닙니다.

Arduino 소스 코드

촛불뿐만 아니라 다양한 조명 효과를 주고 싶었습니다. 이러한 이유로 저는 소스 코드를 모듈식으로 구축했으며 더 쉽게 볼 수 있도록 서로 다른 메커니즘을 서로 다른 파일에서 분리하려고 했습니다.

메인 .ino -file은 정말 작게 유지됩니다. 기본적으로 모든 것을 시작하고 Update()를 호출합니다. 몇 가지 도우미 클래스(이는 차례로 트릭을 수행함)에 대해 설명합니다.

현재 소스 코드는 두 가지 다른 효과를 지원합니다. 촛불 효과와 "크리스마스" 효과. 현재 효과 선택은 하드 코딩되어 있으므로 전환하려면 코드를 다시 컴파일해야 합니다. 결국 이것은 리모콘을 사용하여 제어해야 합니다. 더 나은 방법은 스마트폰입니다. 보겠습니다.

<섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">

코드

아트리움 조명
Arduino의 모든 소스 코드https://github.com/emmellsoft/AtriumLighting

회로도

2drkW5vm9e7vAdGPxOsm.fzz

제조공정

  1. Bluetooth를 통해 제어되는 Raspberry Pi Robot
  2. 조이스틱 제어 RC 자동차
  3. Bluetooth가 탑재된 Arduino로 LED 제어!
  4. Nunchuk 제어 로봇 팔(Arduino 포함)
  5. 음성 제어 로봇
  6. Arduino Quadruped
  7. Arduino 제어 피아노 로봇:PiBot
  8. Arduino RGB 컬러 믹서
  9. DIY Arduino RADIONICS 치료 기계
  10. DMX RGB LED 실외용