====== MPAINO 고속펄스 출력 K모듈 ====== K모듈은 MCU의 PWM 신호를 평활하지 않고 출력하는 MPAINO 옵션 모듈입니다. K는 6채널, K2는 12채널을 제공하며 선택한 모듈은 제품에 조립되어 출고됩니다. Y모듈의 직류 전압ㆍ전류 출력과 용도가 다릅니다. 펄스 출력에 연결할 기기가 0~5V 디지털 파형을 받을 수 있는지 먼저 확인하십시오. {{ :products:mpaino-k-channels.svg?1000 |KㆍK2ㆍY와 K 혼합 구성의 PWM 채널과 공유 Timer 그룹 }} ===== 제품 사양 ===== {{:products:mpaino-option-k-front.png?190|K 펄스 출력 모듈 전면}} {{:products:mpaino-option-k2-front.png?190|K2 두 번째 펄스 출력 모듈 전면}} K2 이미지의 PWM0~PWM5는 두 번째 K모듈의 단자 표기입니다. 프로그램에서는 추가 출력 채널 6~11을 사용합니다. ^ 항목 ^ 내용 ^ | 옵션 코드 | K, K2 | | 모듈당 출력 | PWM 6채널 | | 출력 수준 | LOW 0V, HIGH 5V | | 최대 출력 전류 | 채널당 30mA | | 최대 주파수 | 1MHz | | 분해능 | 16bit | | 최대 구성 | K모듈 2개, 총 12채널. Y와 K 출력 합계 최대 12채널 | K 출력은 MCU GPIO 신호를 직접 사용합니다. 30mA를 넘는 부하나 다른 전압의 입력을 직접 연결하지 마십시오. 모터ㆍ솔레노이드와 같은 부하는 적합한 외부 드라이버를 사용합니다. ===== 옵션 조합과 채널 번호 ===== ^ 구성 ^ K 채널 수 ^ ''PWM()''ㆍ''FDPWM()'' 채널 ^ ''analogWrite()'' 채널 ^ GPIO 번호 ^ | K | 6 | 0~5 | 20~25 | D130~D135 | | K2 | 12 | 0~11 | 20~31 | D130~D141 | | YK / Y2K | 6 | 0~5 | 20~25 | D130~D135 | 위 세 번호 체계는 **같은 K 출력**을 서로 다른 명령어로 사용할 때의 인자입니다. ''analogWrite(20, 128)''은 K의 첫 번째 출력이고 ''analogWrite(0, 128)''은 Y의 첫 번째 아날로그 출력입니다. ''PWM(0, ...)''은 다시 K의 첫 번째 출력입니다. 셋을 혼동하지 마십시오. K 1개와 Y 1~2개는 함께 사용할 수 있지만 K2와 Y는 함께 구성하지 않습니다. 실제 출고 옵션에 맞춰 Arduino IDE의 **High-Speed Pulse Output Module**과 **Analog Output Module**을 선택합니다. ===== 채널과 공유 Timer ===== ^ 출고 구성 ^ K 채널 ^ 내부 Arduino PWM 핀 ^ 같은 주파수를 공유하는 Timer ^ | K 단독 | 0~2 | D11, D12, D13 | Timer1 | | K 단독 | 3~5 | D46, D45, D44 | Timer5 | | K2 추가 | 6~8 | D5, D2, D3 | Timer3 | | K2 추가 | 9~11 | D6, D7, D8 | Timer4 | | YK / Y2K | 0~2 | D5, D2, D3 | Timer3 | | YK / Y2K | 3~5 | D6, D7, D8 | Timer4 | 같은 Timer의 세 채널은 주파수 설정을 공유합니다. 세 채널에 서로 다른 듀티를 줄 수 있지만 서로 다른 주파수를 동시에 설정할 수 없습니다. YㆍK 조합이 달라지면 내부 실제 PWM 핀이 바뀌므로 프로그램의 논리 채널과 출고 구성을 일치시키십시오. ===== 연결과 첫 출력 확인 ===== - 전원을 차단하고 K모듈의 사용할 PWM 단자와 같은 단자 묶음의 GND를 확인합니다. - 연결 기기의 0~5V PWM 입력과 공통 GND를 제품 설명서의 결선도에 맞춰 연결합니다. - PWM 출력 단자에 외부 전원이나 과전류 부하를 직접 넣지 않습니다. - 처음에는 부하 대신 적합한 계측기로 파형의 주파수와 듀티를 확인합니다. ===== 예제 1 · Arduino 기본 analogWrite() ===== K 단독 구성의 첫 출력에 약 50% 듀티를 출력합니다. K용 ''analogWrite()''는 Y와 달리 0~255 값을 사용합니다. const uint8_t pulseChannel = 20; // K 첫 번째 출력의 analogWrite 번호 void setup() { } void loop() { analogWrite(pulseChannel, 128); // 약 50% 듀티의 PWM 출력 delay(500); } ===== 예제 2 · 주파수와 듀티 지정 ===== K 단독 구성에서 CH0과 CH1은 Timer1을 공유합니다. 두 채널에 같은 1kHz와 서로 다른 듀티를 설정합니다. void setup() { PWM_RESET(); // K 출력용 PWM Timer 상태 초기화 FDPWM(0, 1000, 25.0F); // K CH0: 1kHz, 25% 듀티 FDPWM(1, 1000, 75.0F); // K CH1: 같은 1kHz, 75% 듀티 } void loop() { } ''PWM_RESET()''은 같은 Timer를 사용하는 다른 PWM 출력도 초기화할 수 있습니다. 부하가 안전한 상태에서 실행하십시오. ===== 예제 3 · 정해진 개수의 펄스 ===== K CH0에 1kHz, 50% 듀티의 펄스 100개를 한 번 출력합니다. ''NPWM()''은 완료될 때까지 ''loop()''에서 계속 호출해야 하므로 이 예제의 반복문에는 ''delay()''를 넣지 않습니다. void setup() { PWM_RESET(); // 펄스 출력 전 PWM 상태 초기화 NPWM_BEGIN(0, 1000, 50.0F, 100); // CH0에 100개 펄스 준비 } void loop() { NPWM(0); // 준비한 펄스의 출력 진행 및 완료 처리 } ===== 값이 맞지 않을 때 ===== ^ 증상 ^ 확인할 항목 ^ | 파형이 없음 | K 장착과 보드 옵션, PWM 단자ㆍGND, 선택한 명령어의 채널 번호를 확인합니다. | | 주파수가 예상과 다름 | 같은 Timer 그룹의 다른 채널에서 주파수를 다시 설정했는지 확인합니다. | | YK에서 K 단독 배선대로 동작하지 않음 | YㆍK 조합에 따라 내부 PWM 핀 배치가 달라집니다. 출고 구성과 모듈 단자 표기를 확인합니다. | | 지정 펄스가 끝나지 않음 | ''NPWM_BEGIN()'' 다음에 같은 채널의 ''NPWM()''을 반복 호출하는지, 반복문에 지연이 없는지 확인합니다. | ===== 관련 문서 ===== * [[commands:reference:pwm|PWM()]] · [[commands:reference:fdpwm|FDPWM()]] · [[commands:reference:npwm_begin|NPWM_BEGIN()]] · [[commands:reference:npwm|NPWM()]] 상세 설명 * [[products:mpaino_x|X 아날로그 입력 모듈]] · [[products:mpaino_f|F PT100 입력 모듈]] · [[products:mpaino_y|Y 아날로그 출력 모듈]] * [[products:mpaino|← MPAINO Series 옵션 구성]]