• 42mm 헤리컬유성감속기어 바이폴라 스테핑모터 PH42-NK247N 1.8도 10.8Kg.cm
  • 42mm 헤리컬유성감속기어 바이폴라 스테핑모터 PH42-NK247N 1.8도 10.8Kg.cm

42mm 헤리컬유성감속기어 바이폴라 스테핑모터 PH42-NK247N 1.8도 10.8Kg.cm

Low Backlash 지름 42mm 헤리칼 기어 유성감속기 스테핑모터 2상 바이폴라 고토크

소비자가97,400
판매가75,400
제조사
(주)로봇마트
원산지
한국
브랜드
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

 




 

 

PH42-NK247N






acad4c82738cff0ce23a98631c9ae3cc_193558.jpg

01a935c2ffbeeb985b8b0dac448c9bbf_193112.jpg




 

 

 

 

pm42-nk247_900x10200_08_143006.jpg

pm42-nk247_900x10200_12_143021.jpg
pm42-nk247_900x10200_09_143036.jpg

 

 

pm42-nk247_900x10200_10_143053.jpg
pm42-nk247_900x10200_11_143104.jpg

 

 

msd-221_900x12200_12_173159.jpg


 

 

 

 

  


 

 

 

 

 

 

 

 

 

※ 구입전 유의사항 

* 본제품은 산업용 부품으로 기업체에서는 이 분야 전문가가 수십개의 샘플들을 구입하여 

오랜 기간 수십가지 항목의 성능과 적합성을 테스트한 후에 결정하고, 만족하면, 수백, 수천 

또는 수만개씩 구입하는 전문지식이 필요한 제품입니다.


전문적 지식이 필요한 전자, 전기, 기계 부품의 특성상 제품이 불량이거나, 

주문한 제품과 다른 제품인 경우를 제외하고, 제품의 하자가 없을 경우, 이미 사용한 제품을

고객의 단순 변심으로 교환, 반품, A/S 불가합니다. 


그런데 산업용 부품은 공산품처럼 인지 상품이 아니라서, 전문적 지식이 없는 개인 사용자나 

초보자는 구입 먼저하고 원하는 성능과 기대에 부합하지 않으면, 무조건 반품이나 교환을 

요구하여 이로인한 손실로 택배비, 결제수수료, 포장비등의 비용을 구제 받을 길이 없어, 

잘 모르시는 분들에게는 쇼핑몰로 판매를 안하고, 전문가나 기업체들과 같이 반품이나 교환,

환불을 요구하지 안는다면 구입하셔도 됩니다.

 

단, 매장에 방문하여 사용 방법과 구동을 확인하여, 이상유무를 확인하고 반품 의사가 없는 

경우에는 판매할 수 있습니다.*

 

 

 

 

 

 

 

 

 

 

 

 

비밀번호 인증

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

확인