• 42각 60mm 7.3Kg.cm 2상 1.8도 SBD-PG42-NK246 유성 기어드 스테핑모터
  • 42각 60mm 7.3Kg.cm 2상 1.8도 SBD-PG42-NK246 유성 기어드 스테핑모터

42각 60mm 7.3Kg.cm 2상 1.8도 SBD-PG42-NK246 유성 기어드 스테핑모터

고출력 메탈기어 지름 42mm 유성감속기어드 스테핑모터 2상 바이폴라

소비자가124,100원
판매가120,400원
제조사
(주)로봇마트
원산지
한국
브랜드
motorbank
배송정보
3,500원 (조건부배송) 지역별 추가배송 주문시결제(선결제)
택배
구매안내

아두이노 제어 예제 코드 — MAS-001 쉴드 버전 / 직결 버전 (복사해서 바로 사용)

본 드라이버는 펄스(STP)/방향(DIR)/기동정지(EN) 신호로 제어하며 5V TTL 레벨이라 아두이노 우노·메가에서 바로 사용할 수 있습니다. 아래 두 가지 방식 중 구성에 맞는 예제를 복사하세요. 속도는 펄스 주파수로 결정됩니다: RPM = 주파수(Hz) × 60 ÷ 회전당 스텝 수. 42각 스텝모터와 폭넓게 호환되며 대표 조합은 NK245-02입니다.
버튼·볼륨으로 조작하려면: 아두이노 확장쉴드 MAS-001 구매하기 → (예제 ① 사용)
① MAS-001 확장쉴드 사용 — 버튼·볼륨 조작 (V1.0)
쉴드 장착 후 드라이버를 쉴드 단자에 결선: STP→D9 / DIR→D6 / EN→D5 / VCC→5V, 신호 GND 공통. 모터 전원(V+/GND)은 SMPS로 별도 공급합니다. 업로드하면 버튼1=기동/정지, 버튼2=방향, 볼륨=속도로 바로 조작되며, 별도 라이브러리 설치가 필요 없습니다.
//==============================================================
// MotorBank SBD-10 + MAS-001 확장쉴드 예제 V1.0
// 기능: 쉴드의 볼륨=속도, 버튼1=기동/정지, 버튼2=방향 전환
// 보드: Arduino Uno + MAS-001 확장쉴드
//
// [쉴드-드라이버 결선] (SBD-10 단자 기준, 상세페이지 결선도 참조)
//   STP -> D9 / DIR -> D6 / EN -> D5 / VCC -> 5V / 신호 GND 공통
//   V+/GND(전원부)에는 모터용 전원(예: DC24V SMPS)을 별도 연결
// [쉴드 입력] 버튼1=D13(기동/정지), 버튼2=D12(방향), 볼륨=A0(속도)
//
// [신호 극성] 구동 결과가 반대(눌렀는데 정지, 방향 반대 등)이면
//   아래 ACTIVE_LOW 값을 1로 바꿔 업로드하세요.
#define ACTIVE_LOW 0   // 0: EN High=구동 / 1: EN Low=구동 (제품 결선도 기준 확인)
//
// [속도] 모터 회전수 RPM = 펄스주파수(Hz) x 60 / 회전당 스텝 수(분주 설정에 따름)
//==============================================================
const int STP_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 applyEnable(bool on) {
  digitalWrite(EN_PIN, (on ^ ACTIVE_LOW) ? HIGH : LOW);
}

void setup() {
  pinMode(DIR_PIN, OUTPUT); pinMode(EN_PIN, OUTPUT);
  pinMode(BTN1, INPUT); pinMode(BTN2, INPUT);
  applyEnable(false);
  Serial.begin(9600);
  Serial.println(F("SBD-10 + MAS-001 ready. BTN1=Run/Stop BTN2=Dir VOL=Speed"));
}

