• 4A 32분주 마이크로스텝드라이버 MSD-224 2상 스테핑모터 드라이버
  • 4A 32분주 마이크로스텝드라이버 MSD-224 2상 스테핑모터 드라이버
  • 4A 32분주 마이크로스텝드라이버 MSD-224 2상 스테핑모터 드라이버

4A 32분주 마이크로스텝드라이버 MSD-224 2상 스테핑모터 드라이버

제어신호: 3.3~24V
적용모터: 35/42/57각
전압범위: 9-42VDC
정격전류: 4A
1.8NM/3.5A이하 모터에 사용

소비자가65,300
판매가17,500
제조사
모터뱅크
원산지
모터뱅크(중국)
브랜드
motorbank
배송정보
3,500원 (조건부배송) 지역별 추가배송 주문시결제(선결제)
택배
구매안내

아두이노 제어 예제 코드 (복사해서 바로 사용)

본 드라이버는 펄스(PUL)/방향(DIR)/기동정지(ENA) 신호로 제어하며, 제어신호가 3.3~24V라 아두이노(5V)는 물론 3.3V 보드도 직결 가능합니다. 아래 두 가지 방식 중 구성에 맞는 예제를 복사해 사용하세요. 속도는 펄스 주파수로 결정됩니다: RPM = 주파수(Hz) × 60 ÷ (200 × 분주비).
필요 드라이버: MSD-224 구매하기 → (지원 전류 4A) · MSD-224N 구매하기 → (지원 전류 4.5A)
버튼·볼륨으로 조작하려면: 아두이노 확장쉴드 MAS-001 구매하기 → (예제 ① 사용)
① MAS-001 확장쉴드 사용 — 버튼·볼륨 조작 (V2.0)
쉴드 장착 후 드라이버를 쉴드 단자에 결선: PUL+→D9 / DIR+→D6 / ENA+→D5, 각 − 단자는 GND. 업로드하면 버튼1=기동/정지, 버튼2=방향 전환, 볼륨=속도(약 100~4,000Hz)로 바로 조작됩니다. 별도 라이브러리 설치가 필요 없습니다.
//==============================================================
// MotorBank MSD-224 / MSD-224N + MAS-001 확장쉴드 예제 V2.0
// 기능: 쉴드의 볼륨=속도, 버튼1=기동/정지, 버튼2=방향 전환
// 보드: Arduino Uno + MAS-001 확장쉴드 (쉴드에 드라이버 결선)
//
// [쉴드-드라이버 결선] (MAS-001 단자 기준)
//   PUL+ -> D9 / DIR+ -> D6 / ENA+ -> D5 / PUL- DIR- ENA- -> GND
// [쉴드 입력] 버튼1=D13(기동/정지), 버튼2=D12(방향), 볼륨=A0(속도)
//
// [속도 계산] 모터 회전수 RPM = 펄스주파수(Hz) x 60 / (200 x 분주비)
//   예: 분주 1, 2000Hz -> 600RPM / 분주 8, 2000Hz -> 75RPM
//   본 예제의 볼륨 속도 범위: 약 100Hz ~ 4000Hz
//==============================================================
const int PUL_PIN = 9, DIR_PIN = 6, EN_PIN = 5;
const int BTN1 = 13, BTN2 = 12, POT = A0;

bool running = false, dirCW = true;
bool btn1Prev = HIGH, btn2Prev = HIGH;

void setup() {
  pinMode(DIR_PIN, OUTPUT); pinMode(EN_PIN, OUTPUT);
  pinMode(BTN1, INPUT); pinMode(BTN2, INPUT);   // 쉴드 회로 기준(눌림=LOW)
  digitalWrite(EN_PIN, LOW);
  Serial.begin(9600);
  Serial.println(F("MSD-224 + MAS-001 ready. BTN1=Run/Stop BTN2=Dir VOL=Speed"));
}

