1. 스텝모터 3종 토크 비교표
| 모델명 | 최대 토크 (Holding Torque) | 크기 (두께) | 특징 |
| 17HS4401 | 약 40 ~ 45 N·cm | 40mm (표준) | 가장 강력함. |
| 17HS4023 | 약 14 ~ 15 N·cm | 23mm (슬림) | 가벼움. |
| 28BYJ-48 | 약 3 ~ 4 N·cm | 19mm (원형) | 매우 약함. 내부 감속기가 있어 느림 |
2. 상세 분석
① 17HS4401 (대장급)
- 힘: 세 모델 중 압도적으로 강합니다.
- 조합: TMC2209 드라이버의 성능을 100% 끌어낼 수 있습니다.
② 17HS4023 (경량급)
- 힘: 17HS4401의 약 1/3 수준입니다.
- 용도: 로봇 팔에 쓰인다면 맨 끝에 달리는 그리퍼(집게) 부분에 쓰기 좋습니다. 끝부분이 무거우면 아래쪽 모터들이 힘들어하기 때문입니다.
③ 28BYJ-48 (초미니급)
- 힘: 17HS4401의 약 1/10 수준밖에 안 됩니다.
- 주의점: 이 모터는 아두이노 입문용으로 유명하지만, 내부에 플라스틱 기어가 들어있어 무거운 걸 억지로 돌리면 기어가 갈려버릴 수도 있습니다. 전압도 보통 5V나 12V 전용이라 TMC2209와 궁합을 맞추기도 까다롭습니다.
** NEMA 17 모터(특히 17HS4401)를 돌리기 위해 가장 많이 쓰이는 드라이버 4종을 비교해 드릴게요.
1. 모터 드라이버 4종 비교표
| 모델명 | 최대 전류 (Peak) | 마이크로스테핑 | 소음 수준 | 주요 특징 |
| A4988 | 2.0A | 1/16 | 매우 큼 | 가장 저렴함, 입문용 표준 |
| DRV8825 | 2.5A | 1/32 | 큼 | 높은 전압(45V) 견딤, 강한 힘 |
| TMC2208 | 2.0A | 1/256 | 매우 조용 | 스텔스촙(저소음) 기술의 시작 |
| TMC2209 | 2.8A | 1/256 | 최고로 조용 | 센서리스 홈밍, 낮은 발열 |
2. 드라이버별 상세 특징
① A4988 (가성비 끝판왕)
- 장점: 가격이 매우 저렴하고 설정이 단순합니다. 고장 나도 부담이 없습니다.
- 단점: 모터가 돌 때 “삐~” 하는 고주파 소음과 진동이 심합니다.
- 추천: 소음 상관없이 일단 저렴하게 구동해보고 싶을 때 사용하세요.
② DRV8825 (고전압/고출력)
- 장점: A4988보다 조금 더 큰 전류를 흘릴 수 있고, 32분주(1/32)를 지원해 움직임이 조금 더 부드럽습니다.
- 단점: 여전히 소음이 있고, 전류 설정(Vref)이 조금 까다롭습니다.
③ TMC2208 (조용한 사무실용)
- 장점: 모터 소리가 거의 안 들릴 정도로 조용해집니다. (StealthChop2 적용)
- 단점: 방열판을 제대로 안 붙이면 열이 많이 나서 멈출 수 있습니다.
④ TMC2209 (로봇 팔 최적의 선택)
- 장점: 2208보다 힘(전류)이 더 좋고 발열은 적습니다. 특히 StallGuard(센서리스 홈밍) 기능이 있어, 로봇 팔이 끝까지 가서 부딪히면 스스로 멈추게 설정할 수 있습니다. (별도의 스위치가 필요 없음)
- 단점: 다른 드라이버들에 비해 가격이 가장 비쌉니다.
** ESP32-C3 와 TMC2209 연결시 주의사항
1. 전압 차이 주의 (3.3V vs 5V)
- ESP32-C3: 신호선 전압이 3.3V입니다.
- 드라이버(TMC2209 등): 보통 로직 전압으로 3.3V와 5V를 모두 지원하지만, 모터를 돌리는 주 전원(VM)은 12V~24V를 따로 넣어줘야 합니다.
- 주의: ESP32-C3의 핀에 실수로 12V 전원이 닿으면 보드가 즉사하므로 배선할 때 전원 분리를 확실히 해야 합니다.
2. TMC2209와의 찰떡궁합: UART 제어
ESP32-C3는 핀 수가 적은 편이지만, UART 통신을 지원합니다. TMC2209 드라이버를 UART 모드로 연결하면 다음과 같은 엄청난 장점이 생깁니다.
- 소프트웨어로 전류 조절: 드라이버의 가변저항을 드라이버로 돌릴 필요 없이, 코딩으로 모터 힘(전류)을 조절할 수 있습니다.
- 세밀한 설정: StealthChop(저소음)과 SpreadCycle(고출력) 모드를 상황에 따라 실시간으로 바꿀 수 있습니다.
3. 추천 배선 전략
ESP32-C3는 핀(GPIO) 개수가 제한적이므로 효율적으로 나눠 써야 합니다.
- STEP / DIR 핀: 각 모터당 2개의 핀이 필요합니다. (3축 로봇 팔이면 6개 사용)
- UART 핀: 한 개의 UART 채널로 여러 개의 TMC2209를 묶어서 제어할 수 있습니다. (주소 설정 방식)
- 전원: 12V 5A 이상의 **SMPS(전원 공급 장치)**를 사용해 모터에 힘을 실어주고, ESP32-C3용으로는 5V 강압 회로(Buck Converter)를 쓰는 것이 가장 안정적입니다.
** STEP/DIR, UART
쉽게 비유하자면 **Step/Dir은 ‘운전대와 액셀’**이고, **UART는 ‘차량 설정 메뉴(내비게이션 설정)’**라고 보시면 됩니다.
1. Step / Dir (실시간 주행 신호)
모터를 실제로 움직이게 만드는 **’실시간 명령’**입니다.
- Step (발걸음): 이 핀에 신호(Pulse)를 한 번 줄 때마다 모터가 한 칸(Step) 움직입니다. 신호를 빨리 주면 모터가 빨리 돌고, 천천히 주면 느리게 돕니다.
- Dir (방향): 이 핀에 신호를 넣느냐(High) 빼느냐(Low)에 따라 시계 방향으로 돌지, 반시계 방향으로 돌지가 결정됩니다.
2. UART (스마트한 관리 및 설정)
TMC2209의 똑똑한 기능들을 **’프로그래밍’**으로 제어하기 위한 통신로입니다. 원래 드라이버들은 드라이버로 나사를 돌려서 전류를 맞추거나 점퍼선을 꽂아야 했는데, UART가 있으면 코딩으로 다 해결됩니다.
- 전류 제어: “지금은 로봇 팔이 물건을 안 들고 있으니까 전류를 낮춰서 열을 식히자” 같은 명령이 가능합니다.
- 모드 변경: “지금은 정밀해야 하니까 StealthChop(저소음) 모드로 해” 혹은 “지금은 힘이 세야 하니까 SpreadCycle 모드로 바꿔”라고 지시할 수 있습니다.
- 상태 모니터링: “지금 모터가 막혔어(Stall)?” 혹은 “드라이버가 너무 뜨거워?” 같은 정보를 ESP32-C3가 물어보고 답변을 받을 수 있습니다.
3. 두 핀을 같이 쓰는 이유
로봇 팔을 만들 때는 보통 두 방식을 병행합니다.
- 동작은 Step/Dir로:
AccelStepper같은 라이브러리를 써서 부드럽게 가속/감속하며 움직입니다. - 설정은 UART로: 처음에 전원이 켜질 때 모터의 힘(전류)을 설정하거나, 센서리스 홈밍(부딪히면 멈추기) 민감도를 설정할 때 사용합니다.
💡 팁: ESP32-C3에서 UART 연결 시
TMC2209 한 개당 UART 핀 하나씩 다 연결할 필요가 없습니다. UART 핀 하나에 저항을 이용해서 여러 대의 드라이버를 병렬로 연결하고, 소프트웨어에서 각 드라이버의 ‘주소(Address)’를 지정해 호출하는 방식을 주로 씁니다. (핀 아끼기에 최고죠!)
4종류의 드라이버 중에서 **소프트웨어(코딩)로 설정을 주무를 수 있는 건 TMC2209(및 TMC2208)**뿐입니다.
나머지 구형 드라이버들과 어떻게 다른지 비교해 보면 왜 TMC2209가 ‘똑똑한 드라이버’인지 확실히 알 수 있습니다.
1. 설정 방식의 결정적 차이
| 드라이버 모델 | 설정 방식 (전류/옵션) | 특징 |
| A4988 / DRV8825 | 하드웨어 수동 설정 | 드라이버 위의 아주 작은 **나사(가변저항)**를 드라이버로 돌려서 전류를 맞춰야 합니다. (돌리다 삑끗하면 드라이버가 타버리기도 합니다.) |
| TMC2208 / TMC2209 | UART 통신 설정 | ESP32-C3에서 코드를 전송해 전류값(mA)을 숫자로 입력할 수 있습니다. 나사를 돌릴 필요가 없습니다. |
2. UART가 없으면 겪는 불편함 (구형 드라이버)
A4988이나 DRV8825 같은 드라이버는 ‘말을 못 알아듣는 장치’와 같습니다.
- 전류 변경 불가: 로봇 팔이 빈 손일 때와 무거운 물건을 들었을 때 모터 힘을 다르게 하고 싶어도, 하드웨어적으로 고정되어 있어 불가능합니다.
- 모드 고정: 저소음 모드나 고출력 모드를 상황에 맞춰 바꿀 수 없고, 점퍼 와이어를 일일이 뺏다 꽂았다 해야 합니다.
3. TMC2209 UART만의 “필살기”
다른 드라이버에는 아예 없고, TMC2209를 UART로 연결했을 때만 쓸 수 있는 기능이 있습니다.
- 실시간 자가 진단: 모터가 과열되었는지, 선이 끊어졌는지 ESP32-C3가 UART로 물어보고 에러 메시지를 띄울 수 있습니다.
- 센서리스 홈밍 (StallGuard): 로봇 팔이 물리적인 벽에 부딪혀서 모터에 부하가 걸리면, UART를 통해 “지금 부딪혔어!”라고 신호를 줍니다. 덕분에 리미트 스위치(센서) 없이도 로봇 팔의 시작 위치를 잡을 수 있습니다.
💡 정리하자면
“TMC2209는 명령을 알아듣는 지능형 드라이버이고, 나머지는 시키는 대로 전기만 흘려주는 단순형 드라이버“라고 이해하시면 됩니다.
ESP32-C3를 사용하신다면 핀 개수가 적기 때문에, UART를 통해 여러 개의 TMC2209를 묶어 관리하는 방식이 하드웨어 구성 면에서도 훨씬 깔끔하고 강력합니다.
** 배선 연결법
ESP32-C3와 TMC2209를 UART 방식으로 연결하는 방법은 일반적인 통신 연결보다 조금 독특합니다. TMC2209는 단일 선(Single-line) UART를 사용하기 때문에, ESP32-C3의 TX와 RX를 하나로 묶어주는 과정이 필요합니다.
가장 표준적이고 안정적인 1kΩ 저항을 이용한 연결법을 알려드릴게요.
1. UART 회로 연결 (핵심)
TMC2209의 PDN_UART 핀 하나를 통해 데이터를 주고받기 위해 다음과 같이 배선합니다.
- ESP32-C3 TX (GPIO 21) → 1kΩ 저항 → TMC2209 PDN_UART 핀
- ESP32-C3 RX (GPIO 20) —————-→ TMC2209 PDN_UART 핀에 직접 연결
왜 저항을 쓰나요? > ESP32-C3가 데이터를 보낼 때(TX)와 받을 때(RX) 신호가 충돌하는 것을 방지하기 위함입니다. 이 저항 덕분에 선 하나로 양방향 대화가 가능해집니다.
2. 전체 핀 배선도 (ESP32-C3 기준)
로봇 팔의 모터 하나를 제어하기 위한 전체 연결도입니다.
| TMC2209 핀 | 연결 대상 (ESP32-C3 / 전원) | 비고 |
| VCC (또는 VDD) | ESP32-C3 3.3V | 로직 전원 |
| GND | 공통 GND | 모든 전원의 마이너스를 하나로 묶음 |
| VM (또는 Vmotor) | 12V ~ 24V (+) 전원 | 모터 구동용 (SMPS) |
| PDN_UART | GPIO 20 & 21 (저항 거침) | UART 설정 통신용 |
| STEP | GPIO 0 | 회전 신호 (펄스) |
| DIR | GPIO 1 | 방향 신호 (High/Low) |
| EN (Enable) | GPIO 7 | 모터 잠금/해제 제어 |
** 1 N⋅cm 의 의미
1. 토크 단위 읽는 법
- 표기: 1 N·cm
- 읽는 법: 1 뉴턴 센티미터
- 실제 의미: 모터 축 중심에서 1cm 떨어진 지점에 약 102g의 추를 달았을 때, 모터가 버틸 수 있는 회전력입니다.
2. 우리가 비교한 모터들의 힘 (한눈에 보기)
가장 중요한 **’버티는 힘(토크)’**을 다시 깔끔하게 정리해 드릴게요.
| 모터 모델 | 토크 (힘) | 비유 (사과 1개 ≈ 100g) |
| 17HS4401 | 45 N·cm | 1cm 거리에서 사과 약 45개를 들어 올림 |
| 17HS4023 | 14 N·cm | 1cm 거리에서 사과 약 14개를 들어 올림 |
| 28BYJ-48 | 3 N·cm | 1cm 거리에서 사과 약 3개를 겨우 들어 올림 |
3. 로봇 팔 길이에 따른 실제 무게 계산 (중요!)
로봇 팔이 길어지면 지레의 원리 때문에 들 수 있는 무게가 줄어듭니다.
- 팔 길이가 10cm라면?
- 17HS4401: 약 460g까지 버팀 (사과 4.5개)
- 17HS4023: 약 140g까지 버팀 (사과 1.4개)
- 28BYJ-48: 약 30g까지 버팀 (방울토마토 몇 개 수준)

