【自制无人机】“辛”路历程(四)油门调整程序
【自制无人机】“辛”路历程(四)【前言】
这个项目已开始用Leonardo主板了,为什么还要放在Microbit栏目中?1,因为一开始,就打算用Microbit来做主控板。2、将来还打算用Microbit,不知行不行,以后再说。
接上回,控制舵机有两种方法,那控制电调也可以用第二种。
【程序代码】
1.将电调BEC输出的电源线接到Arduino的Vcc上,地线接到Arduino 的GND上,信号线接到Arduino的9号引脚上,并将电机与电调连接起来。
2.用3S电池给电调上电,此时Arduino中的程序开始运行,依次进行油门行程设定、电机启动与电机保持一定转速转动。
代码的注释非常详细:
void setup(){
pinMode(9,OUTPUT);//选取9号引脚接电调信号线
/*油门行程校准(i<=1000时,整个循环用时3-4秒)*/
//该循环运行时会伴有“哔-哔-”油门最高点确认音。运行太快,和下面的声音区分不开;根本跟不上它的节奏,听不清。一会录个视频大家和我一起听!
for(int i=0;i<=1000;i++){
digitalWrite(9,HIGH);
delayMicroseconds(2000);//高电平持续2000微秒(油门最高点)
digitalWrite(9,LOW);
delayMicroseconds(18000);}
//该循环运行时会伴有N声短鸣声(表示锂电池节数)和“哔-”油门最低点确认音
for(int i=0;i<=1000;i++){
digitalWrite(9,HIGH);
delayMicroseconds(1000);//高电平持续1000微秒(油门最低点)
digitalWrite(9,LOW);
delayMicroseconds(19000);
}
/*现在可以加大高电平持续时间,即加大油门,实现电机的启动*/
//该循环运行的时间即电机低速转动的时间,进一步证明了i<=1000时,整个循环用时3-4秒
for(int i=0;i<=1000;i++){
digitalWrite(9,HIGH);
delayMicroseconds(1430);//油门1430
digitalWrite(9,LOW);
delayMicroseconds(18900);
}
}
//loop()函数使油门保持在1450
void loop(){
for(int i=0;i<=1000;i++){
digitalWrite(9,HIGH);
delayMicroseconds(1450);
digitalWrite(9,LOW);
delayMicroseconds(18800);
}
}
【一起来听一听】
https://v.youku.com/v_show/id_XNDU3OTIzNDkzMg==.html
听声音总感觉不对,也能转。
digitalWrite(9,HIGH);
delayMicroseconds(1450);
digitalWrite(9,LOW);
delayMicroseconds(18800);
这是产生PWM信号?
for(int i=0;i<=1000;i++){
为什么要用1000呢?
明天再说吧!
/*2020年3月11日
delayMicroseconds()函数接受单个整数(或数字)参数。此数字表示时间,以微秒为单位。一毫秒内有一千微秒,一秒内有一百万微秒。目前,可以产生精确延迟的最大值是16383。这可能会在未来的Arduino版本中改变。对于超过几千微秒的延迟,应该使用delay()函数。delayMicroseconds(18800);
18800超过了16383,出现误差比较大。本来循环1000次,应该是20秒,现在实测只有3秒左右。
*/
支持一下
页:
[1]