用Megal6 PWM口即PD4或者PD5能控制步进电机吗?
PWM的定义是脉宽一定 占空比可调 这样是不是不能控制步进电机啊 不行的话 是不是随便接个IO口就可以了 哪位有驱动程序吗?C语言的。 肯定可以啦!我以前用32控制伺服电机,脉冲方式,与控制步进电机一样的,我记得是CTC模式,OC1A(PD5)输出;随便接个IO口恐怕忙不过来。不过要注意:
1. 加上加减速限制,否则会失步的。
2. 转速控制可以不管脉冲计数,位置方式必须有计数反馈。
程序需要你自己编了,没有现成正好适合你需要的。 【1楼】 jiangtao
是江淘么? jiangtao-pre@163.com 【2楼】 ada1983
您是哪位? 【1楼】 jiangtao
我想用MEGA16给出脉冲信号和方向信号到驱动器。
脉冲信号:下降沿驱动电机运行一步,脉冲低电平大于10us,f=70Hz。有效脉冲个数=200*37(我这是没有按照细分算的,2细分或者8细分后个数就分别是200*2*37和200*8*37了)——PD4输出脉冲信号;
方向信号:高低电平,领先脉冲信号10us——PC0输出高低电平。
同时怎么实现升减速的突变频率与两端限位的程序。
我怎么实现上面的程序啊,能写个简单的指点下吗?我程序可是不太会啊! 频率输出控制:改变OCR参数;
加减速控制:另开一个时间中断控制频率增量(减量),以及两端限位。 IO口出电平时,开定时器一的中断--方向信号;
这时,它就开始计时,到10US时,开计时器2中断----脉冲信号
2就开始工作
不断中断,发出脉冲波。是这样吗?
限位还是没有明白怎么和单片机的IO口通信。 限位可以考虑脉冲引回外部中断计数。
因为用的中断比较多,要分配好资源。
我先前做的主要方面是速度控制,位置控制要求不很精确,所以限位部分有待验证。 【8楼】 jiangtao
要不先参考下你之前已经调出的速度与方向控制的程序 我再考虑限位的问题 等我弄好后一起学习
我的邮箱:qiangshou302@163.com 程序不看也罢,一年多以前写的,hex都有30K多,我自己现在看来都头大,整个项目还包括其他方面的控制。另外还有一些商业机密的限制,希望理解。
我想按照上面思路去做应该可以的,建议按以下步骤编写程序模块调试:
1. CTC模式脉冲输出,为避免失步影响,先做较低频率。
2. 方向控制——很简单的。
3. 外部控制频率变化,可采用按键触发加、减。
4. 频率变化限制,即加减速控制。
5. 脉冲反馈控制。
6. 梯形/三角形算法。 步进电机控制,C语言的忙不过来吧.单步总有40-50US吧? 谢谢jiangtao,我只编到你说的第二步 回复cbcb128 C语言是可以的 就是加减速的算法不太好实现 加减速算法思路:
核心:通过改变OCR寄存器值改变输出频率。
主程序或控制程序设置目标频率值;
另开一个时间中断,每次中断按照加减速率增加或减少当前频率值,直到目标值。 mark mark mark MARK{:handshake:} 这个控制的问题 还有这么讲究么
页:
[1]