找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 16476|回复: 24
打印 上一主题 下一主题
收起左侧

用PWM细分控制步进电机,包含原理和程序

  [复制链接]
跳转到指定楼层
楼主
ID:194750 发表于 2017-4-29 12:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
农民讲习所
这是俺一个关于打印机项目中步进马达中的内容,使用的原理为电流矢量图(a),为减少矢量表的误差,改进为(g).(误
差大的时候,Ia和 Ib 的绝对值变大,角度不变,即比例不变)

磁场合成决定步进马达当前的位置。
我们常用的是图(b),用电压驱动时和线圈个数有关系,直接驱动它们,合成的最小角度都是固定的。
细分最常见的是电流细分,电流引起的磁场的合成就决定马达的角度。所以我们一般用电流合成图来代替磁场合成图。
用电流合成电路复杂一点(用 MCU+DA+L298实现也不难)。

这里俺用 PWM方式,用控制电压的方式代替电流。原因:在电压稳定后,线圈的电流和电压成正比。稳定是 PWM细分的
要点,也决定马达速度不能太高。

在细分的情况下,电机分两相和四相是没意义的。可以把四相电机当两相使用。

下面是俺的程序,使用 MEGA16,因为有PWM。

  1. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2. //2 相步进马达驱动
  3. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  4. #define Step_OutMode()      DDRB|=BIT(6)|BIT(7)
  5. #define Step_InMode()       DDRB&=~(BIT(6)|BIT(7))
  6. #define Step_ReadIO()       (PORTB&( ~(BIT(6)|BIT(7)) ))
  7. #define Step_WriteIO(x)     PORTB=x

  8. struct Motor2P_Table{                   //细分表结构
  9.     unsigned char mQuadrant;            //象限 0-3
  10.     unsigned char mX_Pwm;               //x输出的PWM
  11.     unsigned char mY_Pwm;               //y输出的PWM
  12. };

  13. struct Motor2P{
  14.     unsigned char mTableId;             //细分表 ID
  15.     unsigned char mTask;                //马达驱动的任务转移号

  16.     unsigned char mSaveTimer;           //马达驱动节电模式使用的计数器

  17.     unsigned char mReg;                 //马达驱动使用的寄存器
  18.     unsigned char mTimer;               //对 2MS 的计数器,时间扩展

  19.     unsigned int  mSteps;               //马达要走的步数
  20.     unsigned char mDirect;              //马达走动方向

  21.     unsigned char mStepRunTimer;        //步进时输出有效的时间寄存器
  22.     unsigned char mStepIdleTimer;       //步进时输出节电的时间寄存器
  23.     unsigned char mStepCount;           //细分表走动步长。1-2-4-8-16
  24. };

  25. //------------------------------------------------------------
  26. #ifdef dMotor2P_Main
  27.     #define Motor2P_Head
  28. #else

  29. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

完整代码和教程下载:
用PWM-细分步进电机-包含原理和程序.pdf (157.01 KB, 下载次数: 349)

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏6 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:229577 发表于 2017-12-5 18:26 | 只看该作者
怎么没人回复呢
回复

使用道具 举报

板凳
ID:229577 发表于 2017-12-6 08:51 | 只看该作者
感谢分享
回复

使用道具 举报

地板
ID:124921 发表于 2018-1-21 21:31 | 只看该作者
学习了,感谢楼主分享
回复

使用道具 举报

5#
ID:114132 发表于 2018-5-15 16:31 | 只看该作者
谢谢楼主买楼主好人啊
回复

使用道具 举报

6#
ID:263693 发表于 2018-5-23 08:47 | 只看该作者
且让老夫一探究竟
回复

使用道具 举报

7#
ID:381620 发表于 2018-8-1 11:26 | 只看该作者
先评论,再下载。。。。。。。。一探究竟。
回复

使用道具 举报

8#
ID:391860 发表于 2018-8-31 09:31 | 只看该作者
寄存器的版本??!!
回复

使用道具 举报

9#
ID:399824 发表于 2018-9-19 09:13 | 只看该作者
谢谢分享
回复

使用道具 举报

10#
ID:38792 发表于 2018-9-20 21:17 | 只看该作者
谢谢分享。多谢。
回复

使用道具 举报

11#
ID:403806 发表于 2018-9-28 21:30 | 只看该作者
谢谢分享
回复

使用道具 举报

12#
ID:240941 发表于 2018-12-6 18:00 | 只看该作者
谢谢大大分享
回复

使用道具 举报

13#
ID:472041 发表于 2019-1-23 13:40 | 只看该作者
谢谢分享
回复

使用道具 举报

14#
ID:472041 发表于 2019-1-23 13:41 | 只看该作者
谢谢分享,正好用上。
回复

使用道具 举报

15#
ID:462700 发表于 2019-1-27 16:20 | 只看该作者
不错不错
回复

使用道具 举报

16#
ID:250270 发表于 2019-4-25 17:06 | 只看该作者
对可以 5V_4相_5线步进电机_全新步进电机.doc (58 KB, 下载次数: 13)

回复

使用道具 举报

17#
ID:537928 发表于 2019-5-21 14:34 | 只看该作者
谢谢,下载下来看看
回复

使用道具 举报

18#
ID:560202 发表于 2019-6-24 18:14 | 只看该作者
资料很好呢,最近在写一个细分控制程序,正需要这类资料呢,谢谢了
回复

使用道具 举报

19#
ID:578133 发表于 2019-7-4 20:54 | 只看该作者
这个不错 刚好需要呀
回复

使用道具 举报

20#
ID:578133 发表于 2019-7-4 20:55 | 只看该作者
这个真的不错  刚好需要   谢谢
回复

使用道具 举报

21#
ID:473308 发表于 2019-9-26 19:50 | 只看该作者
学习了
回复

使用道具 举报

22#
ID:652775 发表于 2019-12-13 08:54 | 只看该作者
我怎么只看到pdf,没看到源程序呀。谢楼主享分
回复

使用道具 举报

23#
ID:617305 发表于 2019-12-13 09:14 | 只看该作者
好资料,正在学习中~
回复

使用道具 举报

24#
ID:298008 发表于 2020-2-15 12:14 | 只看该作者
谢谢楼主分享!!!!
回复

使用道具 举报

25#
ID:475340 发表于 2022-7-4 11:23 | 只看该作者
先评论,再下载。。。。。。。。一探究竟。
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表