找回密码
 立即注册
楼主: 梁工

51开源,步进电机驱动 程序, 直接驱动, 或驱动步进电机驱动器 一共8个程序

 火.. [复制链接]
  • 打卡等级:常住居民III
  • 打卡总天数:181
  • 最近打卡:2025-09-15 11:00:40

76

主题

6717

回帖

1万

积分

超级版主

积分
14125
发表于 2023-9-19 12:45:41 | 显示全部楼层
lzne*** 发表于 2023-9-19 10:21
粱工  经过测试,完全控制步进了,包括回原点,当前脉冲值,定位,(刚开始的时候,不同状态下回原点时不能 ...

推荐使用STC8系列、STC32系列,性能、速度都比15系列好得多。
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-01-09 08:51:18

0

主题

14

回帖

200

积分

中级会员

积分
200
发表于 2023-9-19 14:40:33 | 显示全部楼层
梁工,
来个6路S形脉冲100K输出,多路加减速输出应用才广!

点评

这是要让小电炉拉1吨货飞起来么?  详情 回复 发表于 2023-9-19 15:01
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:181
  • 最近打卡:2025-09-15 11:00:40

76

主题

6717

回帖

1万

积分

超级版主

积分
14125
发表于 2023-9-19 15:01:01 | 显示全部楼层
xiao*** 发表于 2023-9-19 14:40
梁工,
来个6路S形脉冲100K输出,多路加减速输出应用才广!

这是要让小电驴拉1吨货飞起来么?
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-01-09 08:51:18

0

主题

14

回帖

200

积分

中级会员

积分
200
发表于 2023-9-19 15:54:37 | 显示全部楼层
如:
开250个数组缓冲;0.5-1ms计算一次100个脉冲的加减速数据,这个数据存入数组当PWM输出频率;
PCA中输出PWM,装载频率数据;
环形存入频率与装载频率数组;
这样不会影响脉冲速度;

点评

每个脉冲要中断两次装载时间参数。 100KHz就是5us中断一次,6路一起平均就是5/6=0.833us中断一次,进中断的时间都不够。  详情 回复 发表于 2023-9-19 17:03
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:181
  • 最近打卡:2025-09-15 11:00:40

76

主题

6717

回帖

1万

积分

超级版主

积分
14125
发表于 2023-9-19 17:03:52 | 显示全部楼层
xiao*** 发表于 2023-9-19 15:54
如:
开250个数组缓冲;0.5-1ms计算一次100个脉冲的加减速数据,这个数据存入数组当PWM输出频率;
PCA中输 ...

每个脉冲要中断两次装载时间参数。
100KHz就是5us中断一次,6路一起平均就是5/6=0.833us中断一次,进中断的时间都不够。
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-01-09 08:51:18

0

主题

14

回帖

200

积分

中级会员

积分
200
发表于 2023-9-19 18:00:04 | 显示全部楼层
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:276
  • 最近打卡:2025-09-15 08:27:07

3

主题

68

回帖

465

积分

中级会员

积分
465
发表于 2023-10-31 20:52:15 | 显示全部楼层
电机抖动很严重是什么问题呢

点评

驱动时序不对,示波器看一下电枢的波形是否对称  详情 回复 发表于 2023-11-1 11:46
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:181
  • 最近打卡:2025-09-15 11:00:40

76

主题

6717

回帖

1万

积分

超级版主

积分
14125
发表于 2023-11-1 11:46:06 | 显示全部楼层
ofe*** 发表于 2023-10-31 20:52
电机抖动很严重是什么问题呢

驱动时序不对,示波器看一下电枢的波形是否对称
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:424
  • 最近打卡:2025-09-15 10:11:16
已绑定手机

22

主题

488

回帖

1150

积分

金牌会员

积分
1150
发表于 2023-11-1 20:43:45 | 显示全部楼层
请问   u16        GetStep(u16 f, u16 f_set)函数里:M1_UpPulse = (u16)((u32)(f + f_set)*UpTime / 2000);        // 理论加速脉冲数  
这条指令里的2000对应的是哪个参数?

点评

加速脉冲数 = (初始频率+目标频率)/2 *加速时间,即中点频率*加速时间,时间为ms,算成秒就要/1000,所以: 加速脉冲数 = (初始频率+目标频率)/2 *加速时间(ms)/1000 = (初始频率+目标频率  详情 回复 发表于 2023-11-1 23:18
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:181
  • 最近打卡:2025-09-15 11:00:40

76

主题

6717

回帖

1万

积分

超级版主

积分
14125
发表于 2023-11-1 23:18:25 | 显示全部楼层
lly*** 发表于 2023-11-1 20:43
请问   u16        GetStep(u16 f, u16 f_set)函数里:M1_UpPulse = (u16)((u32)(f + f_set)*UpTime / 2000);        //  ...

加速脉冲数 = (初始频率+目标频率)/2  *加速时间,即中点频率*加速时间,时间为ms,算成秒就要/1000,所以:
加速脉冲数 = (初始频率+目标频率)/2  *加速时间(ms)/1000
                 = (初始频率+目标频率) *加速时间(ms)/2000
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-9-16 09:16 , Processed in 0.139236 second(s), 105 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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