当前位置:   article > 正文

单片机(STM32)驱动无刷电调_单片机控制电调

单片机控制电调

单片机(STM32)驱动无刷电调

本文为记录个人学习过程中的心得,方便未来复习,同时也是为其他小伙伴学习提供便利,本人由于精力有限,留言不回复,请见谅。如有侵权,联系本人进行删除。

做过一个小的课题,需要用到单片机驱动无刷电调,对无刷电机进行调速。目前手头上材料为新西达30A电调+新西达A2212电机+STM32F103。

硬件

无刷电调

电调又叫电子调速器,输入是直流(两线,红正,黑负),可以接稳压电源,或者锂电池。一般的供电都在2-6节锂电池左右。输出是三相脉动直流,直接与电机的三相输入端相连。

如果上电后你的电机反转,你只需要把这三根线中间的任意两根对换位置即可。

电调还有一根信号线连出,用来与接收机连接,控制电机的运转,连接信号线得共地。红线接5V,棕色线接GND,橙色线接信号线,PWM信号周期20ms即50HZ。

30A无刷电调
我用的此款电调商家给的介绍输入4-16V,输入电压超过18伏不予启动,自动保护,同时发出急促的“哔哔”告警音。

软件

使用的是STM32单片机,用STM32cube MX生成的PWM信号,这里有个小细节,用定时器生成PWM信号时用PWM1方式,极性高。确保当定时器开始生成PWM波时先出现高电平。

这里用的是定时器四通道四
定时器配置
因为生成50HZ(20ms)方波信号。定时器PSC为71,ARR为20000-1,向上计数,详情见上图。

在MAIN函数进行定时器初始化完成后,使用下面代码进行电调解锁

	HAL_TIM_PWM_Start(&htim4,TIM_CHANNEL_4);//开启PWM
__HAL_TIM_SET_COMPARE(&htim4, TIM_CHANNEL_4,2000);//BB响两声
	HAL_Delay(4000);//延时4S
__HAL_TIM_SET_COMPARE(&htim4, TIM_CHANNEL_4,1000);//BBB响三声
	HAL_Delay(4000);
	
__HAL_TIM_SET_COMPARE(&htim4, TIM_CHANNEL_4,1049);//起飞
	HAL_Delay(2000);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
// An highlighted block
	HAL_TIM_PWM_Start(&htim4,TIM_CHANNEL_4);
__HAL_TIM_SET_COMPARE(&htim4, TIM_CHANNEL_4,2000);//BB
	HAL_Delay(4000);
__HAL_TIM_SET_COMPARE(&htim4, TIM_CHANNEL_4,1000);//BBB
	HAL_Delay(4000);
	
__HAL_TIM_SET_COMPARE(&htim4, TIM_CHANNEL_4,1049);//起飞
	HAL_Delay(2000);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

开启PWM,产生信号,设置PWM高电平时间为2MS(占空比10%,2000 X 10%=2000),此处为电调检测油门最大的地方。等待4S,给电调读取接收信号的时间,延时过短的话,电调不能正常的接收信号,不能解锁。然后设置PWM高电平时间为1MS(占空比5%,20000 X 5%=1000),延时4s,此时电调BBB响,这时候电调就解锁了,占空比不要设太大,很危险,亲身体会,我实验发现我设为1049,占空比1049/20000,电机才转动。

总结一下,信号周期20ms,高电平2ms,BB响,延时4S,高电平1ms,延时4S,BBB,解锁起飞,设置1049电机才开始转动

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/木道寻08/article/detail/960078
推荐阅读
相关标签
  

闽ICP备14008679号