로그인회원등록 내글장바구니주문조회현재접속자
 상품 검색








 게시판 검색





 
 
회원등록 비번분실


온라인 입금계좌
ㆍ기업은행
ㆍ219-043192-01-028
ㆍ이건영

      거래은행 바로가기
 
 Sensor Applications
아듀이노 응용소스
작성자 avrtools™        
작성일 2012/03/15
첨부#1 dmx512-6ch-rcvr.zip (6KB) (Down:1010)
ㆍ추천: 0  ㆍ조회: 3630   
  Arduino DMX512 수신기 제작
2008년에 DMX 수신장치에 대한 하드웨어와 간단한 소프트웨어를 이 자료실에서 소개했습니다만,
불행하게도 대부분 인터넷에서 공개하는 소스는 제대로 작동하는 것이 별로 없습니다.
복잡하고 난해한 제어 논리를 사용하면서 설명이 소홀하거나, 중요한 부분에 버그가 있기도 합니다.
 
그래서 이번에는 송신기도 빌려오고, 수신기도 빌려오고,제가  직접 시험하면서 만든 소스입니다.
이 자료대로 따라하면, 틀림없이 작동됩니다. 사진도 첨부 했습니다만. 송신기는 판매상품이라 제외,,, 
사실 이자료는 DMX512 수신기판 제작을 의뢰받아서 만들던 소스입니다.

DMX는 DMX512 라고 하며, 하드웨어는 2선식 차동신호(RS485 인터페이스)를 사용하는 직렬 비동기방식으로
250Kbps의 빠른 전송속도와 1 start bit, 8 Data bit, 2 Stop bit, No parity 의 포맷을 사용합니다.
먼저 DMX의 통신 규격에 대하여 간단히 설명하고 라이브러리의 사용방법을 설명하도록 하겠습니다.

DMX512 커넥터
DMX512 연결에 사용하는 커넥터는 3핀 XLR 혹은 5핀 XLR을 사용한다.
 

송수신 공통으로 1번 핀은 GND로 케이블의 시일드(정전차폐용 금속외피)에 연결한다.
회로에서 1번 GND 핀은 직접 전원 -측에 연결하지 않고 100옴 저항을 직렬로 연결한다.
실제 통신신호선인 2 번핀은 D- 신호를, 3 번핀은 D+ 신호를 연결한다.
5핀 방식 커넥터는 4, 5번은 사용하지 않거나, 전원단자로 사용하기도 한다.

연결 핀의 위치만 참고한다. 요즘 위와 같이 2개의 커넥터를 공통으로 연결하지 않는다.
비용을 절약하거나 시험용으로는 위와 같이 2개를 하나의 RS485 포트에 연결해도 되지만,

2개의 DMX 커넥터가 있는 경우는 2개의 RS485 포트에 2개의 커넥터를 송수신 전용으로 각각 연결한다.
커넥터는 전기신호가 나오는 송신측은 금속핀이 돌출되지 않은 Jack 이고, 수신측은 금속핀이 돌출된 Plug 이다.
커넥터의 절연용 몸체는 플라스틱이므로 전기가 통하는 금속핀과는 반대의 형태로 구성되어 있다.

비절연 방식  
비절연 방식은 가장 많이 사용하는 방식으로 동일한 전원을 사용하는 경우에 적용되는 방식이다.
좌측이 MPU의 UART 포트에 연결하고 우측은 DMX512 커넥터에 연결한다.
 
1번은 GND, 2번은 D+, 3번은 D- 로 연결한다. 통신선은 노이즈나 작은 신호에 반응하지 않도록
풀업 R1과 풀다운 R3 저항을 신호극성과 반대로 연결한다. D-는 +로 풀업해야 하고, D+는 -로 풀다운해야 한다.
송신신호 DI는 TX에 연결하고, 수신출력 RO는 RX에 연결한다. 송신제어 DE는 대부분 D2로 연결한다. 

