全國熱線電話:

0519-8918 1758
產(chǎn)品中心PRODUCT SHOW
聯(lián)系我們CONTACT US

    聯(lián)系人:聶經(jīng)理

    手機(jī):18605199068  18602586200

    電話:0519-89181758  83700750  

    Q Q:710285815

    郵箱:18605199068@126.com

    地址:江蘇省常州市武進(jìn)區(qū)大通西路200號(hào)。

直流無刷電機(jī)和無刷直流電機(jī)信息智能網(wǎng)

單片機(jī)pwm控制電機(jī),PWM電機(jī)調(diào)速原理及51單片機(jī)PWM程序經(jīng)典
2022-06-18

  對(duì)于電機(jī)的轉(zhuǎn)速調(diào)整,我們是采用脈寬調(diào)制(PWM)辦法,控制電機(jī)的時(shí)候,電源并非連續(xù)地向電機(jī)供電,而是在一個(gè)特定的頻率下以方波脈沖的形式提供電能。不同占空比的方波信號(hào)能對(duì)電機(jī)起到調(diào)速作用,這是因?yàn)殡姍C(jī)實(shí)際上是一個(gè)大電感,它有阻礙輸入電流和電壓突變的能力,因此脈沖輸入信號(hào)被平均分配到作用時(shí)間上,這樣,改變?cè)谑寄芏薖E2 和PD5 上輸入方波的占空比就能改變加在電機(jī)兩端的電壓大小,從而改變了轉(zhuǎn)速。   此電路中用微處理機(jī)來實(shí)現(xiàn)脈寬調(diào)制,通常的方法有兩種:  ?。?)用軟件方式來實(shí)現(xiàn),即通過執(zhí)行軟件延時(shí)循環(huán)程序交替改變端口某個(gè)二進(jìn)制位輸出邏輯狀態(tài)來產(chǎn)生脈寬調(diào)制信號(hào),設(shè)置不同的延時(shí)時(shí)間得到不同的占空比。  ?。?)硬件實(shí)驗(yàn)自動(dòng)產(chǎn)生PWM 信號(hào),不占用CPU 處理的時(shí)間。這就要用到ATMEGA8515L 的在PWM 模式下的計(jì)數(shù)器1,具體內(nèi)容可參考相關(guān)書籍。   51單片機(jī)PWM程序經(jīng)典   產(chǎn)生兩個(gè)PWM,要求兩個(gè)PWM波形占空都為80/256,兩個(gè)波形之間要錯(cuò)開,不能同時(shí)為高電平!高電平之間相差48/256,PWM這個(gè)功能在PIC單片機(jī)上就有,但是如果你就要用51單片機(jī)的話,也是可以的,但是比較的麻煩。   可以用定時(shí)器T0來控制頻率,定時(shí)器T1來控制占空比:大致的的編程思路是這樣的:T0定時(shí)器中斷是讓一個(gè)I0口輸出高電平,在這個(gè)定時(shí)器T0的中斷當(dāng)中起動(dòng)定時(shí)器T1,而這個(gè)T1是讓IO口輸出低電平,這樣改變定時(shí)器T0的初值就可以改變頻率,改變定時(shí)器T1的初值就可以改變占空比。   *程序思路說明: *   * *   *關(guān)于頻率和占空比的確定,對(duì)于12M晶振,假定PWM輸出頻率為1KHZ,這樣定時(shí)中斷次數(shù) *   *設(shè)定為C=10,即0.01MS中斷一次,則TH0=FF,TL0=F6;由于設(shè)定中斷時(shí)間為0.01ms,這樣*   *可以設(shè)定占空比可從1-100變化。即0.01ms*100=1ms *   ******************************************************************************/ #include 《REGX51.H》   #define uchar unsigned char   /*****************************************************************************   * TH0和TL0是計(jì)數(shù)器0的高8位和低8位計(jì)數(shù)器,計(jì)算辦法:TL0=(65536-C)%256; *   * TH0=(65536-C)/256,其中C為所要計(jì)數(shù)的次數(shù)即多長時(shí)間產(chǎn)生一次中斷;TMOD是計(jì)數(shù)器* * 工作模式選擇,0X01表示選用模式1,它有16位計(jì)數(shù)器,最大計(jì)數(shù)脈沖為65536,最長時(shí) *   * 間為1ms*65536=65.536ms *   ******************************************************************************/ #define V_TH0 0XFF #define V_TL0 0XF6 #define V_TMOD 0X01   void init_sys(void); /*系統(tǒng)初始化函數(shù)*/ void Delay5Ms(void);   unsigned char ZKB1,ZKB2;   void main (void)   {   init_sys();   ZKB1=40; /*占空比初始值設(shè)定*/ ZKB2=70; /*占空比初始值設(shè)定*/ while(1)   {   if (!P1_1) //如果按了+鍵,增加占空比   {   Delay5Ms(); if (!P1_1)   {   ZKB1++;   ZKB2=100-ZKB1;   }   }   if (!P1_2) //如果按了-鍵,減少占空比   {   Delay5Ms(); if (!P1_2)   {   ZKB1--;   ZKB2=100-ZKB1;   }   }   /*對(duì)占空比值限定范圍*/ if (ZKB1》99) ZKB1=1; if (ZKB1《1) ZKB1=99;   }   }   /******************************************************   *函數(shù)功能:對(duì)系統(tǒng)進(jìn)行初始化,包括定時(shí)器初始化和變量初始化*/ void init_sys(void) /*系統(tǒng)初始化函數(shù)*/   {   /*定時(shí)器初始化*/ TMOD=“V”_TMOD; TH0=V_TH0; TL0=V_TL0; TR0=1; ET0=1; EA=“1”;   }   //延時(shí)   void Delay5Ms(void)   {   unsigned int TempCyc = 1000; while(TempCyc--);   }   /*中斷函數(shù)*/   void TImer0(void) interrupt 1 using 2   {   staTIc uchar click=“0”; /*中斷次數(shù)計(jì)數(shù)器變量*/   TH0=V_TH0; /*恢復(fù)定時(shí)器初始值*/ TL0=V_TL0; ++click;   if (click》=100) click=“0”;   if (click《=ZKB1) /*當(dāng)小于占空比值時(shí)輸出低電平,高于時(shí)是高電平,從而實(shí)現(xiàn)占空比的調(diào)整*/ P1_3=0; ? ? ? ?? ? ? ? ?   else   P1_3=1;   if (click〈=ZKB2) P1_4=0; else   P1_4=1;   } 〈   1.下面是AVR的程序,51產(chǎn)生PWM波麻煩,可以用AVR。主要是設(shè)置存放的TOP值 (OCR1A的值),然后你要多大的占空比 再設(shè)置OCR1B的值,至于持續(xù)時(shí)間就更簡單了,你要產(chǎn)生多久,就調(diào)用此函數(shù)就可以了。   2.產(chǎn)生方波的頻率計(jì)算公式(KHZ) f=fclk(晶振)/{*N(1+OCRNA)} N:代表分頻因子   根據(jù)你要的產(chǎn)生方波的頻率,就能算出OCRNA的值,就可以了!   /***************在OCR1B(PD4)上可測到100HZ的PWM波***********************/   /***************在OCR1A(PD5)上可測到50HZ的方波************************/   #include 《iom16v.h》   #include 《macros.h》 void PWM()   {   DDRD=0X30;//設(shè)置OC1B(PD4)和OC1A(PD5)為輸出 TCCR1A=0X63; TCCR1B=0X1B;   OCR1A=7;//得到10KHZ的PWM波   OCR1B=5;//得到2ms(1810/5)的高電平時(shí)間   }

0519-8918 1758
聯(lián)系人:聶經(jīng)理 郵箱:niejli@126.com 地址:江蘇省常州市武進(jìn)區(qū)大通西路200號(hào)。 電話:0519-8918 1758

版權(quán)所有 ? 常州永沛機(jī)電技術(shù)有限公司 直流無刷電機(jī)|無刷直流電機(jī)|直流防爆電機(jī)|常州永沛機(jī)電技術(shù)有限公司|電動(dòng)平車電機(jī)|電動(dòng)船電機(jī)|直流減速電機(jī)


蘇ICP備13004000號(hào)