本帖最后由 明日香 于 2021-1-6 11:11 編輯
這個無刷電調不需要設置最大最小行程,但需要中位啟動,我用單片機該如何設置呢?店家說頻率是50HZ,那周期就是20ms也就是20000us了,中位啟動是指PWM高電平時間1500us嗎?占空比只有7.5%?
51hei圖片20210106110840.png (94.45 KB, 下載次數: 62)
下載附件
2021-1-6 11:09 上傳
這是我寫的單片機IO口P21輸出PWM波的源程序:高電平時間為1500us
燒錄后電調發出了“噔噔蹬”的聲音,但螺旋槳沒有旋轉
#include <stc12c5a.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define uchar unsigned char
#define uint unsigned int
/*用定時器T0來控制頻率,定時器T1來控制占空比*/
/*T0中斷讓一個IO口輸出高電平,T1讓IO口輸出低電平*/
/*改變T0初值就可以改變頻率,改變T1初值就可以改變占空比*/
/*機器周期為1us,設定頻率為50HZ,則周期為20ms
要定時20ms,設置中斷基準為0.02ms,中斷1000次為一個周期
0.02ms/1us=20,初始值65535-20+1=FFEC*/
sbit PWM=P2^1; //P21輸出PWM波
uchar time; //占空比
void main()
{
TMOD=0x01;//打開定時器0,工作方式1:16位定時器
TH0=0xff; //
TL0=0xec;
EA=1;//開總中斷
ET0=1;//開定時器0中斷
TR0=1;//啟動定時器0
while(1)
{
}
}
void time0() interrupt 1
{
TR0=0;//定時器關閉
TH0=0xff; //
TL0=0xec;
TR0=1;//打開定時器
time++;
if(time>=1000)
time=0;
if(time<=75)//占空比為7.5%,高電平時間1500us
PWM=1;
else PWM=0;
}
|