42파이 직각형 유성감속 BLDC모터 엔코더+브레이크 BG42-BL4241EB DC24V 26W — 마이터기어 90도 출력, 위치제어 + 정전 시 위치 유지
  • 42파이 직각형 유성감속 BLDC모터 엔코더+브레이크 BG42-BL4241EB DC24V 26W — 마이터기어 90도 출력, 위치제어 + 정전 시 위치 유지
  • 42파이 직각형 유성감속 BLDC모터 엔코더+브레이크 BG42-BL4241EB DC24V 26W — 마이터기어 90도 출력, 위치제어 + 정전 시 위치 유지
  • 42파이 직각형 유성감속 BLDC모터 엔코더+브레이크 BG42-BL4241EB DC24V 26W — 마이터기어 90도 출력, 위치제어 + 정전 시 위치 유지
  • 42파이 직각형 유성감속 BLDC모터 엔코더+브레이크 BG42-BL4241EB DC24V 26W — 마이터기어 90도 출력, 위치제어 + 정전 시 위치 유지
  • 42파이 직각형 유성감속 BLDC모터 엔코더+브레이크 BG42-BL4241EB DC24V 26W — 마이터기어 90도 출력, 위치제어 + 정전 시 위치 유지
  • 42파이 직각형 유성감속 BLDC모터 엔코더+브레이크 BG42-BL4241EB DC24V 26W — 마이터기어 90도 출력, 위치제어 + 정전 시 위치 유지

42파이 직각형 유성감속 BLDC모터 엔코더+브레이크 BG42-BL4241EB DC24V 26W — 마이터기어 90도 출력, 위치제어 + 정전 시 위치 유지

출력축이 모터와 직각(90도)이라 길이 공간이 없는 장비에 들어가면서, 1000CPR 엔코더 위치제어와 정전 시 브레이크 위치 유지까지 하나의 모듈로 해결합니다. 감속비 10종(1/4~1/504) 선택. 직선 배치가 가능하면 동일 사양의 PG42-BL4241EB가 더 경제적입니다.
공유
판매가
267,000
브랜드
모터뱅크
제조사
모터뱅크
모델명
BG42-BL4241EB
구매혜택
할인 : 적립 마일리지 :
배송비
0원 / 주문시결제(선결제) 조건별배송 지역별추가배송비
택배
방문 수령지 : 서울특별시 금천구 디지털로 178(가산동) A동 1115-1116호
상품코드
1000016329
상품 무게
885g
출시일
2022-03-28
감속비
구매안내

이 모터를 아두이노로 제어하려면 어떻게 하나요? (모터·엔코더 + 브레이크)

