• 드라이버 일체형 42각 고성능 마이터기어 스테핑모터 SBD-BG42-NK245-02
  • 드라이버 일체형 42각 고성능 마이터기어 스테핑모터 SBD-BG42-NK245-02
  • 드라이버 일체형 42각 고성능 마이터기어 스테핑모터 SBD-BG42-NK245-02
  • 드라이버 일체형 42각 고성능 마이터기어 스테핑모터 SBD-BG42-NK245-02

드라이버 일체형 42각 고성능 마이터기어 스테핑모터 SBD-BG42-NK245-02

32분주 고성능 드라이버 일체형 42mm 고출력 장수명 올메탈기어 볼베어링 베벨기어 스테핑모터 로봇, 의료기, FA장비, 반도체

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

아두이노 제어 예제 코드 — 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



MAIN_171031.jpg
MAIN2_171035.jpg
 
3a72557d13f97c432f6cb56ca0519879_184712.jpg


01a935c2ffbeeb985b8b0dac448c9bbf_185915.jpg




 



 





e080226e065b258705554f78c30fe610_190029.png



766d322934acca37.jpg
 

 

6a4d73349cba6aa7.jpg
f7127a1654da34dd.jpg
 

 



 

 

 

 

 








  

 

비밀번호 인증

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

확인