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

共2条 1/1 1 跳转至

静音步进电机控制实践过程帖-----测试TMC2209模块

专家
2026-04-30 20:23:17     打赏

TMC2209步进电机静音驱动模块的控制引脚挺多,其参数的配置可以通过串口单线完成。

图片1.png

原理图:

图片2.png

接口说明

图片3.png

查资料得到以下有关引脚说明的信息:

图片4.png

根据手册可知,TMC2209可选择内部时钟或外部时钟,模块的CLK引脚默认下拉到GND,且其内部集成有步进脉冲发生器,可选择使用内部脉冲发生器提供脉冲信号还是使用外部脉冲发生器提供脉冲信号(0x22设置为0为外部脉冲模式,不为0内部脉冲模式),即如果使用外部发生器提供脉冲信号,STEP引脚就需要连接。在使用默认配置场合,MS1和MS2、SPREAD可以悬空不用。

第一次使用TMC2209,所以需要做一些简单的测试。测试方式为使用RP2040在Mu Editor下使用 MicroPython进行测试。这个测试使用最简单的程序,不进行任何设置参数的处理,直接驱动EN、DIR,STEP驱动电机转动。买到手的TMC2209 模块没有提供散热器,所以为了安全,先使用工作电流比较小的42步进电机做实验。

图片5.png

电气连接:

图片6.png

实物连接图:

图片7.png

程序代码(test.py):

import machine
import utime
motor_dir = machine.Pin(0, machine.Pin.OUT)
motor_step = machine.Pin(1, machine.Pin.OUT)
motor_en = machine.Pin(2, machine.Pin.OUT)
button = machine.Pin(15, machine.Pin.IN, machine.Pin.PULL_UP)
led = machine.Pin(25, machine.Pin.OUT)
motor_en.value(0)
motor_dir.value(1)
steps = 0
while True:
    #led.value(1)
    #utime.sleep(0.5)
    #led.value(0)
    #utime.sleep(0.5)
#    if button.value()==0:
#        motor_dir.value(0)
#        led.value(0)
#    else:
#        motor_dir.value(1)
#        led.value(1)
    steps=(steps+1)%2000
    if steps<1000:
        motor_dir.value(0)
        led.value(0)
    else:
        motor_dir.value(1)
        led.value(1)
    motor_step.value(1)
    utime.sleep(0.001)
    motor_step.value(0)
    utime.sleep(0.001)

测试效果:

图片8.gif

程序控制电机每走1000步就反转。正常工作一段时间,触摸TMC2209芯片,没有明显升温现象,不错!






专家
2026-05-06 14:12:43     打赏
2楼

活动中用到了这块开发板,就开始学习了。不大习惯mpy,而且Arduino有驱动库,使用起来方便,开发更快。


共2条 1/1 1 跳转至

回复

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