PG42-BL42100EB는 엔코더(1000CPR)와 무여자 작동형 전자 브레이크가 일체된 모터라 제어가 두 갈래로 나뉩니다. 모터 구동과 엔코더 피드백은 BLC-400R4E 드라이버의 RS485 통신(MC-RS485 프로토콜)으로, 브레이크는 통신 명령이 아니라 릴레이 모듈로 코일 전원을 넣고 끊는 방식으로 제어합니다 — 코일에 전원이 들어가면 풀리고, 끊기면(정전 포함) 자동으로 잠기는 구조입니다. 아래 예제는 두 채널을 하나의 스케치로 묶고, 브레이크가 잠긴 채 구동 명령이 나가지 않도록 안전 시퀀스를 내장했습니다.
RS485 모듈 연결
RO (수신 출력) 아두이노 D10
DI (송신 입력) 아두이노 D11
DE + RE (묶어서) 아두이노 D3
A / B (통신선) BLC-400R4E의 485 단자 (통신이 안 되면 A/B 교차)
VCC / GND 5V / GND (드라이버와 GND 공통)
릴레이 모듈 IN (브레이크) 아두이노 D7 — 릴레이 접점이 브레이크 코일 전원을 개폐
주의: 브레이크 코일은 아두이노 핀에 직결하지 마세요 — 반드시 릴레이(또는 MOSFET) 모듈을 거치고, 트랜지스터 직결 구성이라면 플라이백 다이오드가 필수입니다. 코일 정격 전압·전류는 본 페이지의 브레이크 배선도를 기준으로 하세요. 브레이크가 잠긴 상태에서 모터를 구동하면 과전류·브레이크 마모의 원인이 됩니다 — 예제 코드는 구동 명령 시 자동으로 해제하지만, 잠금(B)은 반드시 정지를 확인(v 명령, 속도 0)한 뒤 실행하세요. 분해능·감속비 등록(c, d)은 제어 Off 상태에서, 모든 GND는 공통으로 묶습니다.
//==============================================================
// PG42-BL42100EB + BLC-400R4E 아두이노 제어 예제 V1.0
// 모터·엔코더 = RS485(MC-RS485 프로토콜, 문서 전수 대조 완료)
// 브레이크(무여자 작동형) = 릴레이 모듈로 별도 제어
// 보드: Arduino Uno + RS485 컨버터 모듈(MAX485 등) + 릴레이 모듈 1채널
//
// [통신 설정] 9600bps(제품 초기값), 8 Data, No Parity, 1 Stop
// [프레임 구조] FF FE | ID | Data크기 | Checksum | Mode | Data...
//   Checksum = ~(ID + Data크기 + Mode + Data바이트 합)의 하위 1바이트
//
// [결선 - MAX485 모듈 기준] ※ 반드시 BLC-400R4E 상세페이지 결선도 기준
//   모듈 RO -> D10 / DI -> D11 / DE+RE(묶음) -> D3
//   모듈 A/B -> 드라이버 485 A/B (통신 안 되면 A/B 교차)
//   모듈 VCC -> 5V, GND -> 아두이노·드라이버 공통
// [브레이크 결선] 릴레이 모듈 IN -> D7, 릴레이 접점으로 브레이크 코일에 DC 인가/차단
//   ※ 무여자 작동형: 코일에 전원을 넣어야 풀리고, 끊으면 잠깁니다
//   ※ 코일 정격 전압·전류는 상품페이지 브레이크 배선도 기준 (아두이노 핀 직결 금지)
//
// [이 모터 전용 초기 설정] 반드시 제어 Off(E) 상태에서, 명령 간 0.3초 이상 간격:
//   c     : 분해능 등록 - 1000CPR 모터는 CPR/4 규칙에 따라 250이 입력됩니다
//   d14   : 감속비 등록 (★구매 옵션 값 - 예: 1/14 -> d14. 0.1비 단위로 자동 환산)
//   설정은 EEPROM에 기록되므로 최초 1회만 하면 되고, 등록 후에는
//   위치(도)·속도(RPM)가 감속기 출력축 기준으로 동작합니다.
//
// [시리얼 모니터 사용법] (9600bps, "새 줄" 설정)
//   e / E : 제어 On / Off (Off 상태에서는 제어 명령이 무시됩니다)
//   b / B : 브레이크 해제(코일 통전) / 잠금(차단) - f/r 실행 시 자동 해제됨
//   f1000 : CW  100.0RPM (0.1RPM 단위, 도달시간 1초 가감속)
//   r500  : CCW  50.0RPM
//   s     : 감속 정지
//   g9000 : CW  90.00도 위치 이동 (0.01도 단위, 절대위치 0~655.33도)
//   G9000 : CCW 90.00도 위치 이동
//   z     : 현재 위치를 0으로 초기화 (제어 Off 상태에서 권장)
//   p / v : 위치 / 속도 피드백 요청
// [안전 시퀀스] 구동: b(해제) -> f/r  |  정지: s -> v로 속도 0 확인 -> B(잠금) -> E
//==============================================================
#include <SoftwareSerial.h>

