这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » 【Let'sdo2026年第1期】成果贴:实现电机的运行

共2条 1/1 1 跳转至

【Let'sdo2026年第1期】成果贴:实现电机的运行

高工
2026-07-01 20:46:17     打赏

一:前言

在之前的帖子中,我们实现了树莓派以PWM方式实现呼吸灯效果。下面我们进行步进电机的控制。

二:硬件准备:

1:42步进电机的滑台一个

2:手持示波器:用来测量有无波形输出

3:正点原子DP100可调电源:给驱动模块供电

4:主控:RP2040主控芯片

三:驱动芯片介绍:

TMC2209 是用于台式解决方案的终极步进驱动器,可同时进行失速检测和极其安静的运行。与数个传统驱动器兼容引脚,支持更高的电流,同时降低了冷却要求。TMC2209 是一款极其安静的步进驱动器 IC,也可作为 SilentStepStick 使用。使用针对高达2 A (RMS) 和 29 V 的 2 相步进电机的电机驱动器,可以并联使用 StallGuard4™ 和 StealthChop2™,从而确保无噪音运行,而无需限位开关。

四:硬件连接:

GP1 :电机速度控制输出引脚

GP0:电机方向控制输出引脚

EN:驱动芯片引脚使能,低电平有效

VIO:3.3v 供电正

VM:驱动板供电:DC12V

GND:供电负

五:核心代码如下:

from machine import Pin, PWM, Timer

# 配置 PWM
pwm_pin = Pin(1)
pwm = PWM(pwm_pin)
pwm.freq(1000)
pwm.duty_u16(32767)

# 定义占空比变量
duty = 0
direction = 1  # 1 表示增加,-1 表示减少

# 定时器回调函数
def update_pwm(timer):
    global duty, direction
    duty += direction * 500  # 每次增加或减少 200
    if duty >= 65535 or duty <= 0:
        direction *= -1  # 反转方向
 #   pwm.duty_u16(duty)
pwm.freq(2300)
pwm.duty_u16(32767)
# 配置定时器
timer = Timer()
timer.init(period=10, mode=Timer.PERIODIC, callback=update_pwm)  # 每 10ms 触发一次

六:实物验证:

04-1 实物验证图.png



院士
2026-07-03 16:13:58     打赏
2楼

这个电机看着就稳重。


共2条 1/1 1 跳转至

回复

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