登录
首页 单片机论坛
回帖 发帖
正文

主题:请教:如何使用KEIL的C语言编程驱动步进电机?

点击:3691 回复:8

请教高手:如何使用KEIL的C语言编程驱动步进电机?
我只知道步进电机是要靠发给电机脉冲来驱动和控制的,但是在如何编程就不会了,知道的大侠能不能贴上来,或者给我份资料:)
email: redmanjack@etang.com
感谢大家!
最后修改:2005-3-1 15:46:00
05-03-01 15:45
是否用运动控制卡?
最后修改:2005-3-1 15:53:31
05-03-01 15:53
不用运动控制卡!
我希望电机输出的扭距是1.6牛米
05-03-01 16:30
跟驱动器打交道就行了,至于输出扭矩只与电机和驱动器有关系数,跟程序基本无关
一般驱动器会给你三个控制信号入口:
1、脉冲----频率决定电机转速
2、方向----高、低电平决定电机转向
3、释放----断开电机,此时可以用手转动电机,视驱动器不同可能没有这个信号
另外可能还有细分模式设定,决定每个脉冲对应电机多大的转角
编程时真正需要关注的只有脉冲信号,一个需要注意的是驱动器的最小脉冲宽度——决定了最高频率即电高转速,二是升降丢步问题,升降速时对给定脉冲频率要作斜坡处理,不要突变就行了
05-03-01 19:56
楼上的兄弟,你说的很好呀!
你说的三个控制口我也知道
我要请教的是:
脉冲在程序里怎么表现,难道是靠延时?
你能举个简单点的程序的例子给我吗?
感谢感谢!!
05-03-01 22:37
最简单直接的方法就是用延时了,不过这种方法在控制电机运转时不能做其它的事情
如用 P1.0 控制驱动器脉冲,驱动器低电平有效
sbit PULS = P1^0;
以下伪代码发一个脉冲
PULS = 0;
延时1;     // 须大于最小脉宽
PULS = 1;
延时2;
延时1+延时2 为脉冲周期,倒数为脉冲频率,决定电机的转速
循环执行则电机以固定速运转,调节延时时间则可变速
如果系统加有看门狗芯片,中间要加喂狗信号,避免连续运行时狗复位
比较好的方法是用定时中断控制输出脉冲
将需要的电机转速换算成频率,再换算成周期初始化定时,然后在定时中断中控制脉冲输出位
调节定时器的初始化值则可调节电机转速
05-03-02 12:20
问题1:什么叫“不过这种方法在控制电机运转时不能做其它的事情?”
按我理解是不是说电机运转时不能进行其他动作,如果要进行下其它动作,则必须先停止电机?
问题2:中断控制输出脉冲的话是怎么理解,能举个例子吗?
我理解中断控制的话是不是在一个持续的脉冲中进行中断,从而控制?如何实现呢?
05-03-02 16:57

sgx

1,不能做其它的事是因为程序现在处于延时中,如果用中断可以对中断次数加以计数,并通过中断次数的修改而改变其转速。
老兄:我建议你还是看看书吧!
05-03-02 17:21
楼上的大哥,呵呵,知道了,有什么书介绍我看呀,我都找不到!
再问问:你的意思是不是通过记中断的次数使记时器记时,达到和延时一样的效果呢?
谢谢了哈!
05-03-02 18:43

工控新闻

更多新闻资讯