EasyDriver步进电机驱动器(V4.4官网翻译,已完成)

shenhaiyu 于 2015-3-10 10:01 编辑



终于完工了,填上了这个大坑。

感谢42#妙娃粽子提供的剩余部分翻译!!!!



2015-03-10更新完成。



本帖的全部内容翻译自:http://www.schmalzhaus.com/EasyDriver/ 截止日期为2014-04-07,具体更新请见官网。

转载请注明出处:极客工坊- http://www.geek-workshop.com/thread-9234-1-1.htmlBy shenhaiyu 妙娃粽子



EasyDriver步进电机驱动器

一个基于开源硬件的步进电机驱动方案


easydriverv1picture.png

2014-4-7 13:25 上传
(36.31 KB)



EasyDriver V1


easydriverv2picture.png

2014-4-7 13:25 上传
(45.01 KB)



EasyDriver V2


easydriverv3picture.png

2014-4-7 13:25 上传
(40.36 KB)



EasyDriver V3


EasyDriverV42_Top.PNG

2014-4-7 13:26 上传
(246.86 KB)



EasyDriver V4.2


EasyDriver_V43_Top.png

2014-4-7 13:25 上传
(194.1 KB)



EasyDriver V4.3


EasyDriver_v44.png

2014-4-7 13:25 上传
(67.97 KB)



EasyDriver V4.4



其中V4.2-V4.4在电路上没有区别,改变的仅仅是PCB及丝印内容。





目前网络上售卖的为V4.4,本帖主要介绍EasyDriver的最新版本。





项目简介:

Bruce Shapiro找我来搞了个UBW项目(使用USB接口的驱动板),以解决他电脑上没有并行接口的问题。UBW的设计远超出我的期望。除了达成最初的设计目标,它同样可以作为其它各种形式的固件的很好的平台。但还是有个问题!Bruce过去在他的鸡蛋机器人课程上使用UCN5804B步进电机驱动板,因为它很容易配合实验电路板,并且简单易用。不幸的是,它们现在要17美元一个,还很难找到。Bruce希望我能设计制作一款同样能搭载在实验电路板上的替代品,仍然只需要两条输入线(步数和方向),能驱动两极步进电机。于是就有了EasyDriver的设计。





快速指南:

每个EasyDriver能够为两级步进电机提供大约每相750mA(两极一共1.5A)的驱动。它默认设置为8步细分模式(所以如果你的电机是每圈200步,你使用EasyDriver时默认为每圈1600步),更多细分模式可以通过将MS1或MS2两个接脚接地进行设置。这是一种基于Allegro A3967驱动芯片的细分断路器。对于此设计的完整规格,请查阅A3967的参数表。它的最大每相电流从150mA到750mA。可以采用的最大驱动电压大概是30V,其中包括板载5V的调压器,所以只需要一个电源。质优价廉,这玩意儿只要10美元,比你自己制作电路板更便宜(广告……)。

我并不出售EasyDriver。这项设计和UBW一样是免费向公众发布的。任何人可以参考本页所述的设计方案并随心所欲的改动。我会提供原理图、电路板布局,还有原材料清单和如何制作和使用这一方案的说明。

如果你决定自己生产EasyDriver并出售,我诚恳的希望您能够通过E-mail通知我,这样我可以将您的店铺链接作为一个可以提供成品出售的供应商放在这个网站上。



(广告……)



同时,一个比现在的EasyDriver更大、更强的驱动板已经设置完成了,名字叫做Big EasyDriver(BED)。你可以在Schmalz Haus的网站阅读所有关于它的资料。



最新更新:

(11/16/2012) 我使用 SparkFun 的步进电机和 EasyDriver 做了一些温度和电流的测试,结果在页面下部问与答的后面。

(10/13/2012) Xavier 使用 Arduino 控制 Easy Drivers,并写了一篇非常棒的教程。

(07/20/2012) MyDIYCNC目前在他们部分产品中开始使用 Easy Drivers 了,并在他们的店铺中售卖驱动板。

(02/11/12) 全新的 Easy Driver 和 Big Easy Driver 示例 - 使用 Arduino 代码及图表等等。

(02/11/12) 一时兴起,我测试了一下能够让EasyDriver正常工作的最低电压。目前来看可以低至4V(使用刚生产出来的V4.4版本),真的很酷!值得注意的是,你需要一个线圈电阻极低的步进电机才能让它工作得很好,除非你使用全步或半步驱动。

