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

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

怎么用单片机驱动电调啊?

[复制链接]
跳转到指定楼层
楼主
发表于 2011-12-19 23:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
买的一个好盈电调,XXD电机,想用51单片机给信号电调让电机动起来,现在电调那三条小线的红线接+5V,黑线接地,白线接AT89S52的P2^2口,整 了一段这样的程序:
void main(){       
        P2 = 0xff;        
        delay10ms();       
        P2 = 0x00;
        while(1){               
                P2 = 0xff;
                delay1ms();       

                P2 = 0x00;
                delay10ms();                
        }
}

但是没有效果啊。。电机就在滴滴的响,想动又动不起来的样子。而且我发现只接小红和小黑线,电机也会那样。

哪位哥哥指点一下刚出道的我啊。。

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

主题

  • 没有相关信息
  • 没有相关信息
  • 没有相关信息
沙发
 楼主| 发表于 2011-12-19 23:54 | 只看该作者
刚晾完衣服,看了下好盈的说明书。我现在的情况是,接上电后,会响哆来咪的提示音,这说明电源是正常的了,但随后,过了一会后,会出现滴,滴,这样的提示,说明书上说的,貌似是 “Throttle signal is irregular” 信号是不规则的。那如何输出“规则”的信号呢?
3
发表于 2011-12-20 00:28 | 只看该作者
建议你用示波器查看一下输出口的PWM波形,是否符合:脉冲周期20mS,占空比为1~2mS。
4
发表于 2011-12-20 01:16 | 只看该作者
先高电平1-2ms然后拉低延时够20ms就好了,如此循环。。。
或者用定时器定出0.1ms,然后数个数,确定你需要的波形。
5
发表于 2011-12-20 09:29 | 只看该作者
用手转一下试试,是不是启动的问题
6
发表于 2011-12-20 17:10 | 只看该作者
原帖由 xuyaogyo 于 2011-12-19 23:54 发表
。。。。。。。。。。。。。现滴,滴,这样的提示,说明书上说的,貌似是 “Throttle signal is irregular” 信号是不规则的。那如何输出“规则”的信号呢?

简单:em24: 想精确的时序控制用汇编
7
发表于 2011-12-23 05:16 | 只看该作者
纯属瞎摸,呵呵!支持乱摸:em26:
8
发表于 2011-12-23 08:09 | 只看该作者
好盈电调需要设置油门行程的,还得添加一段设置油门行程的程序就可以了
9
发表于 2011-12-23 10:30 | 只看该作者
建议用51的定时器,发生50HZ的高电平脉冲。 脉宽为中心点为1520us,油门最低大概在800us左右,油门最高在1900us左右。如需要具体数值我可以帮忙采样。
10
发表于 2012-5-8 22:21 | 只看该作者

LZ还在吗

我现在想做一个和你一样的,单片机直接用IO口输出PWM方波。遇到和你一样的问题,能不能帮帮我。。解决一下。
11
发表于 2012-5-9 09:29 | 只看该作者
好赢的电调刚开始需要油门在最低,然后需要等油门自检通过以后,才能输出油门信号。
然后才会启动,你这个明显没有。
PPM信号是20ms一次,你这个是10ms一次。虽然每次间隔并不需要太精确,但是仍然需要达到15ms以上比较好。
void main(){
        //输出最低油门信号,延时10秒
        for(int i = 0;i < 1000;i++)
        {
                P2 = 0x00;
                delay1ms();
                P2 = 0xff;
                delay10us(); //最低油门应该是占空比最小的,或者最大的。
                P2 = 0x00;
                delay1ms();  //pwm脉宽最大2ms。
                delay18ms(); //大概每20ms一个循环,1000次以后,也就是20秒以后,电机应该自检完成了。
        }
       
        while(1){
       
                P2 = 0xff;
                delay1ms(); //这样大概是中间位置
               
                P2 = 0x00;
                delay19ms();
        }
}

[ 本帖最后由 gyro 于 2012-5-9 09:30 编辑 ]
12
发表于 2012-5-9 10:05 | 只看该作者
留下脚印!
13
发表于 2012-5-9 19:25 | 只看该作者
想学单片机,但是太复杂了...............
14
发表于 2012-5-10 00:10 | 只看该作者

回复 10楼 march_gx 的帖子

联系我哦   QQ  2634486022
15
发表于 2012-5-10 19:04 | 只看该作者
你的程序只是产生方波信号,并不是PWM信号,这样的程序是不能让电机转起来的
16
发表于 2012-5-10 22:11 | 只看该作者

标题

同意楼上   首先得产生pwm方波   百度一下   有相关得程序
17
发表于 2012-5-10 23:59 | 只看该作者

回复 17楼 seanshuai 的帖子

是要产生PPM信号 给电调吧? 是不是啊  楼上的?  我们加为好友 交流交流哦
18
发表于 2012-5-11 00:41 | 只看该作者
业余水平,就不要用51单片机了,转用这个吧。2天就可以入门。
http://arduino.cc/en/Reference/ServoWriteMicroseconds

#include <Servo.h>
Servo myservo;
void setup()
{
  myservo.attach(9);
    for(int i=900; i<1500; i++)
     {
           myservo.writeMicroseconds(900);
           delay(100);
     }
}

void loop(){}
19
发表于 2012-9-16 22:06 | 只看该作者
本人新手,请教一个基础问题,单片机和电调是怎么连线的,电调的正极要连到单片机上还是悬空?负极连单片机的地吗?急用,请求各位大侠和楼主尽快指点!
20
发表于 2012-10-11 23:09 | 只看该作者
本帖最后由 铁皮 于 2012-10-11 23:11 编辑

现在回复还有人看吗,我也说说,我刚用89C2051发生5000Hz的可调PWM做调光灯可以渐亮和渐暗,如果发生50Hz的频率那就太简单了,我说说我的方法,T0做周期定时器,溢出中断产生高电平(也可是低电平,由自已喜欢),所以周期很稳定,T1做占空比定时器,T1的启动和值装载在T0的中断服务程序里完成,T1的值的大小就是占空比了,T1溢出中断输出低电平(与T0相反就行),T1的值可存在寄存器里可以由输入按键改变大小。
补充:这种程序用汇编比较好,时间掌握精确
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

关闭

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

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