const int RS485_RX = 10, RS485_TX = 11, RS485_EN = 3;
const byte MOTOR_ID = 0x00;   // 제품 초기 ID 0x00 (변경했다면 수정)
const unsigned int ENC_PPR = 250;   // 1000CPR / 4 (프로토콜 규칙: CPR은 4로 나눠 입력)

const int BRAKE_PIN = 7;            // 릴레이 모듈 IN
#define BRAKE_ACTIVE  LOW           // 릴레이 동작 레벨 (LOW 트리거 모듈 기준, 모듈에 맞게 수정)
#define BRAKE_IDLE    HIGH
const int BRAKE_RELEASE_MS = 150;   // 해제 후 구동까지 대기(ms) - 브레이크 사양 확인 후 조정
bool brakeReleased = false;

SoftwareSerial rs485(RS485_RX, RS485_TX);

// 프레임 송신: mode + data -> 헤더/크기/체크섬 자동 구성
void sendFrame(byte mode, const byte *data, byte dlen) {
  byte size = dlen + 2;                    // Mode + Data + Checksum
  int sum = MOTOR_ID + size + mode;
  for (byte i = 0; i < dlen; i++) sum += data[i];
  byte chk = (~sum) & 0xFF;

  byte f[16]; byte n = 0;
  f[n++] = 0xFF; f[n++] = 0xFE;
  f[n++] = MOTOR_ID; f[n++] = size; f[n++] = chk; f[n++] = mode;
  for (byte i = 0; i < dlen; i++) f[n++] = data[i];

  while (rs485.available()) rs485.read();  // 수신버퍼 비우기
  digitalWrite(RS485_EN, HIGH);
  rs485.write(f, n);
  rs485.flush();
  digitalWrite(RS485_EN, LOW);

  Serial.print(F("TX:"));
  for (byte i = 0; i < n; i++) { Serial.print(' '); if (f[i]<16) Serial.print('0'); Serial.print(f[i], HEX); }
  Serial.println();
}

// 수신 프레임 읽기 + 위치/속도 피드백(0xD1/0xD2) 해석
void readFeedback() {
  byte buf[24]; byte n = 0;
  unsigned long t0 = millis();
  while (millis() - t0 < 300 && n < 24) {
    if (rs485.available()) buf[n++] = rs485.read();
  }
  if (n == 0) { Serial.println(F("RX: (응답 없음 - 결선/ID/전원 확인)")); return; }
  Serial.print(F("RX:"));
  for (byte i = 0; i < n; i++) { Serial.print(' '); if (buf[i]<16) Serial.print('0'); Serial.print(buf[i], HEX); }
  Serial.println();
  for (int i = n - 4; i >= 0; i--) {
    if (buf[i] == 0xFF && buf[i+1] == 0xFE) {
      byte mode = buf[i+5];
      if ((mode == 0xD1 || mode == 0xD2) && i + 11 < (int)n + 1) {
        byte dir = buf[i+6];
        unsigned int a = ((unsigned int)buf[i+7] << 8) | buf[i+8];
        unsigned int b = ((unsigned int)buf[i+9] << 8) | buf[i+10];
        byte cur = buf[i+11];
        if (mode == 0xD1) {  // 위치 피드백: 위치[0.01도] 속도[0.1RPM] 전류[100mA]
          Serial.print(F("위치: ")); Serial.print(dir ? F("CW ") : F("CCW "));
          Serial.print(a / 100.0); Serial.print(F("도, 속도 "));
          Serial.print(b / 10.0); Serial.print(F("RPM, 전류 "));
          Serial.print(cur * 0.1); Serial.println(F("A"));
        } else {             // 속도 피드백: 속도[0.1RPM] 위치[0.1도] 전류[100mA]
          Serial.print(F("속도: ")); Serial.print(dir ? F("CW ") : F("CCW "));
          Serial.print(a / 10.0); Serial.print(F("RPM, 위치 "));
          Serial.print(b / 10.0); Serial.print(F("도, 전류 "));
          Serial.print(cur * 0.1); Serial.println(F("A"));
        }
      }
      break;
    }
  }
}