(01/03/12) 对 EasyDriver v4.4 的原理图和BOM做了非常小的修改 - C3 改为 47uF(因为SparkFun 一直使用 47uF 电容,我已经修改了文件强调这一点。之前的电容容量为 100uF)。

(08/19/11) 现在我们拥有了 EasyDriver V4.4 的 Eagle 元件库,献给那些想把 EasyDrivers 集成到自己板子上的人们。

(08/03/11) 在生产 EasyDriver v4.4 的时候,似乎使用了两种不同类型的可调电阻。如果你的可调电阻是近似方形的白色款 (请参考页面顶部的 V4.4 图片),那么PCB上面印的最大/最小电流是反的。之前的版本(见 v4.3 的图) 接脚是在右侧,所以丝印的标志是正确的。我不知道供货商为什么改变了他们的设计,他们总是这样。无论如何请留意这个细节。请注意,板子只有一种,而且只有一种可变电阻是反向的。

(10/21/09) 请注意 v4.3 和 v4.2 (其他型号很可能也是) 电流调节标志印反了。在使用的时候一定要多加小心!这肯可能导致严重后果,比如你想将电流调小,但却输出了全部的 750mA 电流到你的步进电机,高温可能会烧掉你的步进电机。这一点在最新的 v4.4 中将会被修正。

(12/02/09) V4.3 已经提交给 SparkFun - 仅仅是增加了两个安装孔。

(10/01/09) 经过了一个漫长的过程 (由于我的拖延和日程安排) 我们终于发布了新版本的 EasyDriver!经过与 SparkFun 的密切合作,我很高兴的向世界发布了 4.2 版本。新版本有很多激动人心的改进,并且价格不变!感谢 Spark 将这一产品向全世界推广 (这里的很多图片都来自于 SparkFun)。

(09/17/08)Daniel Thompson已经写了一个绝妙的教程(包含视频),配合Arduino使用EasyDriver来驱动步进电机!谢谢Daniel!

注意:很多人在电源、EasyDriver和Arduino未接地的情况下进行尝试。这可能会失效!所以先确认下接地吧,这样更容易成功。

(5/23/07)增加了V3方案的文档。

(4/6/07)建立最初的网页,放出了EasyDriver的V1、V2、V3的设计修订。


EasyDriver硬件版本表
版本
原理图
电路板布局
图片
接点说明
Eagle文件和清单
V1
V2
V3
V4.2
V4.3
V4.4

版本说明:
EasyDriver V1 - 这是第一次尝试,我在 BatchPCB (强烈推荐)制作了两片。它工作得很好,但是板子太小发热量太大,并且没有可调的电流限制和5V输出。
EasyDriver V2 - 这是第二次尝试,我在 Futurlec 制作了一些。没有用焊接掩模或者丝网印刷。这块板子比V1要大了一倍,散热好多了。加上了5V的调压器,新增了可变的电流限制。
EasyDriver V3 - 对V2的优化设计,板载了可变电流限制,转为0603组件。对于V2的设计还是挺有信心的。
EasyDriver V4.2 - 依然是对V3的优化设计,稍长的板子,但是增加了很多新特性。以下是对 V3 的改进:
*芯片的每一个接脚都引出了焊点,并且增加了10k上拉(或下拉)电阻。这意味着你可以使用芯片的所有控制功能了。例如你可以改变 MS1 和 MS2 进行全步、半步、1/4步或者1/8步驱动。你可以让芯片进入睡眠状态(大幅降低功耗)或者重置芯片。当然,你也可以使用 PFD 信号了。
*V3那个小的可怕的可调电阻现在变得大一些了, :-) 而且非常赞的是,它不再无限制的连续旋转,你能够知道最大最小电流调节的终点在哪里。
*增加了5V电源指示LED,可以了解5V供电是否正常。
*在 STEP 和 DIR 接脚的旁边增加了一个 GND 接脚,可以使用三芯电缆连接到你的 Arduino 或者其他单片机。
*通过短接 SJ2,可以将供电从 5V 切换为 3.3V。这样可以向使用 3.3V 的 Arduino 或者其他低压单片机供给 3.3V 电压。
*如果你想使用自己的开关电源向 EasyDriver 供电,切断 SJ1,同时提供 3.3V 或者 5V 电压到 JP4 的 pin 1。
*如果你希望 EasyDriver 能够向一些小电路供电,你可以使用 JP4 的 pin 1 向外输出 5V (或 3.3V) 电压。到底能提供多大功率呢?摸摸电压调节器吧,如果烫手了,很不幸,你的小电路并不那么“小”。至于温度还取决于你向 EasyDriver 的供电电压。
*TP1 接脚允许你连接一个电压表到 VREF 信号,当你调节电流的时候,可以测量输出到步进电机的电压,能够间接计算出流经电机的电流。至于怎么计算,看看相关的原理吧,反正我是没计算过 - 我只是凭感觉调节输出给电机的电流(电机不会过热就ok)。
*元件数据表中电容的容量是 100uF,但是 47uF 就已经足够了。虽然越大越好 - 但是 Allegro 的数据认为 47uF 最好,而且 SparkFun 使用的就是 47uF 电容,工作起来一切正常。
EasyDriver V4.3 - 和 V4.2 比起来几乎是一模一样,除了在用户强烈要求下增加的两个安装孔。
EasyDriver V4.4 - 和 V4.3 也几乎是一模一样的。只是修正了电流调节的 MIN/MAX 丝印错误 (好吧,其实并没有完全修正,这取决于板子上焊接的可变电阻型号) 具体参见下面的Q9。