DMX 통신선에 통신신호가 없으면,  D-는 +5 Volt 로 되고, D+는 0 Volt로 된다. (Null Level)
DMX 통신선에 통신신호가 있으면, D-는 0 Volt 로 되고, D+는 +5 Volt로 된다. (Active Level)
DMX 송신기와 마지막에 연결하는 수신기에는 신호반사를 억제하는 더미저항 R2를 연결한다. 
 
위 회로를 아듀이노에 연결하는 방법은 RO 출력을 RX (D0)로, TX(D1)을 DI 입력으로 연결한다.
그외 아듀이노의 회로는 일반적인 응용과 같으므로 생략한다.

절연방식
절연방식은 LED 전원이 다른 장치로 연결하거나, 장거리 혹은 잡음이 있는 곳에 사용할 때 효과적이지만, 
가격이 비싼 단점이 있다. 또한 절연된 DC-DC 컨버터 전원 혹은 다른 장치의 전원을 연결해 주어야 한다.

 

최고급 절연 통신포트와 저잡음 아날로그 Dimming 신호를 출력하는 DMX512 수신장치
방송용 카메라에서 플리커가 흐르지 않는 전압제어 방식으로 전력손실이 PWM 방식보다 크다.
 
 

DMX512의 신호
이 신호는 RS485 인터페이스를 통과하지 않은 TTL 신호이므로 신호 극성이 반대이다.
즉 5V Level 이 신호가 없는 Null 상태이고, 0 Level 이 신호가 있는 Active 상태이다.
 

위 그림을 보면 처음엔 Null 상태(HIGH)로 있다가, 88us의 Break 신호(LOW)가 나오고,
다음에 2 개의  4us 정지 비트로 8us HIGH 신호가 있다. 수신기에 Frame으로 FE 오류가 들어온다.

이 신호를 DMX512 수신장치는, 이제부터 채널 데이터가 들어 온다는 명령으로 처리한다.
즉 88us의 중간이후 부분을 그러나 FE 오류가 들어있는 1개의 11 비트 1 Frame으로 인식한다. 
수신 가로채기가 발생하며, 수신처리 함수에서 FE가 검출되고, DMX512의 Break 신호로 처리한다.

BREAK 신호는 88us 이상 송신한다. (수신장치가 느리면 1초까지 시간을 줄 수도 있다, 실제로는 안준다)
DMX512 신호는 88us 이상의 breakr 신호를 시작으로, 모두 513개의 11 비트 비동기 직렬신호를 송신한다.

이어지는 최초의 채널 데이터 값은 항상 0 으로 수신장치에 브레이크 신호 이후에 시작 채널이 0임을 알려준다.
이 Start 명령인 채널번호 0은 잘못 들어올 수도 있으므로, 값이 0 인지 확인하지만, 사용할 일은 없다. 
 
이후 비동기 신호 표준과 같이 1 개의 시작비트, 8 개의 데이터 비트, 마지막으로 2개의 정지비트로 된
정상적인 DMX512의 제어신호인 512 개의 채널 데이터 신호가 연속된다. (1~512 순서대로 데이터만 있다)
 
DMX에서는 채널번호를 송신하지 않으며, 1번 채널부터 ~512 채널까지 11 비트 프레임으로 송신한다. 
송신장치가 송신 이외의 다른 처리를 해야 한다면, 채널과 채널 사이는 필요한 만큼 null 상태가 되어도 좋다.

1 비트의 펄스폭 유지 시간은 4uS 이며, 11 비트인 DMX 1 바이트를 송신하려면 44 uS이 필요하다.
UART 포트에서 DMX 속도를 맞춘다면 250,000 bps 이며, 포맷은 1 START, 8 DATA, 2 STOP 이다.
DMX 데이터인 11 비트 Frame은, START 비트 1개, 데이터 비트 8개, STOP 비트 1개로 구성되며,
START는 항상 0 이고, STOP은 항상 1 이다. 데이터는 전송값에 따라서 0~255 (0x00 ~ 0XFF) 이다.

