(新西达30A电调+1400KV电机)无人机(航模)电调解索和驱动方法

无人机(航模)电调解索和驱动方法(新西达30A电调+1400KV电机)

经过一天的时间才完成电调的解锁和驱动,在网上一直看到别人说PWM频率需要50HZ,其实不然,频率并不固定大家大可在50HZ~500HZ,甚至到1KHZ之间尝试,找到适合自己手中电调的PWM频率。决定写下这篇博客是为了大家能不像我一样走太多弯路,恐有不足之处,但希望帮到后来者。

PWM设置

(1)尝试一下一些常用的频率(如50HZ,100HZ,400HZ等),或者咨询卖家
(2)如果蒙不对频率的话,可以使用单片机输出不同频率的PWM(范围50~1KHZ,间隔50HZ或100HZ即可),PWM波正确占空比正确时电调会,短嘀两声(DD)或一声(D)。只要不是因为PWM频率错误而发出的声音一般可认为PWM频率正确,PWM错误或缺失时一般会D-D-D响,具体现象还需查看相关说明书资料等。
这里就不附加代码了,相信大家能来学习电调对单片机的编程应有了一定的基础。

电调解锁

这里的思路是将占空比让从1%左右开始扫描直至电调解锁,整个扫描流程建议3s以上。当然如果已经知道解锁频率就不用了逐个值的扫描了。这里的解锁频率为油门的(有效)最小值。代码如下:

 int main(void)
 {	
    u16 dir,val;
    dir=2499;	 
	 delay_init();	    	 //延时函数初始化	
    KEY_Init();	 
	 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); 	 //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
   //	uart_init(115200);	 //串口初始化为115200
 	 LED_Init();			     //LED端口初始化
 	 TIM3_PWM_Init(dir);	 //PWM频率400HZ,等于72MHZ/72HZ/2500HZ 
	 LED1=0;
	 val=dir*0.08;
	 while(val<=2500)
	 {
	   TIM_SetCompare2(TIM3,val);//解锁频率,建议占空比从1%左右往上加,直到成功解锁,(此电调在占空比往上加时发生2短B音1低长B音)。
		val=val+50; 
		delay_ms(500);
	 }
 }

油门行程校准

我这里的电调驱动的主要任务是找到转速刚好为0是对应的PWM占空比。在上一步中我们已经获得了电机的解锁频率也就是最小油门值,现在我们来设置最大油门值。现代码如下:

 while(1)
	{
		dir=KEY_Scan(0);//读取按键值
	  if(dir==1)  //当按键按下时
			{
			  val=2000*0.8;//设置的最大油门值
			 LED1=0;//利用LED1指示循环的开始与结束
			  while( val!=2000*0.5){TIM_SetCompare2(TIM3,val--);delay_ms(100);	}//将油门从最大值弄到解锁频率,此时会听到 短D两声长D一声,油门行程校准完成。
		      dir=0;LED1=1;
			}		
//  	if(dir==2)
//		 {
//		    val=2500*0;
//			LED1=0;
//			 while( val!=2500*0.5+18){TIM_SetCompare2(TIM3,val++);delay_ms(10);	}//转速从最大到最小。
//		    dir=0;LED1=1;
//		 }
		
	}	 

电机控制

前面我们已经完成了油门行程的校准,现在开始电机转速的控制,首先PWM的频率应在电机的解锁频率(先解锁电机),解锁完成之后,在PWM最小值与PWM最大值之间调整即可改变电机转速,注意测试过程中不要安装螺旋桨以免发生危险。代码如下;

int main(void)
{
    u16 dir,val;
    dir=2499;	 
    val=2000*0.5;//测试得出的PWM解锁电调的频率
    val1=2000*0.8;//设置的油门最大值,即PWM的最大值
	delay_init();	    	 //延时函数初始化	
    KEY_Init();	 
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); 	 //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
   //	uart_init(115200);	 //串口初始化为115200
 	 LED_Init();			     //LED端口初始化
 	TIM3_PWM_Init(dir);	 //PWM频率400HZ,等于72MHZ/72HZ/2500HZ 
    TIM_SetCompare2(TIM3,val++);
    delay_ms(1500);
    delay_ms(1500);//延迟3秒等待解锁完成,解锁完成时会听到 短D两声长D一声。
   /* 此时在最大油门和最下油门随意改变PWM值,会获得不同的转速*/
   while(1)
   {
   while( val!=val1){TIM_SetCompare2(TIM3,val++);delay_ms(30);	}//此时电机转速会缓慢增大。
  }
}

到这电调的相关内容就介绍完了,也是时候休息了,晚安 ——尧 20/1/20/3/51

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值