问与答:
Q1) 我的电机写着只能工作在2.1V电压和2A电流下,EasyDriver(工作在30V的输入电压下)会不会烧掉或者是以其他方式致残我的电机呢?
A1) 放心吧,不会的。通常步进电机都指定了直流电通过线圈,而我们最需要关注的是流经线圈的电流。如果使用EasyDrivers的话,电机的额定电压并不是很重要。(关于这点,或许对所有的驱动板都适用。)EasyDrivers会持续在线圈上提升电压,直到电流达到由电路板上端子设定的最大值,即750ma。然后它又会降低线圈上的电压,使得电流再次下降,之后电压又上升,如此不停重复,大约每秒钟20000次左右循环。无论电机的额定电压是多少,只要电机的每相额定电流为150ma(或者更高),那么配合EasyDrivers驱动的话效果最后都不错。有一点需要注意的是,如果你的电机每相额定电流是小于750ma,那么你需要去调节EasyDrivers上的可调电阻,以此降低电流来达到符合你电机的最大相电流。

Q2) 我给EasyDrivers供电的电压应该是我电机的额定电压吗?(也就是说上面提到的2.1V)
A2) 不是的。真的。电机的额定电压并不是很重要。关于这一点我至少还是比较确定的,所以请一定相信我。你完全可以根据你的实际情况尽可能得给EasyDriver提高供电电压。低电压的好处是会产生较少的热量(在EasyDriver和电机上),但是会降低最大最速和电机扭矩。而高电压(最大可达到30V)会让你的电机在高速情况下得到更大的扭矩,但是反过来EasyDriver和电机会发烫。这取决于你。当然,如果输入电压越高,那么由于某些原因使电机线损坏,从而导致 EasyDriver损坏的几率越大。大部分的人都喜欢将12v作为输入电压,并且市场上有许多这样的12V电源适配器,而且都非常便宜。从技术上来讲,EasyDriver就像是一个开关电源,因为它不停地升压和降低电流,而电机里的线圈基本上就像是降压电路中的电感。通过直流—直流变换电路不停开关电源,以此在线圈中得到一个恒定的电流。

请注意,你可以用最低为3V的电压作为EasyDriver的工作电压。当然这可不意味着你可以在这个电压来让你的电机很好得运转(事实上,我几乎不能保证你能让电机转起来)。然而,即使工作电机在7V和9V之间,大部分的电机在低速情况下就已经接近了他们的最大扭矩。只有你需要电机高速运转的情况下,你才需要使用更高的输入电压。

