找回密码
 立即注册
查看: 5387|回复: 11

STC8H系列-高级PWM-两相步进电机-细分驱动

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:393
  • 最近打卡:2026-07-04 17:13:30

83

主题

7888

回帖

1万

积分

超级版主

积分
16827
发表于 2023-4-25 16:16:46 | 显示全部楼层 |阅读模式
两相步进电机,  STC8H系列
===用高级PWM实现SPWM细分驱动
/*************        功能说明        **************
用B组高级PWM细分驱动2相4线小型步进电机, 支持1、2、4、8、16、32、64细分, 比如1.8度的电机4细分到0.45度.
本程序用于演示SPWM多细分直接驱动2相4线小型步进电机的原理, 电压驱动.
实际的专用驱动器是用电流来驱动的, 这样比较通用, 但MCU的PWM做成电流驱动则会很复杂.
电压驱动的不足是, 由于电机反电动势的影响, 转速越高, 电流越小, 力矩越小, 而慢速或静止时电流很大.
为了简单, 利于初学者, 本例使用线性加减速, 如要使用别的加减速算法, 用户自行设计.
使用外设:
Timer0: 工作于1ms中断, 提供1ms时隙标志和串口超时处理.
Timer1: 处理电机驱动.
Timer2: 串口1波特率.
串口1:  命令控制, 串口设置115200,8,1,n.
PWM:    B组4路PWM5~PWM8分别从P2.0 P2.1 P2.2 P2.3输出驱动步进电机.
串口命令设置:
L1,500,1000   --> 马达1以500Hz正转1000个脉冲, 脉冲数为0则连续转动.
R1,500,1000   --> 马达1以500Hz反转1000个脉冲, 脉冲数为0则连续转动
s             --> 停止所有电机
使用42电机验证。
验证电路硬件照片.JPG

电路
STC8H系列-高级PWM-两相步进电机-细分驱动-1.png

串口命令
串口命令.JPG

程序、电路
23-PWMB-两相步进电机-细分驱动.rar (286.93 KB, 下载次数: 472)


视频效果请看另一个贴:

使用SPWM 1~64细分驱动2相4线步进电机效果视频
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=2001
(出处: 国芯论坛-STC全球32位8051爱好者互助交流社区)


回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:18
  • 最近打卡:2026-06-26 13:24:27

20

主题

67

回帖

370

积分

中级会员

积分
370
发表于 2025-10-30 10:23:18 | 显示全部楼层
STC8H的这款例程,可以直接给Ai8H1K08用吗?只要改下PWM IO口的映射能直接用吗?

点评

可以,STC8H系列的PWM都是相互兼容的。  详情 回复 发表于 2025-10-30 10:25
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:393
  • 最近打卡:2026-07-04 17:13:30

83

主题

7888

回帖

1万

积分

超级版主

积分
16827
发表于 2025-10-30 10:25:11 | 显示全部楼层
firef*** 发表于 2025-10-30 10:23
STC8H的这款例程,可以直接给Ai8H1K08用吗?只要改下PWM IO口的映射能直接用吗? ...

可以,STC8H系列的PWM都是相互兼容的。
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:18
  • 最近打卡:2026-06-26 13:24:27

20

主题

67

回帖

370

积分

中级会员

积分
370
发表于 2025-10-30 10:44:21 | 显示全部楼层
梁*** 发表于 2025-10-30 10:25
可以,STC8H系列的PWM都是相互兼容的。

谢谢。STC8H的有点贵,Ai8H还勉强能接收
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:18
  • 最近打卡:2026-06-26 13:24:27

20

主题

67

回帖

370

积分

中级会员

积分
370
发表于 2025-11-7 20:38:32 | 显示全部楼层
梁*** 发表于 2025-10-30 10:25
可以,STC8H系列的PWM都是相互兼容的。

我使用时发现,发送“s”停止命令后。4路PWM总有一路仍然有pwm信号输出(其他三路为低电平),为什么?故意为之还是bug?
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:33
  • 最近打卡:2026-07-04 08:39:52
已绑定手机

3

主题

16

回帖

107

积分

注册会员

积分
107
发表于 2026-1-5 10:03:04 | 显示全部楼层
firef*** 发表于 2025-11-7 20:38
我使用时发现,发送“s”停止命令后。4路PWM总有一路仍然有pwm信号输出(其他三路为低电平),为什么?故 ...

步进电机停止时需要锁轴静止,肯定要持续不断的输出PWM信号输出。
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:19
  • 最近打卡:2026-04-21 15:33:11
已绑定手机

24

主题

32

回帖

290

积分

中级会员

积分
290
发表于 2026-4-21 15:33:11 | 显示全部楼层
请问有闭环的例程吗?

点评

步进电机一般不用传感器做闭环,如果需要,使用同轴编码器做位置检测,就可以做闭环了。  详情 回复 发表于 2026-4-21 17:49
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:393
  • 最近打卡:2026-07-04 17:13:30

83

主题

7888

回帖

1万

积分

超级版主

积分
16827
发表于 2026-4-21 17:49:20 | 显示全部楼层
春去冬*** 发表于 2026-4-21 15:33
请问有闭环的例程吗?

步进电机一般不用传感器做闭环,如果需要,使用同轴编码器做位置检测,就可以做闭环了。
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2026-05-17 10:03:40

0

主题

1

回帖

4

积分

新手上路

积分
4
发表于 2026-5-17 10:03:40 | 显示全部楼层
低速抖动严重,带不起来

点评

步进电机低速时抖动是正常的,带不起来是啥意思? 步进电机哪怕一分钟走一步这么低的速度都可以的啊。步进电机有高速限制(因为有反电动势),但低速是没有限制的,隔多久走一步都可以。  详情 回复 发表于 2026-5-17 13:05
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:393
  • 最近打卡:2026-07-04 17:13:30

83

主题

7888

回帖

1万

积分

超级版主

积分
16827
发表于 2026-5-17 13:05:41 | 显示全部楼层
无忧_*** 发表于 2026-5-17 10:03
低速抖动严重,带不起来

步进电机低速时抖动是正常的,带不起来是啥意思? 步进电机哪怕一分钟走一步这么低的速度都可以的啊。步进电机有高速限制(因为有反电动势),但低速是没有限制的,隔多久走一步都可以。
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2026-7-5 07:50 , Processed in 0.084585 second(s), 101 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表