前言:有玩过车模/航模/车模的可能都知道,更换电调,只需要按说明书把口子一接就好了,那么自己用arduino或者单片机又要怎么控制电调来驱动电机呢?这里,我就介绍一下怎么用esp8266来控制电调驱动有刷电机。
(一)首先,我们先介绍一下我使用的电调:火凤凰 480A 风冷有刷双向电调(大家可淘宝自行搜索)。长下面这样:
这里呢
1.电源线就不用介绍怎么接了吧,认好红线,接头也有防呆设计,不用担心接反
2.电机接线随便接就好啦
3.电调电源开关,嗯嗯(o)/
4.电调信号线:需要特别注意的,有3条线,一条电源,一条GND,一条控制电调的信号线。这里呢如果单片机是单独供电的,只需要接信号线和GND就可以了。经常有小伙伴把电源线错当成是单片机对电调供电,其实是电调对单片机的供电线,然后就烧了,O(∩_∩)O哈哈~
(二)然后是电调的参数:
这里看图就好,根据参数选择电池、电机,需要注意的是480A是瞬间电流,平时的工作电流是80A/60A。
(三)电调的模式选择
这里也是按需选择,电调上有滑动按钮选择电池类型和电机驱动模式。这里我用的是锂电池(往左滑)和攀爬模式(滑到中间)。下面代码也是用于攀爬模式,其它模式可简单修改。这里也是个注意点,比如你选了单向和双向,那么你想控制电机向正转然后马上反转,对不起,代码写对了也做不到。
(四)重点来了,讲怎么驱动电调了。
1.首先要明白,电调是用来控制电机的转速和方向的;
2.**电调是通过PWM信号控制的,且PWM的频率为50HZ=20ms,高电平脉冲只能处于1ms-2ms;电机转向和速度中位为高电平脉冲1.5ms,即高电平脉冲从1.5ms到2ms的时候,电机正向转,然后随着高电平脉冲宽度逐渐变大转速也逐渐变大,2ms的时候转速封顶。高电平脉冲从1.5ms到1ms的时候,电机反转,然后随着高电平脉冲宽度逐渐变窄转速逐渐变大,1ms的时候封顶。**这里和舵机控制有点类似,舵机也是通过50hz的PWM信号来控制转向的,当高电平脉冲为1.5ms的时候,舵机归中,处于90°转态。然后高电平脉冲宽度在1ms到2ms(实际上是0.5ms到2.5ms)之间分别映射到0°到180°。如脉冲为1ms的时候,舵机左转90度,脉冲为2ms的时候舵机右转90度。
下面就不多说了,上代码:
#include <Servo.h> //包含伺服电机的库文件
Servo ESC;
void setup() {
//设定产生PWM的引脚,最小脉宽和最大脉宽
ESC.attach(4,1000,2000);
}
void loop() {//实现电机正转加速和反转加速
for(byte i=90;i>0;i--){
ESC.write(i); // 发送不同脉宽PWM信号给电调
delay(500); //延时方便观察反转的加速过程
}
for(byte i=90;i<180;i++){
ESC.write(i); //发送不同脉宽PWM信号给电调
delay(500); //延时方便观察正转的加速过程
}
}
1.这里需要包含伺服电机的库文件,原因很简单,能严格产生50hz的PWM波,不需要自己去用数字信号模拟,或者自己用定时器产生,何乐而不为。
2.setup()这里需要在初始化的时候设置脉宽最大最小值。然后就可以将控制舵机用的0到180映射到1000到2000啦。然后控制引脚选的是4号脚。
3.loop()实现了电机反转逐渐加速和正转逐渐加速的过程。
好啦,现在是2022/4/15,18:37.文章就写到这里了。如果有不明白的,觉得我写到不好的,可以参考另一篇文章,毕竟笔者也是从人家那里学的。下附链接:传送门在这里
最后,附上本人电机疯狂转动的视频:点击下方链接:
esp8266控制New Rain火凤凰480A电调控制直流电机
需要程序交流或者开发远程智能小车的,可以加Q群:975786188。添加时候记得说明来处哦!!!!