这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » 【静音步进电机控制实践过程帖】丝杆步进电机驱动

共1条 1/1 1 跳转至

【静音步进电机控制实践过程帖】丝杆步进电机驱动

工程师
2026-05-17 20:07:59     打赏

【静音步进电机控制实践过程帖】丝杆步进电机驱动

本文介绍了 TMC2209 步进电机驱动板结合树莓派 Pico 实现 8mm 微型丝杆步进电机驱动的项目设计,包括硬件连接、转接板设计、流程图、关键代码、效果演示等。


项目介绍

  • 硬件连接:TMC2209 模块、扩展板、丝杆步进电机、树莓派Pico扩展板、系统接线示意图、实物图;

  • 工程测试:使用 MicoPython 编程实现步进电机连续旋转,控制旋转方向、角度和速度等;


丝杆步进电机

采用 NIDEC 尼得科 8mm 步进电机。

bj02_step_motor2.jpg

尼得科 MSHN 两相 PM(永磁)型步进电机,聚焦微型精密传动场景,适配对安装空间和功耗要求严苛的电子设备。用于精密设备,尺寸直径 6 - 8mm、长度 4 - 8mm。重量 1 - 3g ,符合 REACH 和 RoHS 环保标准。

电气参数

  • 相数 2 相

  • 额定电压 3 - 5V

  • 步进角度 18°

  • 每相电阻 30 - 40Ω

契合微型设备的低功耗与精准定位需求。

bj02_step_motor.jpg

  • 3 - 5V 的额定电压适配多数微型设备的供电系统;

  • 18° 的步进角度可满足光学仪器、电脑周边设备内部部件的常规定位动作,

  • 稳定的电阻范围能减少运行时的电流波动,保障电机运行的一致性。


应用场景

  • 光学仪器(如微型摄像头镜头调节、小型传感器定位部件);

  • 电脑周边设备(如笔记本电脑微型传动组件、微型打印机走纸控制部件)等;

  • 轴型适配小幅旋转动作,螺杆型则适配小型直线推进需求,匹配这类设备的微型传动需求。


核心优势

  • 超小体积、轻量化,能轻松嵌入空间受限的微型设备;

  • 低电压设计,契合电子设备低功耗的发展趋势,适配范围广。

  • FPC 接线方式,简化设备装配流程,提升生产效率,同时保障运行时的稳定性,符合精密设备对零部件的可靠性要求。

详见:PM型步进电机(轴/螺杆型) | NIDEC(尼得科) .


参数



参数数值
类型2 相 4 线
步距角18°
额定电压3 - 5V
额定电流0.12A/相
电阻35 - 45Ω/相
电感30mH/相
保持扭矩0.15 - 0.2 mN·cm
机身Φ8mm, H8.5mm


引脚定义

stepper_8mm.jpg

转接板设计

为了使用杜邦线连接,绘制 1.5mm 转 2.54mm 转接板

mini_stepper.jpg

适配步进电机 1.5mm 排针间距,转为常用的 2.54mm 排针,便于杜邦线连接、调试等操作;

mini_stepper_board.jpg

采用 0.8mm 板厚,以适配步进电机接口排针长度。

PCB 工程详见:微型丝杠步进电机转接板 .


硬件连接

TMC2209 与步进电机的接线方式如下


42步进电机TMC2209Note
B-2BB phase
B+2AB phase
A+1AA phase
A-1BA phase

相序判断方法详见:【静音步进电机控制实践过程帖】树莓派Pico扩展板设计 .


流程图


flowchart_stepper_8mm.jpg


工程代码

运行 Thonny IDE 新建文件,添加如下代码

 import machine
 import time
 
 dir = Pin(16, Pin.OUT)
 step = Pin(17, Pin.OUT)
 en = Pin(18, Pin.OUT)
 
 # ======== Angle Calculation ==========
 step_angle = 18 # 步距角
 step_cycle = 360 / 18 # 360 / 18 = 20 步/圈
 # microstep mode, default is 1/8 so 8
 # another ex: 1/16 microstep would be 16
 microMode = 8
 # full rotation multiplied by the microstep divider
 steps = step_cycle * microMode  # 20 * 8细分 = 160 脉冲/圈
 
 while True:
     en.value(0)
     dir.value(not dir.value())
     for _ in range(steps):
         step.value(1)
         time.sleep_us(1200)
         step.value(0)
         time.sleep_us(1200)
     en.value(1)
     print("rotated! now reverse")
     time.sleep(1)

保存代码。

效果演示

  • Thonny IDE 运行 stepper_run.py 程序;

  • 步进电机顺时针、逆时针交替旋转;

stepper_8mm_run.gif

  • 方向切换时,终端打印提示字符串;

总结

本文介绍了 TMC2209 步进电机驱动板结合树莓派 Pico 实现 8mm 微型丝杆步进电机驱动的项目设计,包括硬件连接、转接板设计、流程图、关键代码、效果演示等,为相关产品的快速开发和应用设计提供了参考。





关键词: 步进电机     micropython     tmc2209         

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]