如何使用Arduino驱动无刷电机?


Answers:


10

您绝对应该使用ESC。当使用正弦波(或尽可能接近正弦波)驱动时,无刷电机效果最佳。它们还需要一组相当准确和复杂的信号。从arduino生成正确的波形和定时将很困难,除非您真的需要,否则可能不值得。您始终可以通过arduino来控制ESC,这将为您提供程序控制以及ESC的效率和功能。


nitpick:根据Wikipedia(en.wikipedia.org/wiki/brushless_DC_electric_motor)的说法,BLDC电机经过优化,可在通过开关DC驱动时发挥最佳性能:全正,非驱动和全负。永磁交流电机经过优化,以正弦波驱动时效果最佳;这是它们之间唯一的显着差异。我同意您的结论:使用现成的ESC而不是自己开发,可能是值得的。
davidcary

4
BLCD上的控制器可以很好地使用与arduino相同的atmega。这样的好处是可以将细节问题交给其他人解决;并执行低级换相任务,使arduino的atmega可以自由地执行较高级的任务。
克里斯·斯特拉顿

BLDC电机基本上使用方波驱动线圈。在控制器(ESC)的用户侧,他们使用直流电源以及ESC所需的任何控制信号。正弦波不起作用。
罗素·麦克马洪

13

实际上,有时您只需要制作自己的ESC。在市场上出售的ESC是“商品化的”,并且它们对诸如飞机,直升机,汽车等RC物品具有自己的控制代码。

例如,有时您需要使用双面再生制动器。从后退到停止,从前进到停止。没有具有该功能的RC ESC。他们要么只有一个再生制动,要么没有制动。或者,您可能需要传感器控制BLDC,但是市场上只有少数几种带电的ESC,并且它们仅具有(不需要的,与普通的无传感器ESC相同)内置的功能,而没有某些您绝对需要的功能!

设计自己的ESC是一个完美的选择,而且比具有强大功能的最便宜的10美元便宜得多。

的确,控制代码和硬件可能很麻烦,但是经过一番阅读之后,它仅仅是一个玩具。

这里有一个很好的教程,介绍了如何使用6个mosfet和一些其他东西(可以在Jameco的站点上轻松找到)用arduino制作BLDC控制器(非常好),这是我以便宜的价格购买我的东西,但如果您找不到像陀螺仪等传感器。

http://www.instructables.com/id/BLDC-Motor-Control-with-Arduino-salvaged-HD-motor/

非常好,易于遵循的指南。您可以使用本指南以及使用电阻,电机绕组或电池充电器的再生制动的几乎任何组合来使从低电调至超高电调的任何功率...

使用mosfets只是一个玩具,几乎可以做任何事情。

可能的问题是,您不能使用像arduio板这样的MCU来非常有效地控制此mosfet,我认为arduio板仅输出5V,而中等电压的mosfet的栅极电压很容易在16-30V的范围内高得多。因此,您必须使用其他一些tansisor来提高arduino的电压。

祝好运。


6

我来回走了大约30分钟。我认为您可能想使用ESC,除非您只是将ESC作为一种学习体验而已。正确地控制电动机会占用您的Arduino大量的资源,这超出了我的想象。另外,您将把电动机的响应能力限制为交流轮询的响应能力。我不会考虑将ESC用作还原,这是应该完成的方式。


4

既然没有人说过-实际上,您将无法直接从arduino直接驱动电动机,因为AVR芯片不会消耗足够的电流来提供任何有用的功率。

因此,至少,您将要考虑创建一个三相H桥装置(阅读:三个“半H桥”)来驱动所需的电流,仅需要六条数字线即可操作驱动晶体管。

假设您已经解决了该驱动器功能问题,而且这并非微不足道,那么您就必须进入控制代码。这些电机具有永磁转子,因此您不能仅仅盲目地旋转定子磁场并获得有用的扭矩。您必须知道转子的方向,以便保持电气相位角的调整,以便获得均匀的转矩。

因此,就像其他人所说的那样,除非您想要特定的学习经验,否则仅购买ESC就不会感到羞耻。


3

我认为这将是一个很棒的学习练习,但是ESC使用反电动势来检测旋转,尽管您可以为此使用光学或磁性传感器。基本上,您必须生成3个AC相,并在适当的时候激活/停用它们。

磁场的旋转速度需要与电动机的速度相适应,即,如果要加速,则磁场必须运行得更快一些。您也可以休息,做相反的事情。

有关详细说明:http ://www.embedded.com/columns/technicalinsights/196701832?_requestid= 137540

对于实际工作,请获取ESC。


我首先想到通过领先和落后于领域,加速和减速已按照您所描述的方式完成。但是后来我读到,加速度主要取决于电压(尽管我看不出它会如何减速)。我感到有点困惑。两种方法都可以加速吗?有什么理由比另一个更喜欢,或者将它们混合在一起?谢谢!
necromancer 2014年

2

如果您并不是直接驱动绕组供电,那么您可以直接用Arduino驱动它-任何MCU都太弱了。此外,Arduino可以吸收电流但不能吸收电流,但您都需要无刷电机。

但是,如果您除了使用Arduino外还使用非常简单的H桥驱动器IC,则可以实现ESC的几乎所有功能。实际上,根据应用的不同,您甚至可能不需要E * SC *,这意味着您可能不需要闭环速度控制-如果负载不太大,则只需相信电机就可以摆脱困境与绕组的通电同步做出响应,绕组电流变化的速率将来自Arduino。查看这个非常简单的无刷(BLDC)电机控制原理图和Arduino草图,您可以使其适应于驱动电机。那是基于SN754410NE四H桥IC,如果有存储器,则最大电流为750mA。

该代码不是很简单,并且利用PWM来平滑旋转,但是解析也不难,以适应您的应用程序。BLDC电机的实际Arduino草图在这里

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.