문서의 이전 판입니다!
목차
MPAINO 아날로그 출력 Y모듈
Y모듈은 MCU의 PWM을 평활하여 직류 전압 또는 전류 신호로 출력하는 MPAINO 옵션 모듈입니다. 한 모듈은 3채널이며 선택한 구성으로 조립되어 출고됩니다.
출력 형태는 채널별 DIP 스위치와 사용할 단자에 따라 달라집니다. 프로그램의 출력 채널 번호만 바꾸어 전압ㆍ전류 범위를 선택하는 방식이 아닙니다.
제품 사양
| 항목 | 내용 |
|---|---|
| 옵션 코드 | Y, Y2, Y3, Y4 |
| 모듈당 출력 | 3채널 — CH0~CH2 |
| 출력 방식 | PWM 평활에 의한 직류 전압ㆍ전류 |
| 전압 범위 | 채널별 DIP에 따라 DC 0~5V 또는 0~10V |
| 전류 범위 | DC 0~10mA 또는 0~20mA; 해당 범위에서 프로그램으로 2~10mA 또는 4~20mA 스케일 사용 |
| 설명서의 분해능 | 16bit |
| 설명서의 정밀도 조건 | ±0.5% 이하, DC 12VㆍHalf Range 기준 |
| 최대 구성 | Y모듈 4개, 총 12채널. Y와 K 출력 합계 최대 12채널 |
| 제품 주전원 | DC 12~24V 공급 필요. 다운로드 케이블 전원만으로는 정상 출력 불가 |
주문 구성과 프로그램 번호
| 옵션 | Y모듈 수 | 아날로그 출력 수 | analogWrite(ch, value)의 Y 채널 |
|---|---|---|---|
| Y | 1 | 3 | 0~2 |
| Y2 | 2 | 6 | 0~5 |
| Y3 | 3 | 9 | 0~8 |
| Y4 | 4 | 12 | 0~11 |
모듈 전면에는 각 모듈마다 CH0~CH2가 표시됩니다. 프로그램에서는 첫 Y모듈이 0~2, 두 번째가 3~5로 이어집니다. K모듈을 함께 사용하더라도 Y의 채널 번호와 K의 번호는 다른 영역입니다.
K모듈 1개를 선택하면 Y는 최대 Y2까지, K모듈 2개를 선택하면 Y는 사용할 수 없습니다. 아날로그 출력은 디지털 입출력 점수와 관계없이 MPAINO 제품의 옵션 구성으로 사용할 수 있습니다.
DIP 설정과 출력 단자
| 해당 채널 DIP | 전압 출력 V+ | 전류 출력 I+ | 공통 단자 |
|---|---|---|---|
| ON | DC 0~5V | DC 0~10mA 또는 2~10mA 스케일 | − |
| OFF | DC 0~10V | DC 0~20mA 또는 4~20mA 스케일 | − |
전압은 V+와 −, 전류는 I+와 − 단자에서 사용합니다. 전압과 전류 신호가 동시에 존재하므로 사용하려는 신호에 맞는 단자에만 기기를 연결하십시오. −는 제품 내부 GND와 연결됩니다.
- 전원과 연결 기기의 전원을 끈 뒤 해당 채널의 DIP 위치를 확인합니다.
- 수신 기기의 입력 형식과 범위를 확인하고 전압 또는 전류 단자에 극성을 맞춰 연결합니다.
- 주전원을 공급한 뒤 한 채널에 작은 출력값을 내고 계측기로 확인합니다.
- 아날로그 신호 배선은 노이즈 영향을 받으므로 필요한 경우 쉴드 케이블을 사용합니다.
프로그램 예제 · 전압 또는 0기점 전류
첫 번째 Y모듈 CH0의 출력을 중간값으로 설정합니다. Arduino IDE의 Analog Output Module에서 실제 출고 옵션을 선택하십시오. analogWriteInit()로 Timer 범위를 정하고, analogWriteMax()로 현재 최대값을 확인한 뒤 절반을 출력합니다.
const uint8_t outputChannel = 0; void setup() { analogWriteInit(outputChannel, 65535, 1); // Y 채널 0의 PWM TOP과 분주비 설정 } void loop() { const uint16_t fullScale = analogWriteMax(outputChannel); // 현재 채널의 최대 출력값 확인 analogWrite(outputChannel, fullScale / 2); // 선택한 DIP 범위의 약 50% 출력 delay(500); }
예를 들어 DIP가 ON이고 V+를 쓰면 목표는 약 2.5V, OFF이고 V+를 쓰면 약 5V입니다. 이는 이상적인 비율 계산이며 실제 출력의 허용 오차를 보증하는 값이 아닙니다. 같은 모듈의 3채널은 Timer 설정을 공유하므로 한 채널의 TOPㆍ주파수 변경이 다른 채널에 영향을 줍니다.
프로그램 예제 · 4~20mA
첫 번째 Y모듈 CH0의 DIP를 OFF로 설정하고 수신 기기를 I+와 −에 연결한 경우입니다. analogWrite2()는 0을 4mA, 65535를 20mA 기준으로 환산합니다.
const uint8_t outputChannel = 0; void setup() { // Y 모듈 CH0의 DIP를 OFF(0~20mA 하드웨어 범위)로 설정합니다. } void loop() { analogWrite2(outputChannel, 32768); // 4~20mA 범위의 중간값, 약 12mA 출력 delay(500); }
IanalogWrite(ch, min, max, value)와 IanalogWrite2(ch, min, max, value)를 사용하면 공정값 범위를 출력 범위에 맞춰 환산할 수도 있습니다. analogWrite2()는 DIP 스위치를 움직이지 않으므로 전압 단자에 연결한 채 4~20mA를 기대해서는 안 됩니다.
값이 맞지 않을 때
| 증상 | 확인할 항목 |
|---|---|
| 출력이 없음 | Y모듈 장착, 주전원 DC 12~24V, 보드의 Analog Output Module 선택, 사용 채널을 확인합니다. |
| 예상 전압ㆍ전류의 절반 또는 두 배 | 해당 채널 DIP의 ON/OFF와 V+/I+ 단자 선택을 확인합니다. |
| 4mA가 0mA처럼 보임 | DIP OFF와 I+ 결선, analogWrite2() 또는 4~20mA용 함수 사용 여부를 확인합니다. |
| 다른 채널도 변함 | 같은 3채널 Timer 그룹에서 TOPㆍ주파수를 함께 바꾸었는지 확인합니다. |
