2220浏览
查看: 2220|回复: 1

【自制无人机】“辛”路历程(四)油门调整程序

[复制链接]
【自制无人机】“辛”路历程(四)

【前言】

这个项目已开始用Leonardo主板了,为什么还要放在Microbit栏目中?1,因为一开始,就打算用Microbit来做主控板。2、将来还打算用Microbit,不知行不行,以后再说。


接上回,控制舵机有两种方法,那控制电调也可以用第二种。


【程序代码】

1.将电调BEC输出的电源线接到Arduino的Vcc上,地线接到Arduino 的GND上,信号线接到Arduino的9号引脚上,并将电机与电调连接起来。
2.用3S电池给电调上电,此时Arduino中的程序开始运行,依次进行油门行程设定、电机启动与电机保持一定转速转动。


代码的注释非常详细:

[mw_shl_code=java,false]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);
    }  
    }[/mw_shl_code]



【一起来听一听】





听声音总感觉不对,也能转。

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秒左右。




*/

gada888  版主

发表于 2020-3-25 14:40:20

支持一下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail