用单片机对步进电机加减速的控制

[复制链接]
5936|14
 楼主| nedonho 发表于 2010-6-23 10:09 | 显示全部楼层 |阅读模式
想请教各位:用PIC单片机控制步进电机加减速有什么比较好的办法?我现在是用定时器赋值来改变频率的大小,用软件来计脉冲数,然后通过脉冲数来判断速度,因为每次行程都不一样,所以减速的时候不知道脉冲数是多少,希望各位能够指点一下。
奇兵 发表于 2010-6-23 14:07 | 显示全部楼层
用定时器的中断间隔做时基,定义两个变量a,b;a为记录定时器中断次数的,b则为比较用;比较ab两变量大小当a>b时这对a变量进行清零,同时改变输出到步进电机的脉冲;这样可以通过改变b的值来改变输出脉冲的间隔,加速时使b减小,减速时使b增大.
maibb 发表于 2010-6-29 20:14 | 显示全部楼层
直接用PWM控制不是很好吗?
cgchb 发表于 2010-7-9 16:40 | 显示全部楼层
用PWM 来控制
airwill 发表于 2010-7-18 08:25 | 显示全部楼层
楼主的要求, 不合适用 PIC , 个人觉得.
要想得到比较准确的线性频率变化(这时加减速的要求), 就自然会用到除法.
因为单片机容易实现的是时间线性(定时器计数).倒数关系, 时间线性, 频率肯定不线性.
PIC 的乘除法, 的确是个累活. 而数 K 的频率要求的计算量 对应 PIC 来说够呛了
就这个计算, 还不如 MCS51, 或者 AVR, 本人推荐, 我也用 AVR 干这事.
airwill 发表于 2010-7-18 08:29 | 显示全部楼层
记得经我改造的 AVR 24位 除以 16 位的整数除法(汇编程序) 大约 150 多个周期.
完全胜任 频率线性的定时器计算.
autuy123 发表于 2010-7-18 12:05 | 显示全部楼层
pic 的单片机可以的, 我用的是 dspic30f的

只是对电机的加加减速曲线不是那么清楚,所以电机没有过太高的转速,最高也就120转,我是用PWM做的
望断云山 发表于 2010-7-19 23:12 | 显示全部楼层
事先做一张加速曲线表,取表中的值写入定时器
5880527 发表于 2010-7-20 10:24 | 显示全部楼层
楼上正解
YINGZEZIGA 发表于 2010-7-20 17:54 | 显示全部楼层
做个表格,查表就可以了。10KHz向定时器里面写个值A,9KHz向定时器里面写个B。不过我做这个东西从来不使用定时器寄存器的,定时器固定频率,例如500KHz,利用另外一个计数寄存器来判断是否到了需要更改电平方向的时刻,这样一个定时器可以给多个脉冲频率输出使用。这个应该很简单,但是要注意,你要做线性的减速的话,控制的时候需要给低频多留一些时间,否则电机有可能无法启动。
5880527 发表于 2010-7-21 10:24 | 显示全部楼层
11# YINGZEZIGA
500KHZ?
sankyo_feng 发表于 2010-7-29 21:26 | 显示全部楼层
占位,不是太懂
winkle.zhang 发表于 2010-9-26 13:43 | 显示全部楼层
受教
不过6L说的不是很懂
zhuyjgh 发表于 2010-10-8 17:00 | 显示全部楼层
500k的定时器,,还有时间干其他的活吗??11楼用的什么片子啊??
TRINAMIC 发表于 2011-4-23 22:10 | 显示全部楼层
500k的定时器,,还有时间干其他的活吗??11楼用的什么片子啊??》》》》》如果这样MCU的负担很重啊 哪有空间做其他的啊,加减速的确比较难控制,可以采用专用的控制芯片,这样可以解放MCU的负担,MCU来控制更高层次的控制比如I/O之类得

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

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

本版积分规则

0

主题

31

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部