标题:
用PWM细分控制步进电机,包含原理和程序
[打印本页]
作者:
lai_hermes2017
时间:
2017-4-29 12:32
标题:
用PWM细分控制步进电机,包含原理和程序
农民讲习所
这是俺一个关于打印机项目中步进马达中的内容,使用的原理为电流矢量图(a),为减少矢量表的误差,改进为(g).(误
差大的时候,Ia和 Ib 的绝对值变大,角度不变,即比例不变)
磁场合成决定步进马达当前的位置。
我们常用的是图(b),用电压驱动时和线圈个数有关系,直接驱动它们,合成的最小角度都是固定的。
细分最常见的是电流细分,电流引起的磁场的合成就决定马达的角度。所以我们一般用电流合成图来代替磁场合成图。
用电流合成电路复杂一点(用 MCU+DA+L298实现也不难)。
这里俺用 PWM方式,用控制电压的方式代替电流。原因:在电压稳定后,线圈的电流和电压成正比。稳定是 PWM细分的
要点,也决定马达速度不能太高。
在细分的情况下,电机分两相和四相是没意义的。可以把四相电机当两相使用。
下面是俺的程序,使用 MEGA16,因为有PWM。
0.png
(230.12 KB, 下载次数: 181)
下载附件
2017-4-29 18:13 上传
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//2 相步进马达驱动
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#define Step_OutMode() DDRB|=BIT(6)|BIT(7)
#define Step_InMode() DDRB&=~(BIT(6)|BIT(7))
#define Step_ReadIO() (PORTB&( ~(BIT(6)|BIT(7)) ))
#define Step_WriteIO(x) PORTB=x
struct Motor2P_Table{ //细分表结构
unsigned char mQuadrant; //象限 0-3
unsigned char mX_Pwm; //x输出的PWM
unsigned char mY_Pwm; //y输出的PWM
};
struct Motor2P{
unsigned char mTableId; //细分表 ID
unsigned char mTask; //马达驱动的任务转移号
unsigned char mSaveTimer; //马达驱动节电模式使用的计数器
unsigned char mReg; //马达驱动使用的寄存器
unsigned char mTimer; //对 2MS 的计数器,时间扩展
unsigned int mSteps; //马达要走的步数
unsigned char mDirect; //马达走动方向
unsigned char mStepRunTimer; //步进时输出有效的时间寄存器
unsigned char mStepIdleTimer; //步进时输出节电的时间寄存器
unsigned char mStepCount; //细分表走动步长。1-2-4-8-16
};
//------------------------------------------------------------
#ifdef dMotor2P_Main
#define Motor2P_Head
#else
…………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
完整代码和教程下载:
用PWM-细分步进电机-包含原理和程序.pdf
(157.01 KB, 下载次数: 357)
2017-4-29 12:30 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
136048599
时间:
2017-12-5 18:26
怎么没人回复呢
作者:
136048599
时间:
2017-12-6 08:51
感谢分享
作者:
qzhyjd
时间:
2018-1-21 21:31
学习了,感谢楼主分享
作者:
龙的传人
时间:
2018-5-15 16:31
谢谢楼主买楼主好人啊
作者:
luokuipeng
时间:
2018-5-23 08:47
且让老夫一探究竟
作者:
木丁西
时间:
2018-8-1 11:26
先评论,再下载。。。。。。。。一探究竟。
作者:
邪帝苍龙
时间:
2018-8-31 09:31
寄存器的版本??!!
作者:
phshxy
时间:
2018-9-19 09:13
谢谢分享
作者:
gaoyang9992006
时间:
2018-9-20 21:17
谢谢分享。多谢。
作者:
心梦逍遥
时间:
2018-9-28 21:30
谢谢分享
作者:
elinsion
时间:
2018-12-6 18:00
谢谢大大分享
作者:
whzdh331
时间:
2019-1-23 13:40
谢谢分享
作者:
whzdh331
时间:
2019-1-23 13:41
谢谢分享,正好用上。
作者:
wangyanlong
时间:
2019-1-27 16:20
不错不错
作者:
WELE
时间:
2019-4-25 17:06
对可以
5V_4相_5线步进电机_全新步进电机.doc
(58 KB, 下载次数: 13)
2019-4-25 17:05 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
xudongqiang
时间:
2019-5-21 14:34
谢谢,下载下来看看
作者:
逻辑落寞
时间:
2019-6-24 18:14
资料很好呢,最近在写一个细分控制程序,正需要这类资料呢,谢谢了
作者:
qq313829423
时间:
2019-7-4 20:54
这个不错 刚好需要呀
作者:
qq313829423
时间:
2019-7-4 20:55
这个真的不错 刚好需要 谢谢
作者:
raohuayun188
时间:
2019-9-26 19:50
学习了
作者:
ar_fa
时间:
2019-12-13 08:54
我怎么只看到pdf,没看到源程序呀。谢楼主享分
作者:
rgbgirl
时间:
2019-12-13 09:14
好资料,正在学习中~
作者:
lindeijun1
时间:
2020-2-15 12:14
谢谢楼主分享!!!!
作者:
suntuantuan
时间:
2022-7-4 11:23
先评论,再下载。。。。。。。。一探究竟。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1