HLK-DL03 是海凌科出的三相无刷电机电调模块,

它的工作参数:

它家的这个模块的PWM信号控制端在控制上比较特殊,其他家的大部分都是根据PWM的占空比调速,而这个模块有特殊的时序要求。

按照这个描述,在Arduino下进行简单的测试,代码如下:
/**
测试HLK-DL03 电机调速器模块
工作电压:7.75V
转动电流:最大250mA
D1(GPIO5)接调速器模块的 S 引脚
电机:三相八线 带霍尔 B3040M 无刷电机
这个程序也可以用来测试1503电机,工作电压可以低至2.8V
*/
#include <Servo.h>
Servo esc; // 创建 Servo 对象
const int escPin = 5; // 电调信号线连接的 GPIO 引脚 (可根据需要修改)
// 定义脉冲宽度常量 (单位: 微秒)
const int STOP_PULSE = 900; // 0.9ms 停止
const int MIN_PULSE = 1000; // 1.0ms 启动/低速
const int MAX_PULSE = 2000; // 2.0ms 满速
void setup() {
Serial.begin(115200);
esc.attach(escPin); // 将 Servo 对象附加到引脚,默认频率为 50Hz
Serial.println("正在初始化电调...");
// 1. 发送停止信号,确保电调处于待命状态
esc.writeMicroseconds(STOP_PULSE);
delay(3000); // 保持停止信号至少2秒,等待电调自检完成并发出长鸣音
Serial.println("电调初始化完成,开始运行演示。");
}
void loop() {
// 演示:从低速缓慢加速到高速,再缓慢减速回停止
Serial.println("加速...");
// 从启动脉冲宽度(1000us)线性增加到最大脉冲宽度(2000us)
for (int pulse = MIN_PULSE; pulse <= MAX_PULSE; pulse += 10) {
esc.writeMicroseconds(pulse);
delay(50); // 每步增加后保持一小段时间,让电机响应
}
delay(2000); // 保持在满速运行2秒
Serial.println("减速...");
// 从最大脉冲宽度线性减小回停止脉冲宽度(900us)
for (int pulse = MAX_PULSE; pulse >= STOP_PULSE; pulse -= 10) {
esc.writeMicroseconds(pulse);
delay(50);
}
delay(2000); // 停止2秒后,开始下一轮循环
}实际上,我尝试用它驱动3.7V版本的1503电机的时候,把电压调到3.7V,依旧可以正常工作。接着调低电压,即使调到了2.8V,也能正常工作。这个真算是个意外的惊喜。也就是说,这个电调模块可以通吃1S / 2S ,12V的三相无刷电机。
在拿到HLK-DL03 之前还买其他家的电调模块:

介绍资料中两个PCB板略有不同,有是直角,一个做了导角。介绍中没有说明是不同型号的,以至于我拿到手的时候,也没仔细看板子上电源部分的说明,按照固有思维,把直角板的红的导线当做电源正极,黑的当做负极上电,结果直接烧坏了。这一点我是真你不能理解,按照习惯,正极用红色导线、负极用黑色导线不好吗?非要搞反,倒是是啥意思呢?
我要赚赏金
