BLDC电机与Arduino开发板的连接非常简单。 ESC需要一个最小12V/5A的电源。 在本篇文章中,我使用的是RPS作为电源,但您也可以使用Li-Po电池为ESC供电。 ESC的三相线应连接到电机的三相线,这些线的连接没有顺序,您可以按任意顺序连接它们。
注意:某些ESC控制器上没有连接接口,在这种情况下,请确保连接方式牢固,并使用绝缘胶带保护裸露的电线。由于会有大电流通过相线,任何短路都会导致ESC和电机永久性损坏。
ESC中的BEC(电池消除器电路)将会调节输出一个+5V,可用于向Arduino开发板供电。 最后为了设置BLDC电机的速度,我们还使用一个电位器,连接到Arduino的A0引脚。
BLDC电机的Arduino程序
我们需要创建一个PWM信号,其占空比从0%变化到100%,频率为50Hz。使用电位器控制占空比,以便控制电机的速度。该操作的代码类似于控制伺服电机,因为它们也需要具有50Hz频率的PWM信号;因此我们使用来自Arduino的相同的伺服电机库。完整的代码可以在下面的本页末尾处找到。
PWM信号只能在硬件支持PWM的引脚上产生,这些引脚通常用〜符号表示。在Arduino UNO开发板上,引脚9可以产生PWM信号,所以我们将ESC信号引脚(橙色线)连接到引脚9;我们使用以下代码来表示这种连接:
ESC.attach(9);
我们需要产生从0%到100%的不同占空比的PWM信号。对于0%占空比,POT将输出0V(0),对于100%占空比,POT将输出5V(1023)。这里,电位器连接到引脚A0,因此我们必须使用模拟信号读取函数从POT读取模拟电压,如下所示
int throttle = analogRead(A0);
然后我们必须将值从0到1023转换为0到180,因为值0将生成0%PWM,值180将生成100%占空比。任何高于180的值都没有意义。因此,我们使用map函数将值映射到0-180,如下所示。
throttle = map(throttle, 0, 1023, 0, 180);
最后,我们需要将此值发送到伺服函数,以便它可以在该引脚上生成PWM信号。由于我们已将伺服对象命名为ESC,因此代码如下所示,其中变量throttle包含0-180的值以控制PWM信号的占空比
ESC.write(throttle);
用Arduino控制BLDC电机
根据电路图进行连接,并将代码上传到Arduino开发板并启动ESC。确保已将BLDC电机安装在某物上,因为电机在旋转时会四处跳转。一旦装置通电,ESC将发出欢迎音并持续发出嘟嘟声,直到throttle信号在阈值限制范围内,只需将POT从0V逐渐增加,然后蜂鸣声将停止,这意味着我们现在提供的PWM信号高于下限阈值,当您进一步增加时,电机将开始缓慢旋转。您提供的电压越高,电机将获得的速度越快,最终当电压达到阈值上限以上时,电机将停止加速。然后,您可以重复此过程。
原作者:一板
论坛 一板网电子威廉希尔官方网站
论坛