全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 工业控制 >

以四线双极性步进电机为例,教你如何解决步进

时间:2017-11-27 06:49

人气:

作者:admin

标签: 步进电机 

导读:这里以四线双极性步进电机为例:上面就是常见的四线双极性步进电机的实物图,上一篇文章里面已经说明了步进电机的相...

这里以四线双极性步进电机为例:

上面就是常见的四线双极性步进电机的实物图,上一篇文章里面已经说明了步进电机的相关基础概念,下面开始进行步进电机的编程

首先要说明一下:我的步进电机的驱动芯片时 L6219 芯片 ,它是具有细分功能的,但是由于这里我不想说细分(其实是我不会啦,嘿嘿,不要打我~(>_<)~),所以我就不深入说明 L6219 了,我详细说明的话大家听着也头晕,知识的学习是要循序渐进的嘛。所以呢我就只大概地说明一下 L6219,同时为了大家好理解,我先把代码放出来,然后对照着代码进行讲解:

先说一下定义的引脚,四线双极性步进电机有两个线圈(或者叫做绕组)要进行通电,所以我们就要用两个引脚来控制这两个线圈,我这里定义名字是:PHA 和 PHB,但是由于 L6219 的用法,这两个引脚仅仅只能算作一个标志,也就是仅仅只能说明给那个线圈通什么方向的电流,而不能决定通的电流的大小,比如:PHA = 0,PHB = 1;说明 A 线圈通负方向电流,B线圈通的是正方向电流,但是电流究竟多大不是由这两个引脚决定的,而是由另外两个引脚决定的。

这两个引脚我定义他们的名字是:A 线圈对应的是:A1,A2;B 线圈对应的就是 B1、B2;上图中的注释中也已经写明白了,我们姑且把通最大电流当作通电,把通最小电流当做不通电,那么就可以得出:

当 A1 = A2 = 0时:线圈 A 通电。

当 A1 = A2 = 1时:线圈 A 不通电。B 线圈同理。

但是如果我仅仅说到这里,大家就去写代码。假设你是大神,真的写了出来,那么肯定就会有不少人遇到一个大问题:“ 我明明就是按照你说的那个通电方式去写的啊,为什么我的步进电机总是在颤,死活就是不转,延时多长也没用,你是不是在骗我啊?”

呃。。。其实我是个好孩纸,不骗人的,所以下面我就说明一下怎么解决这个问题,在这之前我先把我写的代码放出来:

一:单拍工作方式:

二:单双拍工作方式:

大家可以发现上面三块代码的第一行注释就是工作方式的线圈通电方式,但是第二行是啥?什么 “相同”、“不同”的?

这里就是解决步进电机只在颤动却不转的关键了,虽说步进电机的某个线圈在不通电的时候,电流的方向随便写(都不通电了,那不就可以随便写吗?),但是事实却不是这样,虽说当我们写 A1 = A2 = 1 时线圈应该是不通电的,但是事实上并不是,它还是有一点点电流的,所以即使我们写 A1 = A2 = 1,线圈的电流方向也不能随便写,而是要遵循:两个线圈的电流方向要 "不同" 、"相同" 交替。(单双拍工作方式时每两拍作为一组)的规则去写。

如上面三个图中,PHA 和 PHB 的值都是在 “相同”、 “不同” 之间交替进行,单双拍的那个是每两拍作为一组,在 “不同”、“相同”之间进行。

这样就解决了步进电机只颤动不旋转的问题了,但是并不是所有人的问题都是出在这里,看见每一句代码后面都有一个 delay() 函数了吗?如果 delay() 函数的延时时间过短也会引起步进电机只颤动而不旋转。所以大家还是要具体问题具体分析。


温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信