用Arduino中的digitalWrite()函数实现对电调的直接驱动

一.硬件准备

Arduino pro mini,FT232RL,3S电池,好盈Skywalker20A电调,无刷电机

二.实验步骤

1.将代码通过FT232RL上传至Arduino中(代码见附录);
2.将电调BEC输出的电源线接到Arduino的Vcc上,地线接到Arduino 的GND上,信号线接到Arduino的9号引脚上,并将电机与电调连接起来。
3.用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(1100);//油门1100
  digitalWrite(9,LOW);
  delayMicroseconds(18900);
    }
  }
  
  //loop()函数使油门保持在1200
  void loop(){
  for(int i=0;i<=1000;i++){
  digitalWrite(9,HIGH);
  delayMicroseconds(1200);
  digitalWrite(9,LOW);
  delayMicroseconds(18800);
    }  
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值