5iMX宗旨:分享遥控模型兴趣爱好

5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年)
查看: 2739|回复: 10
打印 上一主题 下一主题

请各位编程高手和arduino高手进来看一下。。。想的我头疼

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-13 12:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void writeMotors() { // [1000;2000] => [125;250]
  #if defined(MEGA)
    for(uint8_t i=0;i<NUMBER_MOTOR;i++)
      analogWrite(PWM_PIN, motor>>3);
  #else
    for(uint8_t i=0;i<min(NUMBER_MOTOR,4);i++)
      analogWrite(PWM_PIN, motor>>3);
    #if (NUMBER_MOTOR == 6)
      atomicPWM_PIN5_highState = motor[5]/8;
      atomicPWM_PIN5_lowState = 255-atomicPWM_PIN5_highState;
      atomicPWM_PIN6_highState = motor[4]/8;
      atomicPWM_PIN6_lowState = 255-atomicPWM_PIN6_highState;
    #endif
  #endif
}
这是mwc飞控中的电机输出代码,奇怪的是这里:  analogWrite(PWM_PIN, motor>>3);这条语句的意思是第i个马达端口,按照motor的值(pid计算的值)右移三位(就是除8)pwm模式输出。可是这里的motor【i】除8以后最少还有125,就是说电调的最小油门是50%的pwm?最大油门是100%的pwm?电调的pwm不是在5%到15%之间吗?这个信号输出去电调怎么能工作呢?求各位达人解答:em17:

欢迎继续阅读楼主其他信息

沙发
发表于 2012-1-13 21:42 | 只看该作者
碰巧以前想过这个问题,试着解释:
对于50HZ的PWM信号,周期20ms,最小油门对应1ms(5%),最大油门对应2ms(10%);
analogWrite()输出频率为500HZ的PWM信号,周期2ms,最小油门对应1ms(50%),最大油门对应2ms(100%);

[ 本帖最后由 ygl611 于 2012-1-13 21:43 编辑 ]
3
发表于 2012-1-14 02:17 | 只看该作者
楼上有理,基本认为是正确的
作者这行里面的内容,可以参照楼上的讲解来解读

// [1000;2000] => [125;250]

楼上是否知道arduino的 pwm的频率是怎么实现设定的呢
4
 楼主| 发表于 2012-1-14 02:29 | 只看该作者
请教两位大神,我亲自试过,在pwm全开,即百分之百输出的时候电压大概是5v。如果按照输出百分之十——那最多只有零点几!我看过arduino官网,本来就说pwm模式工作在490HZ……mwc如何实现无刷电机控制的呢?
5
发表于 2012-1-14 03:59 | 只看该作者

回复 板凳 nuaakimi 的帖子

你拿啥东西看得 5V? PWM 是调脉宽的! 用示波器看 :em10:
6
 楼主| 发表于 2012-1-14 08:10 | 只看该作者
示波器得要有才行啊……pwm可以用万用表量,相当于就是做的积分运算……
7
发表于 2012-2-3 12:11 | 只看该作者
呵呵,一直在找这方面的资料,支持楼主~·
8
发表于 2012-3-11 20:42 | 只看该作者
呵呵,我和LZ有同样的问题,搜了一遍,结果搜回了大本营。我认为二楼的答 案是对的。

参考:http://arduino.cc/en/Reference/analogWrite
9
发表于 2013-8-30 11:41 | 只看该作者
请问楼主如何解决的,我也遇到这个问题了

10
发表于 2013-9-18 23:16 | 只看该作者
楼上都是高手!!
11
发表于 2013-9-19 08:10 | 只看该作者
不明觉厉
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

关闭

【站内推荐】上一条 /2 下一条

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