找回密码
 立即注册
查看: 1803|回复: 2

STC8A8K64D4-两相步进电机, 传统的CCP/PWM/PCA实现SPWM细分驱动

[复制链接]
  • 打卡等级:偶尔看看III
  • 打卡总天数:50
  • 最近打卡:2025-04-30 22:59:03

73

主题

5882

回帖

1万

积分

超级版主

积分
12073
发表于 2023-4-24 17:11:06 | 显示全部楼层 |阅读模式
本帖最后由 梁工 于 2023-4-25 22:04 编辑

两相步进电机,  STC8A8K64D4
===用传统的CCP/PWM/PCA实现SPWM细分驱动
/*************        功能说明        **************
用PCA-SPWM细分驱动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.
CCP/PWM/PCA:    4路PWM分别从P2.3 P2.4 P2.5 P2.6输出驱动步进电机.
串口命令设置:
L1,500,1000   --> 马达1以500Hz正转1000个脉冲, 脉冲数为0则连续转动.
R1,500,1000   --> 马达1以500Hz反转1000个脉冲, 脉冲数为0则连续转动
s             --> 停止所有电机
使用42电机验证。
STC8A8K64D4-两相步进电机PCA-SPWM细分驱动-1.png

电路
STC8A8K64D4-两相步进电机PCA-SPWM细分驱动-2.png

STC8A8K64D4-两相步进电机PCA-SPWM细分驱动.rar (213.79 KB, 下载次数: 128)




回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:309
  • 最近打卡:2025-05-01 21:51:03

0

主题

37

回帖

1334

积分

金牌会员

积分
1334
发表于 2025-2-14 12:44:57 | 显示全部楼层
这个用按键控制怎么弄?

点评

你要按键控制什么参数?加按键读取和执行程序就可以了。  详情 回复 发表于 2025-2-14 17:11
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:50
  • 最近打卡:2025-04-30 22:59:03

73

主题

5882

回帖

1万

积分

超级版主

积分
12073
发表于 2025-2-14 17:11:57 | 显示全部楼层
手机刷*** 发表于 2025-2-14 12:44
这个用按键控制怎么弄?

你要按键控制什么参数?加按键读取和执行程序就可以了。
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 02:29 , Processed in 0.119394 second(s), 64 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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