void speedMove(byte dir, unsigned int spd01rpm, byte time01s) {   // 가감속 속도제어 0x03
  byte d[4] = { dir, (byte)(spd01rpm >> 8), (byte)(spd01rpm & 0xFF), time01s };
  sendFrame(0x03, d, 4);
}
void posMove(byte dir, unsigned int pos001deg, byte time01s) {    // 가감속 위치제어 0x02
  byte d[4] = { dir, (byte)(pos001deg >> 8), (byte)(pos001deg & 0xFF), time01s };
  sendFrame(0x02, d, 4);
}
void setU16(byte mode, unsigned int v) {                          // 2바이트 설정값 송신
  byte d[2] = { (byte)(v >> 8), (byte)(v & 0xFF) };
  sendFrame(mode, d, 2);
}
void ctrlOnOff(bool on) {                                         // 제어 On/Off 0x0C
  byte d[1] = { on ? (byte)0x00 : (byte)0x01 };
  sendFrame(0x0C, d, 1);
}
void brakeRelease() {               // 코일 통전 -> 브레이크 풀림
  digitalWrite(BRAKE_PIN, BRAKE_ACTIVE);
  brakeReleased = true;
  Serial.println(F("브레이크 해제 (코일 통전)"));
}
void brakeLock() {                  // 코일 차단 -> 브레이크 잠김 (전원 차단 시에도 자동 잠김)
  digitalWrite(BRAKE_PIN, BRAKE_IDLE);
  brakeReleased = false;
  Serial.println(F("브레이크 잠금"));
}
void ensureBrakeReleased() {        // 구동 전 안전 시퀀스
  if (!brakeReleased) {
    brakeRelease();
    delay(BRAKE_RELEASE_MS);        // 브레이크가 물리적으로 풀릴 때까지 대기
  }
}

