使用51单片机驱动航模无刷电机

话不多说直接上图:使用51单片机驱动航模无刷电机_第1张图片

使用51单片机驱动航模无刷电机_第2张图片


      使用的是89c52rc单片机,电调驱动使用50~500Hz的脉冲 , 我用的400Hz脉冲 P2.0作为输出,电调驱动脉冲高电平时间0.7~1.9ms , 开始做一个油门行程,输出1.9ms高电平脉冲,听到电机“哔哔”两声,然后输出0.7ms高电平脉冲,听到电机“哔~~”的一声,表示它准备好了,然后就可以转啦~~~~输出0.7ms高电平 电机停止,往上加,电机转得就越来越快~

经过测试最大高电平时间在0.7ms及以下电机不转,0.7ms以上开始转。。1.9ms达到最高速,1.9模式以上电机转速可能会降低,不会在加快了~~

程序代码如下:LSA LSB LSC 为驱动数码管的引脚

使用51单片机驱动航模无刷电机_第3张图片

使用51单片机驱动航模无刷电机_第4张图片

使用51单片机驱动航模无刷电机_第5张图片

使用51单片机驱动航模无刷电机_第6张图片

使用51单片机驱动航模无刷电机_第7张图片


我的keil5用的Unicode编码,所以中文注释在文本下会是乱码

程序:

#include


/********************************
µçµ÷Çý¶¯Âö³å50HZ~500HZ    ÓÃ400HZÇý¶¯


×îС¸ßµçƽʱ¼ä 0.7ms
×î´ó¸ßµçƽʱ¼ä 1.9ms


*********************************/


#define MAX 19
#define MIN 7


sbit spin=P2^0;
sbit k1=P3^2;
sbit k2=P3^3;


sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;


char code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//ÏÔʾ0~FµÄÖµ
int j;


 void InitTimer0(void)
{
    TMOD = 0x01;
    TH0 = 0x0FF;    //0.1ms
    TL0 = 0x9C;
    EA = 1;
    ET0 = 1;
    TR0 = 1;
}


void delay(int i)
{
  while(i--);
}


void main()
{
int x;
InitTimer0();


x=0;

//ÓÍÃÅÐгÌÉèÖÃ
 j=MAX;


while(1)
{
LSA=0;
LSB=0;
LSC=0;
P0=smgduan[15];
if(k1==0)
{
delay(1000);
if(k1==0)
{

while(k1==0);
break;
}
}
}
  j=MIN;


//ÔËÐк¯Êý

while(1)
{
  if(k1==0)
{
delay(100);
if(k1==0)
{if(j while(k1==0);
}

if(k2==0)
{
delay(100);
if(k2==0)
{if(j>MIN) {j--;x--;}}
while(k2==0);
}


//ÊýÂë¹ÜÏÔʾ
  LSA=0;
LSB=0;
LSC=0;
P0=0x00;
P0=smgduan[x%10];
delay(100);
LSA=1;
LSB=0;
LSC=0;
P0=0x00;
P0=smgduan[x/10];
delay(100);
}


}


void Timer0Interrupt(void) interrupt 1
{   
static int i=0;

    TH0 = 0x0FF;
    TL0 = 0x9c;
    i++;
if(i<=j) spin=1;                   //pwmÂö³å·¢Éú
else spin=0;

if(i>=25) i=0;                  //0.0025ms   1/0.0025=400Hz



}


程序开始会把pwm设置为1.9ms高电平脉冲(做油门行程),按下P3.2端口对应的k1,pwm拉倒最低,等电机哔得一声,就可以继续按k1加速了,按k2减速;

程序使用了数码管显示当前档位,我设置的是0~12挡,也就是0.7~1.9ms高电平时间,

电调信号线 红VCC 黑GND 白信号线;

电调接上11.1V电源,和电机,红线VCC悬空不接,黑线GND接单片机GND,白线信号线接P2.0(我使用的pwm端口);

电机在有负载的情况下,电流会达到好几十安 我用的40A电调,,我5A的稳压源,无法使它加上螺旋桨达到最大速度,但是空转可以达到最大速度!!!!

你可能感兴趣的:(无刷电机,单片机)