DMX512의 채널 데이터
첫 번째 데이터는 0번 채널이며, DMX에는 0번 채널이 없으며, 시작 신호로 사용한다.(START BYTE)
따라서 실지로 송신되는 10 비트의 폭의 채널은 모두 512 개지만, 시작 프레임을 포함한 총 전송 프레임은 513 개이다.
 

DMX 수신장치의 채널번호가 03 이고, 내장된 채널이 4 개라면
0 번은 전체 밝기를 제어하고, 1~3 번은 R, G, B 채널의 밝기이다.  
따라서 DMX 송신측의 3,4,5,6 채널이 수신장치 3의 채널 0,1,2,3으로 전송된다.
3축 Motion Control을 한다면 3 채널이 추가된다. 만일 백색 LED를 추가한 장치인 경우
Dim, White, Red, Green, Blue 채널 다음에 X, Y, Z로 모두 8 채널이 배정된다.

DMX512 수신기 소스코드
제목 : ArDMX - Simple DMX Receiver Code
참조 : http://arduino.cc/playground/DMX/Ardmx
 
ArDMX는 탑재형 제어장치인 아듀이노 기판의 펌웨어로 간단한 C 코드 조각을 제공한다.
별도의 추가적인 C/CPP 파일은 모두 필요없다. 그러나 기본적인 약간의 초기화 소스를 포함한다.
그리고 아듀이노 기판의 직렬포트로 새로운 데이터가 도착했을 때 호출하는 가로채기 처리함수를 필요로 한다,
독일의 Henne 사이트의 커다란 기반의 응용노트를 아듀이노용으로 간단하게 정리한 소스이다.
 
DMX 시일드 하드웨어가 필요하다. (RS485 BoB 모듈제품 : 가격 \4,900) 


혹은 간단한 DMX 회로를 만들어야 한다.
그들의 RS485 송수신기는 대부분 75176 혹은 MAX485 IC로 되어 있다.     

MAX485 혹은 75176의 RD 핀은 연결아듀이노 기판의 RX 핀으로 연결되어야 한다.
그리고 IC는 올바른 전원이 필요하다. 그리고 RE와 DE 핀은 GND로 연결해야 한다.
TD는  아듀이노 기판의 TX에 연결하거나, 송신하지 않으면 연결하지 않아도 된다.
 