void setup() {
  Serial.begin(9600);
  rs485.begin(9600);                 // 제품 초기값 9600bps
  pinMode(RS485_EN, OUTPUT);
  digitalWrite(RS485_EN, LOW);
  pinMode(BRAKE_PIN, OUTPUT);
  digitalWrite(BRAKE_PIN, BRAKE_IDLE);   // 시작은 잠금 상태 (안전)
  Serial.println(F("PG42-BL42100EB + BLC-400R4E ready. (V1.0)"));
  Serial.println(F("초기 1회(제어 Off에서): c(분해능) d<감속비> | b/B e/E f1000 r500 s g9000 G9000 z p v"));
}

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 = cmd.substring(1).toInt();
  switch (c) {
    case 'e': ctrlOnOff(true);  Serial.println(F("제어 On"));  break;
    case 'E': ctrlOnOff(false); Serial.println(F("제어 Off")); break;
    case 'b': brakeRelease(); return;
    case 'B': brakeLock(); return;   // 반드시 정지(v로 속도 0 확인) 후 잠글 것
    case 'f': ensureBrakeReleased();
              speedMove(0x01, constrain(v, 1, 65533), 10); break;        // CW, 도달 1.0s
    case 'r': ensureBrakeReleased();
              speedMove(0x00, constrain(v, 1, 65533), 10); break;        // CCW
    case 's': speedMove(0x01, 1, 5); delay(600); speedMove(0x01, 1, 1);
              Serial.println(F("감속 정지")); break;
    case 'g': ensureBrakeReleased();
              posMove(0x01, constrain(v, 0, 65533), 10); break;          // CW 위치
    case 'G': ensureBrakeReleased();
              posMove(0x00, constrain(v, 0, 65533), 10); break;          // CCW 위치
    case 'c': setU16(0x0A, ENC_PPR);   // 분해능 설정(10번) - EEPROM 기록, 제어 Off에서
              Serial.println(F("분해능 등록: 1000CPR -> 250 입력 (CPR/4 규칙)")); break;
    case 'd': if (v < 1) { Serial.println(F("감속비를 입력하세요 (예 d14)")); return; }
              setU16(0x0B, (unsigned int)(v * 10));   // 감속비 설정(11번) - 0.1비 단위
              Serial.print(F("감속비 1/")); Serial.print(v);
              Serial.print(F(" 등록 (전송값 ")); Serial.print(v * 10); Serial.println(F(")")); break;
    case 'z': sendFrame(0x0F, nullptr, 0); Serial.println(F("위치 0 초기화 (15번 명령)")); break;
    case 'p': sendFrame(0xA1, nullptr, 0); readFeedback(); return;
    case 'v': sendFrame(0xA2, nullptr, 0); readFeedback(); return;
    default:  Serial.println(F("? b/B e/E c d14 f1000 r500 s g9000 G9000 z p v")); return;
  }
  readFeedback();  // 명령 후 응답/에코 로그 표시
}
사용 순서: 최초 1회 제어 Off(E) 상태에서 c(분해능, 1000CPR→250 자동 적용)와 d14처럼 구매하신 감속비를 등록하고(설정 간 0.3초 이상 간격), 이후 운전은 b(해제) → f/r 또는 g/G → s(정지) → v로 속도 0 확인 → B(잠금) → E 순서를 지키면 됩니다. 속도는 0.1RPM 단위, 위치는 0.01도 단위(절대위치 0~655.33도)이며 감속비 등록 후 출력축 기준으로 동작합니다. 송수신 HEX 로그가 출력되므로 문제 발생 시 로그를 상품문의에 붙여 주세요.
필요한 구성 — 본품(감속비 옵션 선택) + BLC-400R4E 드라이버 → + 아두이노 UNO + RS485 컨버터 모듈 + 릴레이 모듈 1채널(별도 준비)
동작이 안 되면 상품문의 게시판에 ①구매하신 감속비 옵션 ②결선 사진(브레이크 릴레이 포함) ③시리얼 모니터의 TX/RX 로그를 남겨 주세요. 기술팀이 확인해 드립니다.
작성: MotorBank 기술팀 · 최종 업데이트: 2026-08-16
bg42-bl4241eb_900x11404_n_01_160158.jpg




8e295a9a6d4c37079c86cb26061708c6_183714.jpg
01a935c2ffbeeb985b8b0dac448c9bbf_183713.jpg







bg42-bl4241eb_900x11404_n_05_160234.jpg
bg42-bl4241eb_900x11404_n_06_160241.jpg


