当前位置: 首页>編程日記>正文

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

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

话不多说直接上图:



      使用的是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 为驱动数码管的引脚







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

程序:

#include<reg52.h>


/********************************
µçµ÷Çý¶¯Âö³å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<MAX) {j++;x++;}}
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的稳压源,无法使它加上螺旋桨达到最大速度,但是空转可以达到最大速度!!!!


https://www.fengoutiyan.com/post/15377.html

相关文章:

  • 鏡像模式如何設置在哪,圖片鏡像操作
  • 什么軟件可以把圖片鏡像翻轉,C#圖片處理 解決左右鏡像相反(旋轉圖片)
  • 手機照片鏡像翻轉,C#圖像鏡像
  • 視頻鏡像翻轉軟件,python圖片鏡像翻轉_python中鏡像實現方法
  • 什么軟件可以把圖片鏡像翻轉,利用PS實現圖片的鏡像處理
  • 照片鏡像翻轉app,java實現圖片鏡像翻轉
  • 什么軟件可以把圖片鏡像翻轉,python圖片鏡像翻轉_python圖像處理之鏡像實現方法
  • matlab下載,matlab如何鏡像處理圖片,matlab實現圖像鏡像
  • 圖片鏡像翻轉,MATLAB:鏡像圖片
  • 鏡像翻轉圖片的軟件,圖像處理:實現圖片鏡像(基于python)
  • canvas可畫,JavaScript - canvas - 鏡像圖片
  • 圖片鏡像翻轉,UGUI優化:使用鏡像圖片
  • Codeforces,CodeForces 1253C
  • MySQL下載安裝,Mysql ERROR: 1253 解決方法
  • 勝利大逃亡英雄逃亡方案,HDU - 1253 勝利大逃亡 BFS
  • 大一c語言期末考試試題及答案匯總,電大計算機C語言1253,1253《C語言程序設計》電大期末精彩試題及其問題詳解
  • lu求解線性方程組,P1253 [yLOI2018] 扶蘇的問題 (線段樹)
  • c語言程序設計基礎題庫,1253號C語言程序設計試題,2016年1月試卷號1253C語言程序設計A.pdf
  • 信奧賽一本通官網,【信奧賽一本通】1253:抓住那頭牛(詳細代碼)
  • c語言程序設計1253,1253c語言程序設計a(2010年1月)
  • 勝利大逃亡英雄逃亡方案,BFS——1253 勝利大逃亡
  • 直流電壓測量模塊,IM1253B交直流電能計量模塊(艾銳達光電)
  • c語言程序設計第三版課后答案,【渝粵題庫】國家開放大學2021春1253C語言程序設計答案
  • 18轉換為二進制,1253. 將數字轉換為16進制
  • light-emitting diode,LightOJ-1253 Misere Nim
  • masterroyale魔改版,1253 Dungeon Master
  • codeformer官網中文版,codeforces.1253 B
  • c語言程序設計考研真題及答案,2020C語言程序設計1253,1253計算機科學與技術專業C語言程序設計A科目2020年09月國家開 放大學(中央廣播電視大學)
  • c語言程序設計基礎題庫,1253本科2016c語言程序設計試題,1253電大《C語言程序設計A》試題和答案200901
  • 肇事逃逸車輛無法聯系到車主怎么辦,1253尋找肇事司機