void loop() {
  // 버튼1: 누를 때마다 기동/정지 토글
  bool b1 = digitalRead(BTN1);
  if (btn1Prev == HIGH && b1 == LOW) {
    running = !running;
    if (!running) noTone(PUL_PIN);
    Serial.println(running ? F("RUN") : F("STOP"));
    delay(30);                                   // 디바운스
  }
  btn1Prev = b1;

  // 버튼2: 누를 때마다 방향 전환
  bool b2 = digitalRead(BTN2);
  if (btn2Prev == HIGH && b2 == LOW) {
    dirCW = !dirCW;
    digitalWrite(DIR_PIN, dirCW ? HIGH : LOW);
    Serial.println(dirCW ? F("DIR: CW") : F("DIR: CCW"));
    delay(30);
  }
  btn2Prev = b2;

  // 볼륨 -> 펄스 주파수 (시계방향으로 올릴수록 빠름)
  if (running) {
    int f = map(analogRead(POT), 0, 1023, 100, 4000);
    tone(PUL_PIN, f);                            // 비차단 펄스 출력
  }
  delay(20);
}
② 쉴드 없이 아두이노 직결 — 시리얼 명령 조작 (V1.0)
아두이노와 드라이버를 직접 결선: D9→PUL+ / D6→DIR+ / D5→ENA+, 아두이노 GND→PUL−·DIR−·ENA−. 모터 전원(SMPS)은 드라이버에 별도 공급합니다. 업로드 후 시리얼 모니터(9600bps, "새 줄")에서 f2000(CW 2000Hz) / r500(CCW 500Hz) / s(정지) / e1·e0(ENA 신호)로 조작합니다. 원하는 RPM은 위 공식으로 주파수를 역산해 입력하세요.
//==============================================================
// MotorBank MSD-224 / MSD-224N 아두이노 직결 예제 V1.0 (쉴드 없이)
// 기능: 시리얼 모니터 명령으로 속도(펄스 주파수)·방향·기동정지 제어
// 보드: Arduino Uno 단독 (제어신호 3.3~24V 지원이라 직결 가능)
//
// [직결 결선] 아두이노 -> 드라이버
//   D9 -> PUL+ / D6 -> DIR+ / D5 -> ENA+
//   GND -> PUL- , DIR- , ENA- (모두 공통)
//   * 모터 전원(SMPS)은 드라이버에 별도 공급, 아두이노와 GND 공통 불필요
//     (드라이버 제어 입력은 포토커플러 절연)
//
// [속도 계산] 모터 회전수 RPM = 펄스주파수(Hz) x 60 / (200 x 분주비)
//   예: 분주 1에서 f1000 -> 300RPM / 분주 8에서 f2000 -> 75RPM
//
// [시리얼 모니터 사용법] (9600bps, "새 줄" 설정)
//   f2000 : CW 방향, 2000Hz 펄스     r500 : CCW 방향, 500Hz
//   s     : 정지(펄스 중지)          e1/e0 : ENA 신호 High/Low
//==============================================================
const int PUL_PIN = 9, DIR_PIN = 6, EN_PIN = 5;

void setup() {
  pinMode(DIR_PIN, OUTPUT); pinMode(EN_PIN, OUTPUT);
  digitalWrite(EN_PIN, LOW);
  Serial.begin(9600);
  Serial.println(F("MSD-224 direct ready. f2000 r500 s e1 e0"));
}

void loop() {
  if (!Serial.available()) return;
  String cmd = Serial.readStringUntil('\n');
  cmd.trim();
  if (cmd.length() == 0) return;
  char c = cmd.charAt(0);
  long v = constrain(cmd.substring(1).toInt(), 0, 20000);
  switch (c) {
    case 'f': digitalWrite(DIR_PIN, HIGH); if (v) tone(PUL_PIN, v);
              Serial.print(F("CW ")); Serial.print(v); Serial.println(F("Hz")); break;
    case 'r': digitalWrite(DIR_PIN, LOW);  if (v) tone(PUL_PIN, v);
              Serial.print(F("CCW ")); Serial.print(v); Serial.println(F("Hz")); break;
    case 's': noTone(PUL_PIN); Serial.println(F("STOP")); break;
    case 'e': digitalWrite(EN_PIN, v ? HIGH : LOW);
              Serial.println(v ? F("ENA High") : F("ENA Low")); break;
    default:  Serial.println(F("? f2000 r500 s e1 e0"));
  }
}
작성: MotorBank 기술팀 · 아두이노 우노 기준 · 최종 업데이트: 2026-08-14

구매 전 필독 — 호환·결선·아두이노 제어

