OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 10916|回复: 5

单片机控制银燕电调pwm频率是多少

[复制链接]

33

主题

77

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
314
金钱
314
注册时间
2015-11-20
在线时间
76 小时
发表于 2017-10-14 19:09:25 | 显示全部楼层 |阅读模式
1金钱

我使用的电调是:  银燕SimonK/BLHeli程序 12A无刷电调

我在网上看  有人说50HZ   还有500HZ
一 、 电调上电后给50Hz,占空比5%的pwm信号5秒,这是电调自检,一般这时电机会有蜂鸣声,
       然后调节占空比在5-10%自检,对应电机转速在0-100%


二、给单片机写程序:使得某引脚输出500Hz的PWM信号,初始化时高电平时间设置为1.9ms,然后在while循环里面加入检测按键的程序,当按键按下,把高电平设置为0.7ms。写好程序后,下载到单片机,上电。用示波器测试一下是否正确。正确的话,进行下一步。2.等单片机上电后,再打开开关电源,给电调上电,我们会听到电机发出“哔哔”两声,在3s钟内,按下单片机开发板上的按键,我们会听到一声比较长的“哔”声,代表设置成功。如果电机发出急促的“哔哔哔哔…”的声音,代表设置不成功,肯定是程序有问题。只要第一步做到了,这一步就不会有问题。3.这时候,电调就设置好了。


我按照上面的做   不行,电机根本就不响。请高手指点

最佳答案

查看完整内容[请看2#楼]

驱动无刷电机工作的脉宽是1ms~2ms之间,因此,使用定时器形成相应的高电平脉宽就可以达到驱动电机工作的条件; 但是,驱动无刷电机,都是通过电调完成的,因此我们驱动电机的频率需要在电调的工作范围内,一般400HZ的频率是多数电调可以识别的,因此,你只需利用定时器形成400HZ的驱动频率,并且最低保持1ms的高电平脉宽长度,就可以驱动电调,然后高电平脉宽在1ms~2ms之间就是电机运行的行程范围! 最后,现在的4合1电调使用 ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
116
金钱
116
注册时间
2020-6-13
在线时间
27 小时
发表于 2017-10-14 19:09:26 | 显示全部楼层
本帖最后由 yujia 于 2022-5-2 23:05 编辑

驱动无刷电机工作的脉宽是1ms~2ms之间,因此,使用定时器形成相应的高电平脉宽就可以达到驱动电机工作的条件;
但是,驱动无刷电机,都是通过电调完成的,因此我们驱动电机的频率需要在电调的工作范围内,一般400HZ的频率是多数电调可以识别的,因此,你只需利用定时器形成400HZ的驱动频率,并且最低保持1ms的高电平脉宽长度,就可以驱动电调,然后高电平脉宽在1ms~2ms之间就是电机运行的行程范围!

最后,现在的4合1电调使用了各类数字协议,支持更高的频率来驱动电调,因此,驱动无刷电机的关键点,还在电调上,需要获得详细的电调协议,依据协议来驱动电调,才能有效启动电调,并利用电调来驱动电机设备!

(本人曾经使用500HZ的频率驱动银燕电机没问题,但是在好赢电调就工作异常,经常无法启动,并且启动也工作不正常,直到把频率降为400HZ才正常启动)
(对于各类新式电调,可以参照原子的电调产品和协议以及代码进行分析学习)
回复

使用道具 举报

27

主题

81

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
411
金钱
411
注册时间
2014-4-18
在线时间
94 小时
发表于 2017-10-14 19:53:50 | 显示全部楼层
常用多旋翼PWM电调频率最大频率都是400hz左右  高电平时间1-2ms左右驱动即可,
如果要标定电调行程,必须在上电时候立即将高电平时间拉到最高
[mw_shl_code=c,true]//用来标定电调行程
void CAL_MOT(void)
{
        motor_output(1000,1000,1000,1000);
        DelayMs(20000);
        motor_output(0,0,0,0);
        DelayMs(20000);
        motor_output(1000,1000,1000,1000);
        DelayMs(20000);
        motor_output(0,0,0,0);
        DelayMs(20000);
}
//电机输出 1ms-2ms=1000-2000
void motor_output(int16_t M1,int16_t M2,int16_t M3,int16_t M4)
{
        M1 = math_limit(M1+MOTOT_DIE,1000,0);
        M2 = math_limit(M2+MOTOT_DIE,1000,0);
        M3 = math_limit(M3+MOTOT_DIE,1000,0);
        M4 = math_limit(M4+MOTOT_DIE,1000,0);
        TIM2->CCR3 = M1 + 1000;
        TIM2->CCR4 = M2 + 1000;
        TIM2->CCR2 = M3 + 1000;
        TIM2->CCR1 = M4 + 1000;
}[/mw_shl_code]
回复

使用道具 举报

33

主题

77

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
314
金钱
314
注册时间
2015-11-20
在线时间
76 小时
 楼主| 发表于 2017-10-14 20:42:02 | 显示全部楼层
Mfweb 发表于 2017-10-14 19:53
常用多旋翼PWM电调频率最大频率都是400hz左右  高电平时间1-2ms左右驱动即可,
如果要标定电调行程,必须 ...

我现在要做的就是  用单片机驱动无刷电机,设置400HZ ,启动时高电平持续多长时间?
我试了试  没有反应就不嘀嘀嘀

回复

使用道具 举报

27

主题

81

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
411
金钱
411
注册时间
2014-4-18
在线时间
94 小时
发表于 2017-10-14 20:59:15 | 显示全部楼层
图南 发表于 2017-10-14 20:42
我现在要做的就是  用单片机驱动无刷电机,设置400HZ ,启动时高电平持续多长时间?
我试了试  没有反应 ...

我给的程序就是单片机控制电调的程序,如果要标定电调行程,那就开机给到最高,2ms左右,然后进入标定流程,如果只是要控制,就开机给到最低 1ms左右
回复

使用道具 举报

33

主题

77

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
314
金钱
314
注册时间
2015-11-20
在线时间
76 小时
 楼主| 发表于 2017-10-14 21:15:08 | 显示全部楼层
谢谢   我试了  还是不行!    能不能留个QQ   给我指导指导
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-25 22:04

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表