另外重要的一点是,许多人没有意识到许多情况下,我们都真的不需要达到额定的电机扭矩。比如说,一个SparkFun上的一个小电机(https://www.sparkfun.com/products/9238),即使用9V电压作为EasyDriver的工作电压,依旧可以得到接近于额定的扭矩值,电流调整到了每相150ma.换句话说,你可能不必要去弄清楚你电机的额定电流,更不用说是额定扭矩了。现在你自己的情况下测试吧,你或许会对这么小的电流和电压就能产生的扭矩感到吃惊。

Q3) 我的电源适配器需要多大的电流?
A3) EasyDriver给电机每相提供的最大电流是750ma,两相加起来则是1.5a.所以这么来说,你的电源适配器应该是至少是1.5ma以上,这样的话会比较安全。然后,一般情况下电流稍小些也绝不是什么大问题。由于驱动板的设计原理,驱动板和电机事实上都是以开关电源形式供电的。为了达到每相750ma,EasyDriver只需要将每相的电压提升到6V。所以,如果你用了12v电压来供电,电路会将12V电源降压到6V(我们测试了许多,最终我选择了这个),所以我们只需要提供送入电机电流的一半即可(因为电压已经被减半,我们只需要提供一半的电流)。这样的话,你只需要提供电流值为750ma的就可以了。最好的方法是去自己做实验。如果你的电源能力太弱的话,电压会下降,电机会丢失步(也就是说没有足够的扭矩使电机达到指定的位置)。

详细请看第14个问题下我做的实验数据列表。

Q4) 为什么我的电机应该是每相750ma(总共是1.5A),但以12v作为输入电压情况下电流测出来却是400ma?哈,我自作聪明了?
A4) 看上面的回答吧,驱动电路的具体原理可以很好的解释这个问题。为了去测量实时的真实相电流,你不能相信测量出来的输入电源电流。事实上,我们很难去测量出输入到线圈上的真实电流,即使在电机不运转的情况下也是如此。你需要一个示波器上的专业测试仪器。我在测试的时候用的是每个5K美刀的(只是为了该死的测试)因此我们要用它时也只是租借。

当然,去查看第14个问题下方的真实测量数据。相电流并不等于输入电源电流(电源电流总是比俩相电流总和值小)。

Q5) 我怎么来调节可变的电流限制?
A5) 调节 R6 - 那个 10K 的电流限制组件。其一,它会告诉驱动芯片提供每线圈750mA(通过线圈电阻和输入电压);其二,每线圈150mA。 最新的 EasyDriver 上面有丝印的 MIN 和 MAX 标志,但是请别相信他们。因为我们无法确定制造商会把哪一种可调电阻焊接在上面,其中一些可调电阻的调节方向是反过来的。所以在使用时,一定要测量 TP1 的电压来确定你的板子是如何调节得到最大电流 (当 TP1 电压最大时电流最大) 和最小电流 (此时 TP1 电压最小)的。

Q5.1) 我能用EasyDriver来驱动何种电机?
A5.1) EasyDriver所基于的Allegro 3967是一种两级驱动器。这意味着它有一个内置的H桥,通过单个或两个线圈来传输电流。你可以使用4线、6线或8线步进电机。唯一不能使用的是5线步进电机(它需要单级驱动器)。

这里有一个示意图用来借鉴六线步进电机连接 EasyDriver 的方法。
EDto6wire.png

Q6) 为什么EasyDriver这么热?
A6) PWM(脉冲宽度调制)电流限制驱动器(所以叫做 '砍刀' 驱动器)会很快的开启和关闭线圈电流。这保证了最大的总电流(由R6控制)始终是通过步进电机的线圈的,即使它没动作。这正是EasyDriver的工作方式。这意味着驱动器持续的通过大量电流,同时它内部的电阻并不为零,所以会发热。如果你把R6调到每线圈通过750mA,整个EasyDriver就会烫手了。我是不会把手指放上去(摸它烫不烫)的,不过确实是很热(在最低值-大约每线圈150mA-仅仅是微微发热)。你觉得有必要的话可以在上面加个小风扇。但是不用害怕,驱动器芯片在165摄氏度会自动切断,它是自保护的。板子上有相当一部分是铜片,可以最大化散热效果,有助于辅助散热。同时,电压调节器也会很热 - 因为驱动芯片需要 5V 70mA 作为工作时的电能消耗。热量也取决于接到 M+ 接脚上的电压,电压调节器需要将这一电压降低到 5V 使用(同时丢弃多余的电能),所以 M+ 的电压越高,电压调节器的温度也会越高。

