登录
首页
单片机论坛
回帖
发帖
正文
主题:请教:如何使用KEIL的C语言编程驱动步进电机?
点击:3789 回复:8
楼主
编辑
引用
管理
redmanjack
请教高手:如何使用KEIL的C语言编程驱动步进电机?
我只知道步进电机是要靠发给电机脉冲来驱动和控制的,但是在如何编程就不会了,知道的大侠能不能贴上来,或者给我份资料:)
email: redmanjack@etang.com
感谢大家!
最后修改:
2005-3-1 15:46:00
05-03-01 15:45
1楼
编辑
引用
管理
machelec
是否用运动控制卡?
最后修改:
2005-3-1 15:53:31
05-03-01 15:53
2楼
编辑
引用
管理
redmanjack
不用运动控制卡!
我希望电机输出的扭距是1.6牛米
05-03-01 16:30
3楼
编辑
引用
管理
tuxw
跟驱动器打交道就行了,至于输出扭矩只与电机和驱动器有关系数,跟程序基本无关
一般驱动器会给你三个控制信号入口:
1、脉冲----频率决定电机转速
2、方向----高、低电平决定电机转向
3、释放----断开电机,此时可以用手转动电机,视驱动器不同可能没有这个信号
另外可能还有细分模式设定,决定每个脉冲对应电机多大的转角
编程时真正需要关注的只有脉冲信号,一个需要注意的是驱动器的最小脉冲宽度——决定了最高频率即电高转速,二是升降丢步问题,升降速时对给定脉冲频率要作斜坡处理,不要突变就行了
05-03-01 19:56
4楼
编辑
引用
管理
redmanjack
楼上的兄弟,你说的很好呀!
你说的三个控制口我也知道
我要请教的是:
脉冲在程序里怎么表现,难道是靠延时?
你能举个简单点的程序的例子给我吗?
感谢感谢!!
05-03-01 22:37
5楼
编辑
引用
管理
tuxw
最简单直接的方法就是用延时了,不过这种方法在控制电机运转时不能做其它的事情
如用 P1.0 控制驱动器脉冲,驱动器低电平有效
sbit PULS = P1^0;
以下伪代码发一个脉冲
PULS = 0;
延时1; // 须大于最小脉宽
PULS = 1;
延时2;
延时1+延时2 为脉冲周期,倒数为脉冲频率,决定电机的转速
循环执行则电机以固定速运转,调节延时时间则可变速
如果系统加有看门狗芯片,中间要加喂狗信号,避免连续运行时狗复位
比较好的方法是用定时中断控制输出脉冲
将需要的电机转速换算成频率,再换算成周期初始化定时,然后在定时中断中控制脉冲输出位
调节定时器的初始化值则可调节电机转速
05-03-02 12:20
6楼
编辑
引用
管理
redmanjack
问题1:什么叫“不过这种方法在控制电机运转时不能做其它的事情?”
按我理解是不是说电机运转时不能进行其他动作,如果要进行下其它动作,则必须先停止电机?
问题2:中断控制输出脉冲的话是怎么理解,能举个例子吗?
我理解中断控制的话是不是在一个持续的脉冲中进行中断,从而控制?如何实现呢?
05-03-02 16:57
7楼
编辑
引用
管理
sgx
1,不能做其它的事是因为程序现在处于延时中,如果用中断可以对中断次数加以计数,并通过中断次数的修改而改变其转速。
老兄:我建议你还是看看书吧!
05-03-02 17:21
8楼
编辑
引用
管理
redmanjack
楼上的大哥,呵呵,知道了,有什么书介绍我看呀,我都找不到!
再问问:你的意思是不是通过记中断的次数使记时器记时,达到和延时一样的效果呢?
谢谢了哈!
05-03-02 18:43
工控新闻
倍福 2026年第一期全国大学生工程游学夏令营(苏州工学院站)顺利开营
华北工控赋能AI视觉落地:EMB-3541提供10.4Tops@INT8算力和丰富接口
直面汽车制造转型挑战,看 5 家设备企业分享心得|倍福
图尔克 | 一滴可乐引发的"危机"
给“AI”发身份证!国内首个智能体互联标准体系发布
西克新品 | MWS250 测量轮编码器上市
TE Connectivity公布2026财年第三季度财报
CC-Link IE TSN 技术,打造工业通信统一 “赛场规则”
更多新闻资讯