Q. 어떤 스텝모터와 사용할 수 있나요?
2상 바이폴라 스텝모터(57각급 이하, 토크 1.8N·m 이하, 전류 3.5A 이하)가 기준이며, 안정적인 사용을 위해 드라이버 정격이 모터 전류의 1.5배 이상이 되도록 여유를 두고 선정하세요 (예: 4A급 모터에는 본 드라이버가 부족합니다 — 상위 드라이버 검토). 5선 유니폴라 모터도 COM선을 제외하고 A/B상만 연결하면 사용 가능하지만, 특성이 달라 출력 스펙이 표기와 다를 수 있습니다. 드라이버 1대당 모터 1개(1대1 제어)입니다.
Q. 제어 신호에 3.3V(라즈베리파이 등)를 직접 연결해도 되나요?
네, 본 제품의 제어신호 입력 전압은 3.3~24V라서 3.3V 보드(라즈베리파이·ESP32)도 레벨 변환 없이 직접 연결할 수 있습니다. 24V 신호를 쓸 때도 별도의 직렬 저항은 필요 없습니다. 제어 방식은 싱글펄스: PUL(펄스) / DIR(방향) / ENA(기동·정지) 세 신호입니다.
Q. 아두이노 예제 코드와 결선을 알려주세요. (가장 많은 문의)
기술자료: MSD-224 아두이노 예제에 결선과 예제 프로그램이 정리되어 있습니다(별도 라이브러리 방식이 아닌 예제 코드 방식입니다). 확장쉴드 MAS-001과 조합할 때의 결선은: PUL+→D9 / DIR+→D6 / ENA+→D5, 각 − 단자는 모두 GND이며, 관련 소스코드는 MAS-001 상세페이지와 GitHub 저장소에서도 확인할 수 있습니다.
Q. DIP 스위치(1~6번)는 어떻게 설정하나요? 속도는 어디서 조절하나요?
4·5·6번 = 출력 전류 설정 — 사용 모터의 정격 전류와 비슷한 값으로 맞추세요. 1·2·3번 = 분주비(마이크로스텝) — 1회전당 스텝 수를 정하며, 같은 펄스 주파수에서 분주비가 크면 느려집니다. 회전 속도 자체는 상위 장치가 보내는 펄스 주파수로 결정됩니다(스텝모터는 전압이 아닌 주파수로 속도가 정해집니다).
Q. 전원(SMPS·아답터)은 어떻게 준비하나요?
전압은 모터 정격에 맞추고, 출력 전류는 모터의 1.5배 이상이 안정적입니다. SMPS와 드라이버 연결에는 전원 젠더가 필요하며, 간편하게는 전용 아답터도 있습니다. 드라이버 여러 대를 쓸 때는 다채널 SMPS 1대로 전원을 나눠 공급할 수 있습니다.
Q. PLC 통신(RS-485 등)이나 리미트 스위치 연결이 되나요?
통신 제어는 지원하지 않습니다(펄스 입력 전용) — 통신형이 필요하면 통신 지원 드라이버를 선택하세요. PLC의 펄스 출력(3.3~24V)으로 PUL/DIR/ENA를 제어하는 방식은 가능합니다. 리미트 스위치 연결 기능은 없습니다 — 리미트 왕복·정지가 필요하면 SPLS-2D 같은 리미트 지원 컨트롤러와 조합하세요.
Q. 모터가 안 돌 때, 드라이버 고장인지 어떻게 확인하나요?
먼저 DIP 스위치 설정과 제어 코드를 재확인하세요 — 고장으로 보였다가 스위치·코드 조정으로 해결된 사례가 실제로 있습니다. 이어서 멀티미터로 각 +/− 단자를 측정해 전원·출력 상태를 확인하고, 판단이 어려우면 결선 후 전원 인가 영상을 상품문의에 첨부해 주세요. 당사 구매 제품은 보내주시면 모터·드라이버 고장 여부를 직접 확인해 드립니다.
작성: MotorBank 기술팀 · 실제 고객 문의 27건을 바탕으로 작성 · 최종 업데이트: 2026-08-14

 




사용설명서 바로가기





 

 

 

 

어떤 드라이버가 내모터와 호환될가요?

MSD 시리즈 스텝모터 드라이버 스펙비교보기

 


분주비 더 높은 걸 찾으시나요?!
밑에 신제품을 검토해 보세요~
395841-PCS1KS-331_113830.gif



 

 

 

 

 

 

 

 

- 특징 : MSD-224 마이크로 스텝 드라이버는 32분주까지 마이크로 스텝이 가능합니다.

1/1(200), 1/2(400), 1/4(800), 1/8(1600), 1/16(3200), 1/32(6400)


- 적용 스테핑모터 : 2상 스테핑모터(4선 바이폴라, 5선 유니폴라, 6선 유니폴라, 8선 바이폴라)


1. 사용전압 : DC9V ~ 42V(24V 권장)

2. 드라이빙 : H 브릿지 바이폴라 드라이브

3. 최대 4.0A의 8가지 출력 선택 가능

4. 분주는 6가지 모드 사용 32분주 지원

5. 포토커플러를 통한 입력 신호 보호

6. 공통 양극 단일 펄스 인터페이스 표준

7. 오프라인 홀드 기능 제공

8. 반 밀폐된 알루미늄 케이스

9. 에너지 절약을 위한 반자도 현재 잠금 기능 제공

10. 내장 온도 보호 및 과전류 보호


※ 주의사항

DIP 스위치 설정은 항상 전원을 제거한 후 설정해야 합니다. 

딥 스위치는 위로 올리면 Off 내리면 On입니다.


123번 스위치는 모터의 마이크로 스텝값

456번 스위치는 모터의 전류값 설정입니다.

 

 

 

 

 

아두이노와 같은 상위MCU와 같이 사용하시려면 밑의 결선을 참고해주시기 바랍니다.

4947494b66dd0def_170150.jpg

 

아두이노와 같이 펌웨어로 사용하시고 싶으시면 

아두이노 확장보드와 같이 사용해 보세요.

아두이노 소스코드는 제공해드립니다.

비밀번호 인증

비밀번호를 입력해 주세요.

확인