用双向电调驱动水下电机的各种方法

淘宝有售双向的无刷电机电调,也有无刷电机测试仪,不过还是有用户对驱动有一些困惑。

无刷电机测试仪这样用(图片是网上的,下次拍了换上):


不过rovmaker的电调没有BEC,需要给舵机测试仪单独供电。
电池连接电调,电调连接电机,电调的信号和地连接测试仪,给测试仪供电,选择测试仪驱动模式。

以下是用arduino驱动无刷电机的方法:简单来说是用arduino代替无刷电机测试仪产生pwm信号给电调。

这里的pwm信号是通过arduino上server库输出的pwm,是脉冲宽度调制,不是arduino默认的pwm,默认的是通过占空比模拟一个模拟量。

rovmaker的双向电调默认设置是1000到2000,1500是停转,两边是正反转,越向两边转速越高,转速最高分别是1000和2000,1ms~2ms对应两边100%最高油门,1.5ms是停转。

示例使用 rovmaker.taobao.com 的电机和电调,图片是网上找来的,也下才拍了再换吧~。
整体连接方式:

连接电机和电调的三根线(注意端子和电流),三根线的顺序不用在意,如果随意调换两根,电机则反转。
连接电调的正负两根线到电池,注意使用动力锂电池,空气中运转电流很小,在水中会变高很多。
连接电调的信号线(黑色是地,白色是信号)
黑色连接arduino的gnd,白色连接arduino随意的一个digital引脚,这里是pin12

arduino程序(要自己改一下~):

#include <Servo.h>
Servo esc_signal;
void setup()
{
esc_signal.attach(12); //定义电调信号线所接的引脚
esc_signal.write(30); //ESC arm command. ESCs won’t start unless input speed is less during initialization.
delay(3000); //ESC initialization delay.
}
void loop()
{
esc_signal.write(55); //Vary this between 40-130 to change the speed of motor. Higher value, higher speed.
delay(15);
}

注意先连接电池到电调,给电调供电,再给arduino供电。
如果先给arduino供电,电调可能会错过arduino开机进行的初始化步骤,这个时候可以按一下arduino的复位,重新进行初始化。

还可以加上旋钮:

程序(也要自己改一下~):

#include <Servo.h>

Servo esc;
int throttlePin = 0;

void setup()
{
esc.attach(9);
}

void loop()
{
int throttle = analogRead(throttlePin);
throttle = map(throttle, 0, 1023, 0, 179);
esc.write(throttle);
}

以上两个程序都需要调节输出和校准哦~~

电调初始化过程:
电调点击连接后,电机发出哔哔哔的声音,代表已经上电。
给最大油门,哔一声,给最小油门,哔一声。
结束。
声音大概是,哔哔哔~哔~哔~

2 个赞