对于实际的定量数据,可以看看下面的第14个问题。

Q7) 我能用什么硬件/软件来测试EasyDriver?
A7) 我的做法是:我在EasyDriver上焊上了针脚,然后将它插入到面包板上。我将我步进电机上的四根线接到4pin的公插上,然后插入到面包板上,这样就可以正确得连接到EasyDriver上。然后我取了一个电脑的电源,使用了其中黄色线12V连到EasyDriver上的M+引脚口,地线接GND硬件。接着我直接用一个杜邦线将DIR引脚连接到地上。找到一个频率大约为500Hz的方波,将它接入到STEP引脚。这个方波可以由单独脉冲产生器或Arduino或者UBW得到。这样操作下来电机应该可以运转了。你可以改变DIR引脚上杜邦线的连线,将它连接到+5V上,你会看到电机反转了。当电机在运行的时候,你可以通过慢速调整控制电流的可调电阻,然后你就会看到在不同电流下电机运动的平滑度。

Q8) 我怎么才能连接EasyDriver?
A8) (仅针对 V4.2 及以上版本) EasyDriver上所有的针脚都是 100"(2.54mm) 孔径。如果你焊接 .100" 方阵到接脚上,它就可以插入一块标准面包板。当你将其插入一块面包板,你可以将你的步进电机插入四个电机针脚(JP3),你的8V-30V电源插到GND和 M+针(JP1),你的步数和方向信号连接到STEP和DIR针(JP2)。左下角的GND针脚只是用来做结构支撑的,但是你需要的话也可用于接地。你也可以做一个简单的带.100" 方阵母接头的连接线(比如调试样机时)。这样就很容易把很多EasyDriver和步进电机连接起来了。

A8) (仅针对 V3 版本) EasyDriver上所有的9个引脚都是100"(2.54mm)孔径。这意味着它可以插入标准的面包板中。只要你将它插入到面包板后,你就可以将步进电机四根线按序连接到四个电机引脚上(JP4),你5V到30V的输入电源接入到GND和V+(JP1),最后将你的脉冲和方向控制线连接到STP和DIR引脚上。板子上左下角的GND口只是用来固定用的,但是它连接到了GND上,你可以把它用作地。你也可以自制一个配套EasyDriver各引脚的母板,然后将它堆叠在上面。如果你想要驱动非常步进电机的话,按照上面的方法将会让你很容易组装这么多的EasyDriver。

Q9) 我的EasyDriver上的文字注释和我在图片上所看到的不一致。为什么会是这样?我怎样才能知道如何去正确调整电流?
A9) 在之前的版本中有许多关于丝印层上的错误。在一些早期版本里,STEP引脚直接没有印刷出来,而连接电机线的引脚注释则印刷不清楚。下面的图将助你整理清楚所有问题:
EasyDriver_V44_Description.png
有一个很重要的必须注意的事情,在不同的版本中,我已经将可调节端口MIN/MAX的丝印注释进行了反向,sparkfun则使用了相反方向的不同可调电阻(这样使“正确的”的丝印层又反过来了)。所以,你不应该轻易相信EasyDriver上的丝印注释层。相反地,你应该将万用表打在电压档上,然后将正极表笔搭在TP1测试点上(实际连接到驱动芯片的VRef针脚上),负极表笔连接到GND,以此测出电压值。测试出来最大的电压值(通常是5V)代表着电机线圈上最大的电流(750ma),在TP1最小的电压(1V)相对得对应为电机线圈上的最小电流(150ma)。

Q10) 仅仅为了使用A3967芯片需要这么多工作啊。我不能直接把A3967焊接在我自己的电路板上吗?这样多省钱。
A10) 当然。(笑)EasyDriver是提供给那些不介意花点小钱,省得麻烦自己去制作电路板来支持驱动芯片的人。是提供给那些需要得到一个可用的设计方案,而不是亲自去试来试去的人。是提供给那些需要搞个鸡蛋机器人而弄不到5804B芯片的人。如果你正在设计自己的电路板,那就不需要 EasyDriver 了。直接把芯片放到你自己的电路板上就好了。