void loop() {
  bool b1 = digitalRead(BTN1);
  if (btn1Prev == HIGH && b1 == LOW) {          // 버튼1: 기동/정지 토글
    running = !running;
    applyEnable(running);
    if (!running) noTone(STP_PIN);
    Serial.println(running ? F("RUN") : F("STOP"));
    delay(30);
  }
  btn1Prev = b1;

  bool b2 = digitalRead(BTN2);
  if (btn2Prev == HIGH && b2 == LOW) {          // 버튼2: 방향 전환
    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);  // 볼륨 -> 100~4000Hz
    tone(STP_PIN, f);
  }
  delay(20);
}
② 쉴드 없이 아두이노 직결 — 시리얼 명령 조작 (V1.0)
아두이노와 드라이버를 직접 결선: 5V→VCC / D9→STP / D6→DIR / D5→EN / GND 공통, 모터 전원(V+/GND)은 별도 공급. 업로드 후 시리얼 모니터(9600bps, "새 줄")에서 f2000(CW 2000Hz) / r500(CCW) / s(정지) / e1·e0(EN)으로 조작합니다. 방향·기동이 반대로 동작하면 코드 상단의 ACTIVE_LOW 값을 1로 바꿔 업로드하세요 — 결선을 다시 뜯을 필요 없이 코드 한 줄로 극성을 맞출 수 있습니다.
//==============================================================
// MotorBank SBD-10 아두이노 직결 예제 V1.0 (MAS-001 쉴드 없이)
// 기능: 시리얼 모니터 명령으로 속도(펄스 주파수)·방향·기동정지 제어
// 보드: Arduino Uno / Mega (5V TTL 신호 기준)
//
// [직결 결선] 아두이노 -> SBD-10 (상세페이지 결선도와 대조 후 연결)
//   5V  -> VCC (제어신호 공통 전원)
//   D9  -> STP (펄스)
//   D6  -> DIR (방향)
//   D5  -> EN  (기동/정지 - 단순 ON/OFF 기능)
//   GND -> 신호 GND 공통
//   V+/GND(전원부)에는 모터용 전원(예: DC24V SMPS)을 별도 연결
//
// [신호 극성] 방향·기동이 반대로 동작하면 ACTIVE_LOW를 1로 변경
#define ACTIVE_LOW 0
//
// [속도] RPM = 펄스주파수(Hz) x 60 / 회전당 스텝 수(분주 설정에 따름)
//   예: 200스텝(기본 1.8도, 풀스텝) 기준 f1000 = 300RPM
//
// [시리얼 모니터 사용법] (9600bps, "새 줄" 설정)
//   f2000 : CW 2000Hz    r500 : CCW 500Hz    s : 정지
//   e1/e0 : EN 신호 수동 제어
//==============================================================
const int STP_PIN = 9, DIR_PIN = 6, EN_PIN = 5;

void applyEnable(bool on) {
  digitalWrite(EN_PIN, (on ^ ACTIVE_LOW) ? HIGH : LOW);
}

void setup() {
  pinMode(DIR_PIN, OUTPUT); pinMode(EN_PIN, OUTPUT);
  applyEnable(true);
  Serial.begin(9600);
  Serial.println(F("SBD-10 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(STP_PIN, v);
              Serial.print(F("CW ")); Serial.print(v); Serial.println(F("Hz")); break;
    case 'r': digitalWrite(DIR_PIN, LOW);  if (v) tone(STP_PIN, v);
              Serial.print(F("CCW ")); Serial.print(v); Serial.println(F("Hz")); break;
    case 's': noTone(STP_PIN); Serial.println(F("STOP")); break;
    case 'e': applyEnable(v != 0);
              Serial.println(v ? F("EN ON") : F("EN OFF")); break;
    default:  Serial.println(F("? f2000 r500 s e1 e0"));
  }
}
작성: MotorBank 기술팀 · 아두이노 우노 기준 · 최종 업데이트: 2026-08-14

 

 

 

 






 

 

사용설명서 바로가기 




833485d5500a7faadbf6b90f44d7ae4a_173701.jpg
01a935c2ffbeeb985b8b0dac448c9bbf_173702.jpg
dd42f2203776ade8430ab5ed0c0b3f1d_173853.png
e080226e065b258705554f78c30fe610_173916.png





 

 

 


 

 

 










 

 















 

 

 

 

비밀번호 인증

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

확인