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

共1条 1/1 1 跳转至

【let'sdo|2026年第1期】静音步进电机控制实践过程帖

专家
2026-05-18 00:12:51     打赏

● 简介

     拿到实物也有段时间了,在上期静音步进电机控制实践开箱帖已经详细的分享了TMC2209电机驱动模块的各个接口,而且各接口也焊接好插针,主控Pico及其它外设均已准备完成。此次分享一下,使用自备的Pico开发板,12V电源,步进0.9°的电机,加上活动中购买的TMC2209电机驱动模块,实现基本的驱动控制测试。

硬件连线

     正如上期帖子中提到的,将TMC2209电机驱动模块的各主要管脚通过杜邦线与树莓派Pico相连接,12V电源也供给TMC2209。

Dir  ---->    GP16

Step ---->  GP17

En  ---->    GP18

实物连接.jpg

程序编写

    这里笔者使用Thonny IDE编写MicroPyhton脚本程序,关于Thonny IDE的环境安装,这里就不展开赘述了,非常简单,跟通用软件安装一样。编写的测试程序如下:

from machine import Pin
import time

STEP = Pin(17, Pin.OUT)    # Step pulse pin
DIR  = Pin(16, Pin.OUT)    # Direction control pin
EN   = Pin(18, Pin.OUT)    # Enable pin (low = enabled)

# Enable driver
EN.value(0)

# Motion parameters
STEPS_180 = 1600           # 180° pulse count for 0.9°
FREQUENCY = 1000           # Step frequency (Hz)
DELAY_US = int(1000000 / FREQUENCY / 2)  # Microsecond delay for half period

# Record total loop count
cycle_count = 0

def rotate(target_steps, direction):

    # Set direction pin
    DIR.value(direction)
    
    # Send step pulses
    for _ in range(target_steps):
        STEP.value(1)
        time.sleep_us(DELAY_US)
        STEP.value(0)
        time.sleep_us(DELAY_US)

def main():
    global cycle_count
    while cycle_count < 3:
        
        print("Forward 180°")
        rotate(STEPS_180, 1)     # 1 = forward
        time.sleep(0.5)
        
        print("Reverse 180°")
        rotate(STEPS_180, 0)     # 0 = reverse
        
        cycle_count += 1
        time.sleep(1)            # Pause between cycles
    
    EN.value(1)                  # Disable driver

if __name__ == "__main__":
    main()

● 视频演示

    程序实现了0.9°步进电机运行了3次正转、反转,每次转动180°,大约需1600步,测试了许久,精度非常高,TMC2209模块稳定而不发热,静音高效驱动。该模块还集成串口参数精细控制,证实是一款性价比非常高的步进电机驱动模块。




关键词: let'sdo|2026年第1期     步进电机     TMC    

共1条 1/1 1 跳转至

回复

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