Q11) 驱动芯片的使用手册说,电机连接到OUT1A,OUT1B,OUT2A 和 OUT2B,根据里面的说明示意图其中一相两端分别连接到 OUT1A 和 OUT1B 上,另一相两端则连接到 OUT2A 和 OUT2B。但是 EasyDriver 只是使用了A,A,B,B形式作为电机连接,看上去其中一相的两端应该连到两个A引脚上,另一端则是连到B端。这到底是怎么一回事?
A11) 确实是这样的。很明显,EasyDriver上的丝印注注释相当糟糕。在双极性电机中,里面也有四根线,每两根线连到一个线圈上。EasyDriver称之为线圈A和线圈B。所以每个线圈的两个线应该连到两个A引脚上,而另一线圈的两个线则连到B引脚上。驱动芯片的使用手册却是将这两个线圈称之线圈1和线圈2.对于这到来的混淆,我深表歉意。请仔细参照上面的说明示意图,然后你就可以准确连接各引脚。

Q12) 那么要怎么使用细分模式呢?我怎么才能设置它呢?
A12) 步距细分是一种将步进电机走的一整步细分为若干更小的步。A3967驱动芯片精确地控制了每个线圈的电流,从而让电机转动到正常两步之间的所需位置。这提供了更加平滑的运动,减少了频带中心共振,走位更加精确,分辨率也更高以及较少了些许扭矩。

EasyDriver可以运行在8细分,4细分,2细分和整步这四种模式下。这四种模式可以通过设定MS1和MS2上的电平高低来进行选择。一般情况下,上拉电阻将EasyDriver上的MS1和MS2直接拉高,所以默认情况下使用的是8细分模式。你也可以用杜邦线将引脚选择性的引到GND上来选择其余的3种模式。请看下面的说明表:

MS1
MS2
细分模式
全步 (2相)
半步
1/4步
1/8步

Q13) 求助!我认为我的EasyDriver工作不正常?我怎么能断定它是否损坏?
A13) O你可以通过测试电路上的电阻和电压值来确定它是否已经损坏。将EasyDriver上所有的东西都移除后,将万用表打到测电阻档,然后测试板子上四个电机输出引脚分别到GND和M+的阻值,总共8次测试都应该是1MOhm,即无穷大。
再次断开所有的连接线,测试4个电机输出引脚之间的电阻值。这次,所有的测量结果都应该是1MOhm。
同上,测量STEP和DIR分别到GND和+5V的电阻值。当然,测量值也是1MOhm。
现在只连接GND和M+引脚。千万不要连接其他任何东西到EasyDriver上。LED灯应该会持续发亮。万用表打到电压档,测量+5V和GND之间的电压。正常情况下应该是接近5V。
现在测量四个电机输出引脚到GND的电压值。其中两个测量出来的电压值应该是接近M+以上的(这取决于你的输入电源电压值,例如我的是12V),而两个测试值应该接近于0V,例如我测量出来是0.018V。
现在检查下所有可能遗失的元件,Sparkfun曾经出现过电阻和电容漏焊的情况。具体看上面的图片—里面应该有个或许被遗忘的元件,但是除了这个(那是一个电阻,在文字MOTOR的右侧)。如果你的板子有任意一个元件丢失,那板子就可能无法工作。
如果你的板子通过了这些测试,这并不意味着板子没有被烧毁,但是可以排除内部短路,许多驱动芯片都是因为这种情况而损坏的。

Q14) 但是布赖恩(作者),你能提供给我们一些有关能量损耗,发热量等这些东西的实际数据吗?
A14) 当然!下面就是我测得的一些温度数值。
测试环境如下:
*用实验室级别电源来给 EasyDriver(V4.4) 供电。
*电流限制调节到最大值(即每相750ma),也就是将可调电阻调到丝印注释的MIN上。
*使用了 chipKIT uC32 开发板运行里面的 AccelStepper 测试程序,将电机速度从每秒0步加速到每秒2500步,然后保持不变。
*实验室里温度大概是21摄氏度(70华氏度)。
*在每次测试中,我都会让系统持续运行大约30分钟,使得温度达到稳定状态。
*EasyDriver直接插在面包板上,上面并没有放任何散热设备。
*温度是由校准过的红外温度计测试得到的。
*线圈电流经由一个 IProber 520 电流测试装置测得,然后连接到 Rigol DS11102D 示波器。

