很早很早之前,我买一套四轴飞行器配件,里面的无刷电机一直不会用。我在买它之前,太过于天真了,以为像普通直流电机一样只有两条线,一条接正一条接负就可以转了,反过来就能使电机反过来转。当我买的东西拿到以后,才发现,电机有三条线。这下子真的懵了!!!我在互联网的帮助下,得知这东西要用无刷电调来驱动。
其实也不是很复杂,我买是的新西达无刷电调,电调两根特别粗的就是接电源了,有三根很细的(一般是黑红白),白 {MOD}的就是数据线,黑红两线就用来接单片机的正负,还有三根较粗的就跟电机三根线任意接上就好。MCU就可以通过向白线发pwm信号来控制无刷电机了。
pwm要求50Hz,不同电调不同的,但我的电调的数据手册说用8KHz/16kHz pwm控制,我试过了,但不行。最后我从别人得知,要用50Hz。
频率对了还不行,有些电调还要较准:
1.输出占空比为:22/200 的pwm;
2.delay_ms(1000);
3.输出占空比为:10/200 的pwm;
4.delay_ms(1000);
5.输出占空比为:14/200 的pwm;
很奇怪的,我用stm32输出pwm时,占空比小于12/200的时候,电机不会动,大于22/200也不会动
相关代码在
https://github.com/juxuny/motor