5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年)

标题: 怎么用单片机驱动电调啊? [打印本页]

作者: xuyaogyo    时间: 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();                
        }
}

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

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

简单:em24: 想精确的时序控制用汇编
作者: 椰岛    时间: 2011-12-23 05:16
纯属瞎摸,呵呵!支持乱摸:em26:
作者: wangfine1975    时间: 2011-12-23 08:09
好盈电调需要设置油门行程的,还得添加一段设置油门行程的程序就可以了
作者: soybean    时间: 2011-12-23 10:30
建议用51的定时器,发生50HZ的高电平脉冲。 脉宽为中心点为1520us,油门最低大概在800us左右,油门最高在1900us左右。如需要具体数值我可以帮忙采样。
作者: march_gx    时间: 2012-5-8 22:21
标题: LZ还在吗
我现在想做一个和你一样的,单片机直接用IO口输出PWM方波。遇到和你一样的问题,能不能帮帮我。。解决一下。
作者: gyro    时间: 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 编辑 ]
作者: 天下货仓    时间: 2012-5-9 10:05
留下脚印!
作者: lemon铭    时间: 2012-5-9 19:25
想学单片机,但是太复杂了...............
作者: 蓝色妖姬1982    时间: 2012-5-10 00:10
标题: 回复 10楼 march_gx 的帖子
联系我哦   QQ  2634486022
作者: 懒懒兔    时间: 2012-5-10 19:04
你的程序只是产生方波信号,并不是PWM信号,这样的程序是不能让电机转起来的
作者: seanshuai    时间: 2012-5-10 22:11
标题: 标题
同意楼上   首先得产生pwm方波   百度一下   有相关得程序
作者: 蓝色妖姬1982    时间: 2012-5-10 23:59
标题: 回复 17楼 seanshuai 的帖子
是要产生PPM信号 给电调吧? 是不是啊  楼上的?  我们加为好友 交流交流哦
作者: i7456    时间: 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(){}
作者: wljjyz    时间: 2012-9-16 22:06
本人新手,请教一个基础问题,单片机和电调是怎么连线的,电调的正极要连到单片机上还是悬空?负极连单片机的地吗?急用,请求各位大侠和楼主尽快指点!
作者: 铁皮    时间: 2012-10-11 23:09
本帖最后由 铁皮 于 2012-10-11 23:11 编辑

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

作者: qowerfula    时间: 2012-11-18 23:52
我用51驱动的无刷电调和电机,按下几次按键,电机能转动,但是1s以后就停了,对应的led灯也灭了,再按下按键,电机又转动1s,然后又停了。如果不接电机,led灯是随着按键改变亮度的,而且一直亮着,请问这是怎么回事呀?

作者: dxr2013    时间: 2013-1-5 10:17
论团里高人真多啊,学习了
作者: wxb3871    时间: 2013-1-15 10:28
单片机驱动电调我做过,要注意无刷电调在初始化时会检测PPM信号,这个时候,PPM信号应该保持1ms脉宽(油门最低位置),否则电调会报警。自检正常电调才会驱动电机转动。楼主的这个用法不如直接买个舵机测试仪,简单价廉,没必要单独制作。




欢迎光临 5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年) (http://5imx.com/) Powered by Discuz! X3.3