제조공정
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
| ||||
|
안녕하세요 여러분, 저는 이미 집 안에 많은 DMX 제어 조명을 가지고 있지만 외부에도 몇 개를 갖고 싶었습니다. 이 RGB DMX 조명은 다소 비싸기 때문에(하나의 약 200 - 300€) 대안을 찾았습니다.
내가 찾은 것은 IR 제어 장치가 있는 이 정말 저렴한 RGB LED 홍수였습니다. 약 8€/10W RGB입니다.
따라서 DMX를 이해하도록 변환하기만 하면 됩니다.
비용과 필요한 PCB 공간을 줄이기 위해 5개의 모든 홍수에는 별도의 상자에 하나의 Arduino 브레인만 있습니다. 각 조명에는 3채널 PWM 트리거 정전류 소스 PCB와 D-Sub 9 커넥터 케이블이 있습니다. 이 PCB는 조명 바닥의 작은 구획에 완벽하게 맞습니다. LED의 각 채널은 350mA로 설정됩니다.
5개의 모든 조명은 arduino 및 무선 DMX 수신기가 있는 중앙 상자에 연결됩니다.
이 상자 안에는 다음이 있습니다:
<울>지금까지 폭우 속에서 3주를 버텼으며, 상자를 봉합하고 밀봉이 방수 처리되어 있습니다.
Nano를 장착한 PCB는 모든 DMX 프로젝트에 보편적이며 DMX 버스 신호를 Arduio로 변환할 수 있으며 I2C 버스 및/또는 MosFET(BUZ11)가 있는 6개의 모든 PWM 채널을 위한 브레이크아웃이기도 합니다. 또한 내부 램프를 DMX로 업데이트하기 위해 MosFET와 함께 사용했습니다.
따라서 모두 함께 PC/휴대폰을 통해 무선 DMX를 통해 제어되는 5개의 개별 제어 램프(여기서는 유리 난간용)가 생성됩니다.
다운로드에서 PC 제어 소프트웨어 Freestyler의 PCB용 독수리 파일, Arduino 스케치 복사 및 붙여넣기 및 램프용 정의 파일을 찾을 수 있습니다.
DMX-Adresses는 하드 코딩되어 주소 200을 시작한 다음 조광기 채널 없이 5x 3 채널 R, G 및 B입니다.
Arduino-Sketch에서는 빨간색 LED가 녹색과 파란색보다 훨씬 밝아서 순수한 흰색으로 혼합되지 않기 때문에 빨간색 채널의 값을 조작해야 했습니다.
또는 Arduio IDE 터미널을 통해 RGB 값을 직접 설정할 수 있는 테스트/버그 수정용 스케치가 하나 있습니다.
총 5개의 램프에 대한 총 비용은 약 110€이며, 모든 부품(조명 제외)은 Reichelt.de를 통해 소싱되고 모든 PCB는 platinenbelichter.de에서 제작합니다(큰 추천!)
자유롭게 수정하거나 모두 최적화하세요!
안녕,
세바스찬
섹션> <섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">// 5 RGB LED의 15 PWM / DMX 시작 주소 200 / 5x 3채널 RGB#include#include #include Adafruit_PWMServoDriver pwm =Adafruit_PWMServoDriver();#define DMX_SLAVE_CHANNELS 15DMX_Slave dmx_slave ( DMX_SLAVE_CHANNELS );int channel[16];int channelOut[16];int value[16];int ch =0;int red =00;int =0; 무효 설정() { Wire.begin(); // i2c 버스에 합류(마스터의 경우 주소 선택 사항) pwm.begin(); pwm.setPWMFreq(120); // 이것은 최대 PWM 주파수입니다.#ifdef TWBR // I2C 비트레이트 저장 uint8_t twbrbackup =TWBR; // Wire.begin() 호출 후 변경해야 함 (pwm.begin() 내부) TWBR =12; // 400KHz로 업그레이드!#endif // DMX 설정 dmx_slave.enable(); dmx_slave.setStartAddress(200); // 모든 PWM을 높음으로 설정 -> LED 끄기 pwm.setPWM(0, 4096, 0 ); pwm.setPWM(1, 4096, 0); pwm.setPWM(2, 4096, 0); pwm.setPWM(3, 4096, 0); pwm.setPWM(4, 4096, 0); pwm.setPWM(5, 4096, 0); pwm.setPWM(6, 4096, 0); pwm.setPWM(7, 4096, 0); pwm.setPWM(8, 4096, 0); pwm.setPWM(9, 4096, 0); pwm.setPWM(10, 4096, 0); pwm.setPWM(11, 4096, 0); pwm.setPWM(12, 4096, 0); pwm.setPWM(13, 4096, 0); pwm.setPWM(14, 4096, 0 );}void loop() { // DMX 입력 for (int j =0; j <=14; j++) { channel[j] =dmx_slave.getChannelValue (j+1); } // 색상 미세 조정 channelOut[0] =map(channel[0], 0, 255, 0, 1400); // 빨간색 LED 1 감소 channelOut[1] =map(channel[1], 0, 255, 0, 4095); 채널아웃[2] =맵(채널[2], 0, 255, 0, 4095); channelOut[3] =맵(채널[3], 0, 255, 0, 1400); // 적색 LED 2 감소 channelOut[4] =map(channel[4], 0, 255, 0, 4095); channelOut[5] =맵(채널[5], 0, 255, 0, 4095); channelOut[6] =맵(채널[6], 0, 255, 0, 1400); // 빨간색 LED를 줄임 3 channelOut[7] =map(channel[7], 0, 255, 0, 4095); channelOut[8] =맵(채널[8], 0, 255, 0, 4095); channelOut[9] =맵(채널[9], 0, 255, 0, 1400); // 빨간색 LED를 줄임 4 channelOut[10] =map(channel[10], 0, 255, 0, 4095); channelOut[11] =맵(채널[11], 0, 255, 0, 4095); channelOut[12] =맵(채널[12], 0, 255, 0, 1400); // 빨간색 LED 감소 5 channelOut[13] =map(channel[13], 0, 255, 0, 4095); channelOut[14] =맵(채널[14], 0, 255, 0, 4095); //(int i =0; i <=14; i++) { if (channelOut[i] ==0) { pwm.setPWM(i, 4096, 0 ); } else { pwm.setPWM(i, 0, 4095 - channelOut[i]); } }}
// 5개의 RGB LED에 대한 15 PWM#include#include // 이런 식으로 호출되며 기본 주소 0x40Adafruit_PWMServoDriver pwm =Adafruit_PWMServoDriver();//를 사용할 수 있습니다. 또한 원하는 다른 주소로 호출합니다.//Adafruit_PWMServoDriver pwm =Adafruit_PWMServoDriver(0x41);int channel[15];int channelOut[15];int value[15];int ch =0;int red =0;int green =0;int 파란색 =0; 무효 설정() { Wire.begin(); // i2c 버스에 참여(마스터의 경우 주소는 선택 사항) Serial.begin(9600); Serial.println("입력 대기 중:LED, R, G, B, [각 0-255]"); pwm.begin(); pwm.setPWMFreq(120); // 이것은 최대 PWM 주파수입니다. // 실제로 속도를 높이고 싶다면 '고속 400khz I2C' 모드로 들어갈 수 있습니다. // 일부 i2c 장치는 이것을 별로 좋아하지 않으므로 버스를 공유하는 경우 시청/ / out for this!#ifdef TWBR // I2C 비트 전송률 저장 uint8_t twbrbackup =TWBR; // Wire.begin() 호출 후 변경해야 함 (pwm.begin() 내부) TWBR =12; // 400KHz로 업그레이드!#endif // 모든 PWM을 높음으로 설정 -> LED 끄기 pwm.setPWM(0, 4096, 0 ); pwm.setPWM(1, 4096, 0); pwm.setPWM(2, 4096, 0); pwm.setPWM(3, 4096, 0); pwm.setPWM(4, 4096, 0); pwm.setPWM(5, 4096, 0); pwm.setPWM(6, 4096, 0); pwm.setPWM(7, 4096, 0); pwm.setPWM(8, 4096, 0); pwm.setPWM(9, 4096, 0); pwm.setPWM(10, 4096, 0); pwm.setPWM(11, 4096, 0); pwm.setPWM(12, 4096, 0); pwm.setPWM(13, 4096, 0); pwm.setPWM(14, 4096, 0 );}void loop() { //색상 입력 while (Serial.available()> 0) { ch =Serial.parseInt(); 빨간색 =Serial.parseInt(); 녹색 =Serial.parseInt(); 파란색 =Serial.parseInt(); if (Serial.read() =='\n') {} ch =제약(ch, 0, 4); 빨간색 =제약(빨간색, 0, 255); 녹색 =제약(녹색, 0, 255); 파란색 =제약(파란색, 0, 255); // 세 개의 숫자를 출력합니다. Serial.print("new values:"); Serial.print(" LED="); Serial.print(ch, DEC); Serial.print(" R="); Serial.print(빨간색, DEC); Serial.print(", G="); Serial.print(녹색, DEC); Serial.print(", B="); Serial.println(파란색, DEC); } 스위치 (ch) { 경우 0:채널[0] =빨간색; 채널[1] =녹색; 채널[2] =파란색; 부서지다; 사례 1:채널[3] =빨간색; 채널[4] =녹색; 채널[5] =파란색; 부서지다; 사례 2:채널[6] =빨간색; 채널[7] =녹색; 채널[8] =파란색; 부서지다; 사례 3:채널[9] =빨간색; 채널[10] =녹색; 채널[11] =파란색; 부서지다; 사례 4:채널[12] =빨간색; 채널[13] =녹색; 채널[14] =파란색; 부서지다; } // 색상 미세 조정 channelOut[0] =map(channel[0], 0, 255, 0, 1400); // 빨간색 LED 1 감소 channelOut[1] =map(channel[1], 0, 255, 0, 4095); 채널아웃[2] =맵(채널[2], 0, 255, 0, 4095); channelOut[3] =맵(채널[3], 0, 255, 0, 1400); // 적색 LED 2 감소 channelOut[4] =map(channel[4], 0, 255, 0, 4095); channelOut[5] =맵(채널[5], 0, 255, 0, 4095); channelOut[6] =맵(채널[6], 0, 255, 0, 1400); // 빨간색 LED를 줄임 3 channelOut[7] =map(channel[7], 0, 255, 0, 4095); channelOut[8] =맵(채널[8], 0, 255, 0, 4095); channelOut[9] =맵(채널[9], 0, 255, 0, 1400); // 빨간색 LED를 줄임 4 channelOut[10] =map(channel[10], 0, 255, 0, 4095); channelOut[11] =맵(채널[11], 0, 255, 0, 4095); channelOut[12] =맵(채널[12], 0, 255, 0, 1400); // 빨간색 LED 감소 5 channelOut[13] =map(channel[13], 0, 255, 0, 4095); channelOut[14] =맵(채널[14], 0, 255, 0, 4095); //(int i =0; i <=14; i++) { if (channelOut[i] ==0) { pwm.setPWM(i, 4096, 0 ); } else { pwm.setPWM(i, 0, 4095 - channelOut[i]); } }}
제조공정
이 Arduino Tutorial에서는 RGB LED가 무엇이며 Arduino 보드와 함께 사용하는 방법을 배웁니다. 다음 동영상을 보거나 아래에 작성된 튜토리얼을 읽을 수 있습니다. RGB LED란 무엇입니까? RGB LED는 빨강, 초록, 파랑의 3가지 기본 색상을 혼합하여 다양한 색상을 낼 수 있습니다. 따라서 실제로 단일 케이스에 포장된 빨간색, 녹색 및 파란색 3개의 개별 LED로 구성됩니다. 이것이 4개의 리드가 있는 이유입니다. 3가지 색상 각각에 대해 하나의 리드가 있고 RGB LED 유형에 따라 하나의 공통 캐소
Arduino 자습서 시리즈의 두 번째 Arduino 자습서에 오신 것을 환영합니다. 이 튜토리얼에서는 디지털 입력 및 출력 핀이 작동하는 방식을 배우고 버튼과 LED를 사용하여 몇 가지 예를 만들 것입니다. 또한 PWM(Pulse Width Modulation)이 무엇인지 배우고 PWM을 사용하여 LED 밝기를 제어하는 예를 만듭니다. 이것은 따라하기 쉬운 단계별 비디오 자습서입니다. 또한 동영상 아래에서 이 튜토리얼에 필요한 부품과 동영상의 예제 소스 코드를 찾을 수 있습니다. 이 가이드에 필요한 구성요소 Ardui