(1) 아래의 SRAM 영역의 변수(Variable)와 상수의 정의(#define)를 아듀이노 스켓치에 추가한다.
#define Rx_Staus_Pin 2  // DMX 수신상태를 알리는 LED가 연결된 핀 (채널 수신시 깜빡인다)
volatile uint16_t DmxAddress; // 시작 채널 (수신기의 채널 번호이다, 채널설정 스위치를 읽는 방법을 많이 쓴다)
volatile uint8_t  DmxRxField[8]; // DMX 값의 배열변수 (raw)로 내장 채널의 갯수를 정의한 것임
enum {IDLE, BREAK, STARTB, STARTADR}; // DMX 상태를 숫자로 정의, (대기, 브레이크, 시작바이트, 채널 시작)
volatile uint8_t gDmxState; 
// DMX 상태를 저장하는 변수 (숫자로 된 상태값을 이 변수에 저장한다)
 
(2) 다음의 직렬포트를 초기화하는 함수 setup()을 추가해야 한다.
void setup()
{
  Serial.begin(250000);  // 직렬수신 포트를 250 K bps 속도로 설정
  pinMode(Rx_Status_Pin, OUTPUT);
// RX 상태 LED 핀을 출력으로 설정
  gDmxState= IDLE;  // 대기 상태
  DmxAddress = 3;  
// DMX 수신을 시작하는 주소 (DMX 채널 번호다, 채널설정 스위치를 읽는 방법을 많이 쓴다)
}
 
(3) 고속전송 DMX 함수가 실행될 때, UART 핀으로 새로운 데이터가 도착하면,
가로채기 처리함수(interrupt service routine : ISR)가 주함수에서 자동으로 호출된다. 
이것은 가장 중요하게 긴급히 처리되어야 한다. 그리고 처리 후에는 쉬고 있는 주 함수로 돌아가야 한다.

// 가로채기 함수를 사용하면, DMX 수신시에 주함수 작동이 정지되고, 가로채기 처리함수가 실행된다.
void USART0_RX_vect()
{
        digitalWrite(Rx_Status_Pin, HIGH);  // DMX 수신시에 led를 켠다. 
        static  uint16_t DmxCount;
        uint8_t  USARTstate= UCSR0A;    // 데이터를 받기 전에 상태를 읽는다
        uint8_t  DmxByte   = UDR0;         // 데이터를 받는다
        uint8_t  DmxState  = gDmxState; //  처리속도를 올리기 위해 SRAM 변수에서 값을 읽는다
 
        if (USARTstate &(1<<FE0))        //  break 신호인지 확인한다
        {
                DmxCount =  DmxAddress;     // 채널 카운터를 리셋한다.
                gDmxState= BREAK;        // break 가 들어온 상태를 SRAM 변수에 저장한다.
        }
 
        else if (DmxState == BREAK)    // break가 아니라면
        {
                if (DmxByte == 0) gDmxState= STARTB;  // 시작 바이트 0을 확인한다, 시작상태로 변경
                else    gDmxState = IDLE;    // break도 없고 시작바이트가 아니면 대기로 변경

        }
 
        else if (DmxState == STARTB)   
// 시작 상태이면
        {
                if (--DmxCount == 0)    // DmxCount 를 -1하고 0 인지 확인
                {
                        DmxCount= 1;            // DmxCount를 1로 변경
                        DmxRxField[0]= DmxByte; // 수신된 데이터를 첫번재 DMX 수신 값으로 저장한다
                        gDmxState= STARTADR;   // 상태를 채널이 시작된 것으로 저장
                }
        }
 
        else if (DmxState == STARTADR) // 상태가 채널이 시작된 것이라면?

        {
                DmxRxField[DmxCount++]= DmxByte;        // 다음 채널 값에 저장한다
                if (DmxCount >= sizeof(DmxRxField))  
// 내장된 모든 채널의 값이 수신되었는가?
                {
                        gDmxState= IDLE;        // 채널의 끝이면 대기상태로 저장
                }
        }
        digitalWrite(Rx_Status_Pin, LOW);     // 수신이 끝났으면 led를 끈다.

}
 
(4) 수신된 dmx 값의 작동
만일 위의 모든 작업이 잘 되었다면, 수신 LED가 행복하게 깜빡인다.
이제 주 함수에서 수신된 DMX 채널값으로 작업을 할 수 있다.
수신된 DMX 채널 값들은 DmxRxField 라고 정의된 변수에 저장되어 있다.
 
주함수에서 별도로 ISR 함수를 호출할 필요 없이,
가로채기 처리함수에서 저장된 DmxRxField 변수의 채널 값을 주 함수에서 사용할 수 있다
DMX 채널 값에 따라 채널 출력핀에 연결된 LED의 밝기를 간단히 바꿀 수 있다. 
 
void loop()
{
  if (dmx_vlaid =3) {
  dmx_valid =0;
 
   // 가로채기 처리함수에서 저장된 1~4 채널의 값은, 기판의 아날로그 출력 핀으로 출력할 수 있다. 
   analogWrite(3, DmxRxField[0]); // D3 핀 LED로 1 채널의 아날로그를 출력한다. 

   analogWrite(5, DmxRxField[1]); // D5 핀 LED로 2 채널의 아날로그를 출력한다. 
   analogWrite(6, DmxRxField[2]); // D6 핀 LED로 3 채널의 아날로그를 출력한다. 
 
  // 채널 5,6,7은 Moving Control 용이지만 디버그용으로 임시로 출력한다. 
  analogWrite(9, DmxRxField[3]); // D9 핀 LED로 4 채널의 아날로그를 출력한다. 
  analogWrite(10, DmxRxField[4]); // D9 핀 LED로 5 채널의 아날로그를 출력한다. 
  analogWrite(11, DmxRxField[5]); // D9 핀 LED로 6 채널의 아날로그를 출력한다. 
  }

 
  // 여기는 DMX 수신장치에서 추가로 필요한, 작동상태를 표시하는 LED의 제어나  
  // DMX512 통신이 0.5초 이상 안둘어 오면 ch1~ ch6 출력을 0을 만드는 함수를 추가한다.
  // 필요에 따라서 장치의 용도를 바꾸는 송신함수 등을 추가할수도 있다.   
}
 
공개된 자료에는 항상 몇개의 오류가 있는데, 오류를 고치고, 컴파일 해서 확인하였습니다.
위의 8채널 DMX512 소스를 아듀이노 스켓치에서 Uno로 맞추어 컴파일하면, 일단 컴파일 까지는 OK가 된다.
 
시험용 LED는 D3, D5, D6, D9에 LED Anode를 LED Cathode는 모두 GND로 연결한다.
RS485 출력 D-와 D+는 DMX512 커넥터로 DMX512 시험용 송신기 출력의 D-, D+와 연결한다.
아래와 같이 M328-mini V2.0 (Arduino Uno 호환기판)과 RS485 IC인 MAX485를 빵판에서 시험하였다.

M328-mini V2.0 기판과 USB2serial V2.0으로 DMX512 수신을 시험 중인 사진 (2012.3.25 완성)
 
 
M328-mini 기판의 전원은 USB2serial V2.0 기판에서 들어오는 USB 전원을 임시로 사용하고 있다.
RS485는 MAX485를 사용하고 있으며, DMX 수신 주소는 임시로 001 번을 사용하고 있다,
좌측 상단에 녹색과 적색 전선으로 위로 연결된 선은, DMX512 송신기에서 들어오는 D+ 와 D- 이다.

좌측 하단의 적색 LED 부터 ~ 우측하단의 백색 LED 까지 ch1 ~ch5의 출력으로 밝기의 제어는 PWM을 사용한다.
기판에 장착된 D13 녹색 SMD LED는 status indicator로 사용, DMX12 신호가 들어오면 깜빡인다.
 
스케치 소스를 편집하고 컴파일하기 귀찮다면?, HEX 파일을 받아서 펌웨어를 구울 수 있습니다.
첨부파일 : 위에서 시험한 dmx512_6ch_Rcvr의 hex 압축파일

 
HEX 파일을 아듀이노 기판에서 USB로 연결하여 직접 굽는 방법은 다음 자료를 참고하세요.
http://www.avrtools.co.kr/technote7/board.php?board=download&command&body&no=107
Arduino Program을 사용하여 아듀이노 스케치에서와 같이 USB의 통신포트와 HEX 파일을 지정하면
첨부된 HEX 파일을 아듀이노 기판에 펌웨어로 업로드할 수 있습니다. (아듀이노 기판의 부트로더를 사용합니다)

첨부된 펌웨어는 수신시작 채널은 001 번이고, 내장 채널은 모두 6개를 수신합니다, 즉 ch1 ~ch6을 수신합니다.
각 채널 1~6 의 밝기는 아날로그 출력 0~6 (D3, D5, D6, D9, D10, D11)으로 출력합니다.
다른 DMX 채널 번호가 필요한 분은 아듀이노 기판을 주문할 때, DMX 채널 변경을 요청하시기 바랍니다.

 
시험 결과
아듀이노 스켓치에서 Serial.begin(250000); 을 사용하여 직렬포트를 초기화하면,
아듀이노 전용명령을 사용하면 작동하는, hardwareSerial.cpp 때문에,
UART 수신 가로채기(ISR) 처리 함수를 작동시킬 수 없습니다.
다음과 같이, UART 포트를 직접 초기화해야만, hardfwareSerial.cpp가 작동하지 않습니다. 

16MHz를 사용하는 UNO 기판에서는 BPS 설정에서 bps값을 16으로 나누면 bps가 500K로 됩니다.
수신시에 데이터가 2로 나뉘어 다른 채널로 들어가 채널 오류가 발생합니다,,, 8L 로 나누어 주면 잘 됩니다.
 
#define F_CPU 16000000  // 16MHz clock
#define DMX_BAUD 250000  // DMX512 rate

// Init usart DMX512 (MAX485 사용)
void init_uart(){
  UBRR0H  =((F_CPU / (DMX_BAUD * 8L)) -1) >>8;
  UBRR0L  =((F_CPU / (DMX_BAUD * 8L)) -1);
  UCSR0B |=(1 << RXEN0 | 1 << RXCIE0);  // enable uart received interrupt
  UCSR0C |=(1 <<USBS0); //1 Stop bits, 8 data bits  
}


마지막 줄  UCSR0C |=(1 <<USBS0); 처럼, 1 Stop, 8 data로 하면 DMX 수신에 유리합니다.
송신은 2 정지 비트일때, 수신이 1 정지 비트면 수신도 전혀 문제없이 잘 됩니다. 
게다가 1 정지비트 만큼 수신 시간이 짧아지고, 10% 정도 처리시간이 많아 지므로 수신측에서 유리합니다.

DMX512 송신 가로채기 시작 함수, (수신전용에는 필요 없음)
// Enable transmitter and interrupt
UCSRnB = (1<<TXENn) | (1<<UDRIEn);

DMX512 수신 가로채기 시작 함수
// Enable receiver and Receive interrupt
UCSRnB = (1<<RXENn) | (1<<RXCEn);

DMX 수신 가로채기 함수는 아래와 같이 정의하면 작동이 잘됩니다.
//DMX512 Receive routine
ISR (USART_RX_vect)

{
  ,,,,,,,,, 여기에서 수신처리를 한다.
}

UART 가로채기 함수 안에서는, 반드시 status인 UCSR0A를 먼저 읽고 data인 UDR0를 나중에 읽어야 합니다.
stat =UCSR0A; // read status at 1st
val =UDR0; // read data ar 2nd

 
DMX는 frame error를 이용하여, frame error가 있으면 DMX512 break가 들어온 것으로 처리합니다.
중요한 점은 break 이후에 데이터가 들어와서 수신되어야 수신가로채기가 발생한다는 것입니다.
즉 frame error가 있는 것은 첫 데이터인 start ch값 0x00이 들어온 것을 함께 처리해야 합니다.

  // 브레이크 에러가 있어야 DMX 신호가 들어온 것이다
  if (stat & (1 <<FE0)) {  // check Break of DMX
    dmx_valid =1; // start ch of DMX 

    // return; <== 여기에 리턴을 넣으면 절대 안된다. 시작채널이 들어 있기 때문이다. 
  } 
 
  // 브레이크 수신시 같이 들어온 시작채널 값 0을 확인한다.
  if (dmx_valid ==1) {  // 브레이크가 이전에 있었는가를 확인 
    if (val ==0) {  // 시작 채널값 확인
      dmx_valid =2;  // 이제부터는 ch 데이터를 받을 수있는 상황
      ch_count =0;  // 다음데이터를 저장할 채널 번호를 0으로 리셋 
      return;  // 시작채널이 0 이면 다음 채널수신으로 가기위해 나간다.  
    }
    else dmx_valid =0; // 시작채널 값이 0 이 아니면 IDLE 상태 = 처음부터 다시 시작해야 한다
    return;  // valid =1인 상태는 start ch 처리후에 무조건 ISR 함수를 나가야 한다.
  }

valid =2 상태는 FE도 없고, start ch도 아니므로, DMX 수신처리함수를 새로 시작해서 처리해야 합니다.
if(dmx_valid ==2) 처리함수에서 chr 데이터가 모두 저장되면, dmx_valid =3으로 주함수에서 PWM을 출력합니다.
그외에 DMX 신호가 0.5초 이상 안들어오면, 모든 출력을 0x00으로 만들어야 합니다.
 
이 DMX512 수신기 소스는 Arduino-0023에서 작성하고 시험하였습니다.
수정된 펌웨어는 채널LED를 구동하는 MOSFET와 주소선택 스위치를 장착한 DMX512 수신기판을 판매할 예정입니다.
 
이 프로그램은 무료 소프트웨어로, 신체와 재산 상의 어떤 위험과 손해를 보상하지 않습니다.
이 프로그램은 GNU 무료 소프트웨어 배포규정을 따릅니다.
Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA
 AVRTOOLS™

   
윗글 교류저항 (impedance) 측정 AD5933
아래글 TSL2561 조도 측정기의 제작
    N         제목    글쓴이 작성일 조회 추천
아듀이노 응용소스 게시판 avrtools™ 2016/02/05 (금) 176 0
25 ESP8266 MQTT Relay Control avrtools™ 2016/03/03 (목) 257 0
24 2 채널 ESP8266 WiFi Switch의 제작 avrtools™ 2016/02/25 (목) 291 0
23 ESP-12E SDK 0.9.5 사용방법 avrtools™ 2016/02/18 (목) 351 0
22 ESP8266 ESP-12E WiFi 센서 서버의 제작 avrtools™ 2016/02/17 (수) 334 0
21 Arduino DS3231 RTC to 5110 LCD avrtools™ 2016/02/16 (화) 402 0
20 ESP8266 Weather Server의 제작 avrtools™ 2016/02/15 (월) 374 0
19 Arduino 온습도 센서 DHT-22 avrtools™ 2016/02/12 (금) 322 0
18 ESP8266 WiFi 펌웨어 업그레이드 avrtools™ 2016/02/11 (목) 531 0
17 Arduion ESP8266 WiFi 설정 방법 avrtools™ 2016/02/10 (수) 458 0
16 Arduino 정전용량식 수분센서의 분석과 제작 avrtools™ 2016/02/07 (일) 275 0
15 Arduino 전극식 수분센서의 분석과 제작 avrtools™ 2016/02/07 (일) 356 0
14 Arduino 정밀 전력계의 ADC avrtools™ 2016/02/02 (화) 518 0
13 Arduino 정밀 전력계의 LPF avrtools™ 2016/02/02 (화) 389 0
12 Ardunio 16비트 ADC Data Logger avrtools™ 2016/01/31 (일) 266 0
11 Arduino AC/DC Power Meter의 제작 avrtools™ 2016/01/29 (금) 486 0
10 Arduino 교류 역율계(power factor)의 제작 avrtools™ 2016/01/29 (금) 360 0
9 Arduino DUE based DDS Synthesizer avrtools™ 2016/01/24 (일) 219 0
8 QTouch ADC 근접검출 스위치 avrtools™ 2016/01/21 (목) 383 0
7 Arduino 음성인식 Speech/Voice Recognition avrtools™ 2013/09/14 (토) 1654 0
6 Arduino Uno로 만드는 3축 CNC avrtools™ 2013/09/10 (화) 2528 0
5 Arduino로 만드는 mySpectral 분광기 avrtools™ 2013/09/04 (수) 2067 0
4 8채널 12비트 ADC MCP3208 오실로스코프 avrtools™ 2012/03/29 (목) 461 0
3 교류저항 (impedance) 측정 AD5933 avrtools™ 2012/03/17 (토) 415 0
2 Arduino DMX512 수신기 제작 avrtools™ 2012/03/15 (목) 3630 0
1 TSL2561 조도 측정기의 제작 avrtools™ 2011/09/11 (일) 2615 0
1

바구니 : 0
 보관함 : 0
오늘뷰 : 0
HOME   |   회사소개   |   제휴안내   |   회사위치   |   서비스이용 약관   |   개인정보 보호정책   |   사이트맵
17015 경기도 용인시 기흥구 동백중앙로16번길 16-25, 508호. 전화 : 031-282-3310
사업자 등록번호 : 697-47-00075 / 대표 : 이건영 / 업태 : 제조업 / 종목 : LED조명, LED전원, 제어장치.
개인정보 관리책임자 : 홈페이지 관리자 . Copyright ⓒ2016 아크레즈 (ACLEDS INC.)
HOME TOP PREVNEXT 0 0 0