** 모터별 소비전력 및 특징 비교
| 항목 | 28BYJ-48 (소형) | 17HS4023 (슬림) | 17HS4401 (표준) |
| 정격 전압 | 5V / 12V (모델별 상이) | 약 3.5V (드라이버 제어) | 약 3.6V (드라이버 제어) |
| 정격 전류 | 약 0.2A ~ 0.3A | 1.0A | 1.5A ~ 1.7A |
| 권장 전력 (W) | 약 1W ~ 3W | 약 4W ~ 8W | 약 6W ~ 15W |
| 주요 용도 | 가벼운 장식, 정밀 회전 | 소형 로봇 (추천) | 3D 프린터, 대형 로봇 |
| 토크(힘) | 매우 약함 (기어비 의존) | 중간 (메카넘 휠 적합) | 강함 (무겁고 전력 많이 먹음) |
** 모터별 최고 회전속도 및 특성 비교
| 구분 | 28BYJ-48 (소형) | 17HS4023 (슬림) | 17HS4401 (표준) |
| 최고 속도 (RPM) | 약 15 ~ 25 RPM | 약 600 ~ 1,000 RPM | 약 600 ~ 1,200 RPM |
| 실용 속도 (RPM) | 약 10 ~ 15 RPM | 약 300 ~ 500 RPM | 약 300 ~ 600 RPM |
| 속도 한계 원인 | 내장된 감속 기어 | 슬림한 몸체의 낮은 토크 | 고속 시 역기전력 발생 |
| 주행 체감 | 매우 느림 (거북이 수준) | 적당함 (일반 로봇카) | 빠름 (파워풀한 주행) |


답글 남기기