• 고정밀 중공축 로타리 테이블 유성감속기장착 엔코더장착 스텝모터 RTPG42-NK245E 1000CPR
  • 고정밀 중공축 로타리 테이블 유성감속기장착 엔코더장착 스텝모터 RTPG42-NK245E 1000CPR
  • 고정밀 중공축 로타리 테이블 유성감속기장착 엔코더장착 스텝모터 RTPG42-NK245E 1000CPR

고정밀 중공축 로타리 테이블 유성감속기장착 엔코더장착 스텝모터 RTPG42-NK245E 1000CPR

허용토크 54Nm
반복위치결정정밀도 ≤15arcsec

제조사
모터뱅크
브랜드
모터뱅크
배송정보
0원 (조건부배송) 지역별 추가배송 주문시결제(선결제)
택배
구매안내

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

본 드라이버는 펄스(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

 

 

감속비는 로터리감속비 * 유성기어 감속비로 계산하시면 되십니다

예: 로터리감속비: 1/5 . 유성기어감속비: 1/4

전체 감속비: 1/20

 

rtpg42_175502.jpg

4b169026bf34984204561ffefb4b4a4b_161741.png

NK245E_100556.jpg


비밀번호 인증

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

확인