测试中的注意点:在电机型号和输入电压不同的情况下,线圈电流并不是750ma,因为是线圈电阻而不是驱动芯片电路限制电流。针对ROB-09238电机,你可能因为它线圈电阻的原因永远无法达到最大的电流值。驱动芯片的内部过热保护温度值为165摄氏度(329华氏度)。经过测试了一批电机和输入电压的不同组合,驱动芯片会进行自动切断,原因是因为内部温度已经达到了芯片的过热保护温度。我已经在下面的列表中用红色字体标注了这些数值。一旦芯片达到这样的温度,电机会进入一个反复开与关的循环中(大约1秒开,1秒关)。然后,我测了电流超过电机额定电流的情况:ROB-09238(330mA)和 ROB-10551(400mA)。一般情况下,你应该通过可调电阻将最大电流调整到你电机的额定电流。但在下表中,我想给你们看下最大的电流和发热情况。

步进电机 = "Stepper Motor with Cable", SparkFun ROB-09238 ( 线圈电阻 = 32.6 欧姆, 32 扭力转矩)
输入电压
供电电流
@ 空闲
供电电流
@ 2500 步/秒
线圈电流
@ 2500 步/秒
电机温度
芯片温度
9V
450 mA
120 mA
138 mA
30C(86F)
49C(121F)
12V
600 mA
190 mA
224 mA
45C(113F)
67C(152F)
24V
1.1 A
440 mA
475 mA
103C(217F)
101C(213F)
30V
1.0 A
540 mA
600 mA
107C(225F)
116C9(240F)
步进电机 = "Stepper Motor - 68 oz.in", SparkFun ROB-10846 (线圈电阻 = 1.8 欧姆, 68 扭力转矩 )
输入电压
供电电流
@ 空闲
供电电流
@ 2500 步/秒
线圈电流
@ 2500 步/秒
电机温度
芯片温度
9V
470 mA
510 mA
780 mA
28C(83F)
130C(266F)
12V
360 mA
390 mA
780 mA
29C(85F)132C(270F)
24V
210 mA
240 mA
780 mA
29C(85F)136C(277F) (过热保护)
30V
210 mA
220 mA
780 mA
29C(85F)136C(277F) (过热保护)
步进电机 = "Small Stepper Motor", SparkFun ROB-10551 ( 线圈电阻 = 4 欧姆)
输入电压
供电电流
@ 空闲
供电电流
@ 2500 步/秒
线圈电流
@ 2500 步/秒
电机温度
芯片温度
9V
650 mA
690 mA
780 mA
36C(98F)
128C(263F)
12V
490 mA
580 mA
780 mA
38C(100F)
132C(270F)
24V
270 mA
320 mA
780 mA
54C(130F)
136C(276F)
30V
250 mA
280 mA
780 mA
57C(135F)
139C(282F) (过热保护)

Q15) 还有我看到了EasyDriver上有个标有5V的引脚。那是用来干嘛的?
A15) 这是个好问题,很多朋友都发邮件给我,说了关于这个引脚带来的疑惑。这个引脚可不是用来给EasyDriver供电的引脚。换句话说,不是电源输入端,或者其他输入相关的。事实上,这是一个输出引脚!是的,EasyDriver的5V稳压电路可以提供另外的电源,所以我们将这个5V输出引出来给你需要时使用。这意味着如果你有其他电路需要用5V供电,你可以直接连接到这个引脚上,EasyDriver将会为它们供电。当然了,电流不会很大。
在不损坏EasyDriver情况下,你可以从5V引脚上得到多少电流呢?我真的也非常想知道这个问题的答案——不是通过计算得到,而是用实验数据来说明。所以使用了一块EasyDriver,然后在5V引脚和GND引脚之间放置一个可调电阻,通过不断提升电流实时测量出5V稳压芯片上的温度。需要注意的是,这个电流是不包括A3967芯片和LED的。针对每个输入电压(即M+和GND上输入的)我持续增加5V引脚上的负载直到电压开始由5V下降,也就是说稳压芯片进入过热保护。下面就是我测得的数据:

Easy Driver v4.4,未连接步进电机,温度使用红外测温计测量,使用 5V 管理芯片,环境温度 = 22C(72F)
输入电压
5V 接脚电流
管理芯片温度
9V
355 mA
(过热保护)
12V
175 mA
(过热保护)
24V
26 mA
(过热保护)


via - 极客工坊

标签: Arduino教程