欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3267|回復: 2
打印 上一主題 下一主題
收起左側

用單片機輸出PWM驅動無刷電調,請問該如何設置中位啟動來激活電刷呢?

[復制鏈接]
跳轉到指定樓層
樓主
本帖最后由 明日香 于 2021-1-6 11:11 編輯

這個無刷電調不需要設置最大最小行程,但需要中位啟動,我用單片機該如何設置呢?店家說頻率是50HZ,那周期就是20ms也就是20000us了,中位啟動是指PWM高電平時間1500us嗎?占空比只有7.5%?



這是我寫的單片機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;
}






分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:46241 發表于 2021-1-5 20:05 來自觸屏版 | 只看該作者
我也想學習下,等高手解答。
回復

使用道具 舉報

板凳
ID:872791 發表于 2021-1-5 21:53 | 只看該作者
void time0() interrupt 1
{
  TH0=0xff;       //
  TL0=0x38;
  time++;
  if(time>=100)
     {  time=0;}
  if(time<=30)//占空比為30%
     { PWM=1;}
  else
      {PWM=0;}
         
}//////普通的直流電機,頻率不能太快了,把定時調長一點,電流不至于把電機驅動。和步進電機不一樣。

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表