배송안내




  배송안내
  1. 총 결제 금액 15만원 이상 구매 시 무료배송, 15만원 미만일 경우 배송비 3,500원이 추가됩니다.
  2. 배송은 CJ대한통운 택배를 이용하고 있습니다.
  3. 주문 제작, 주문 발주, 조립제품의 경우 7일~14일 정도 소요될 수 있습니다.
  4. 배송 상황은 대한통운 홈페이지에서 확인 가능합니다.
  5. 퀵으로 배송받으실 경우, 지불하신 택배비는 환불되지 않습니다.
    6. 15만원이상 구매시 저희가 부담했던 택배비에 대해서, 단순변심에 의한 취소는 처음발송시의택배비 차감하고 환불처리 됩니다.
    7. 구매하신 제품의 크기(부피 또는 길이)에 따라 기본 배송비 외에 추가 비용이 발생할 수 있습니다(실제 비용 측정 후 안내).
  

  교환, 반품이 불가한 경우
  1. 상품 개봉으로 인한 상품 가치 훼손 시에는 7일 이내라도 교환·반품이 불가능합니다.
  2. 주문 제작, 조립제품의 경우 7일 이내이더라도 교환·반품이 불가능합니다.
  3. 전압이 단 1회라도 인가된 경우 교환·반품이 불가능합니다. 단순변심은 절대 박스를 개봉하지 않은 상태로 반품처리 진행하시기 바랍니다.
  4. 반드시 선불 택배로 보내셔야 하며, 착불일 경우 반송처리 됩니다.
  5. 일부 상품은 신모델 출시, 부품 가격 변동 등 제조사 사정으로 가격이 변동될 수 있습니다. 
  6. 박스 개봉시 절대 반품,교환이 불가하오니, 단순변심의 경우 절대 포장을 개봉하지 마세요.

  유의사항
  1. 공급 제조사는 재고 사정에 따라 동일 사양의 대체상품으로 공급될 수 있으며, 사용자께서는 사용 전 반드시 제품에 대한 테스트 및 확인 절차 후 사용하시기 바랍니다. 
  2. 상기 제품에 첨부된 데이터시트는 참고사항 입니다.
  3. 데이터시트에 표기된 내용에 대하여 본사는 어떠한 기술적인 문의 및 발생하는 문제에 대한 법적인 책임을 지지 않습니다. 
  4. 제공되는 스펙과 모양은 별도의 공지없이 변경될 수 있습니다.



  구매 전 주의사항 (주의사항을 읽지 않고 구매 시 발생하는 문제는 당사가 책임지지 않습니다.)
  - ​감속기 장착 조립제품 및 PCB 조립제품 등은 결제 후 절대 변경,취소,교환되지 않습니다. 결제하시기 전 신중히 선정하시기 부탁드립니다. 
     -  저희는 B2B 전문 쇼핑몰입니다.  또한 KC를 받지 않아도 되는 산업용부품을 대부분 판매중입니다. 
    - 판매제품은 완제품이 아닌 부품입니다. 약간의 차이, 피복 등으로 인한 환불,교환,AS는 불가합니다.
  

이미지 확대보기42파이 직각형 유성감속 BLDC모터 엔코더+브레이크 BG42-BL4241EB DC24V 26W — 마이터기어 90도 출력, 위치제어 + 정전 시 위치 유지

42파이 직각형 유성감속 BLDC모터 엔코더+브레이크 BG42-BL4241EB DC24V 26W — 마이터기어 90도 출력, 위치제어 + 정전 시 위치 유지
  • 42파이 직각형 유성감속 BLDC모터 엔코더+브레이크 BG42-BL4241EB DC24V 26W — 마이터기어 90도 출력, 위치제어 + 정전 시 위치 유지
  • 42파이 직각형 유성감속 BLDC모터 엔코더+브레이크 BG42-BL4241EB DC24V 26W — 마이터기어 90도 출력, 위치제어 + 정전 시 위치 유지
  • 42파이 직각형 유성감속 BLDC모터 엔코더+브레이크 BG42-BL4241EB DC24V 26W — 마이터기어 90도 출력, 위치제어 + 정전 시 위치 유지
  • 42파이 직각형 유성감속 BLDC모터 엔코더+브레이크 BG42-BL4241EB DC24V 26W — 마이터기어 90도 출력, 위치제어 + 정전 시 위치 유지
  • 42파이 직각형 유성감속 BLDC모터 엔코더+브레이크 BG42-BL4241EB DC24V 26W — 마이터기어 90도 출력, 위치제어 + 정전 시 위치 유지
  • 42파이 직각형 유성감속 BLDC모터 엔코더+브레이크 BG42-BL4241EB DC24V 26W — 마이터기어 90도 출력, 위치제어 + 정전 시 위치 유지
닫기

비밀번호 인증

글 작성시 설정한 비밀번호를 입력해 주세요.

닫기

장바구니 담기

상품이 장바구니에 담겼습니다.
바로 확인하시겠습니까?

찜 리스트 담기

상품이 찜 리스트에 담겼습니다.
바로 확인하시겠습니까?