0.png (44.63 KB, 下載次數(shù): 235)
下載附件
2019-4-16 16:03 上傳
步進電機(也稱脈沖電機)(將電脈沖轉(zhuǎn)換為相應的角位移或線位移的電磁機械裝置,具有快速啟動,停能力,在電機的負荷不超過它能提供的動態(tài)轉(zhuǎn)矩時,可以通過輸入脈沖來控制它在一瞬間的啟動或者停止。在非超載的情況下,步距角和轉(zhuǎn)速只和輸入的脈沖頻率有關,和環(huán)境溫度,氣壓,振動無關,也不受電網(wǎng)電壓的波動和負載變化的影響,因此,控制較為精準)即給電機一個脈沖信號,電機則轉(zhuǎn)過一個步距角
步進電機是一種感應電機,它的工作原理:利用電子電路,將直流電變成分時供電的,多相時序控制電流,用這種電流為步進電機供電,步進電機才能正常工作,驅(qū)動器就是為步進電機分時供電的,多相時序控制器,就是說:必須用由雙環(huán)形脈沖信號功率驅(qū)動電路等組成的控制系統(tǒng)方可使用。
步距角:控制系統(tǒng)每發(fā)一個步進脈沖信號,電機所轉(zhuǎn)動的角度。電機出廠時給了一個步距角的值,如:86BYG250A型 電機的值為0.9、1.8(表示半步工作時為0.9,整步為1.8),被稱之為“電機的固有步距角”,但是不一定是 電機實際工作時的真正步距角,真正的步距角和驅(qū)動器有關
相數(shù):電機內(nèi)部的線圈組數(shù),目前常用的有二相,三相,四相,五相步進電機。電機相數(shù)不同,其步距角也就不同了, 一般二相電機的步距角為0.9/1,8,三相為0.36/0.72,五相為0.36/0.72。在沒有細分驅(qū)動器的情況下,用戶主要 靠選擇不同相數(shù)的步進電機來滿足自己步距角的要求。如果使用細分驅(qū)動器,那么相數(shù)好像也就沒有了意義
拍數(shù):完成一個磁場周期性變化所需脈沖數(shù)或?qū)щ姞顟B(tài),或指電機轉(zhuǎn)過一個步距角所需脈沖數(shù)。以如下的四相電機為 例,有四相四拍運行方式,AB-BC-CD-DA-AB;四相八拍:A-AB-B-BC-C-CD-D-DA-A
1.png (58.67 KB, 下載次數(shù): 155)
下載附件
2019-4-16 16:06 上傳
失步:電機運轉(zhuǎn)時運轉(zhuǎn)的步數(shù)不等于理論上的步數(shù),稱之為失步
開環(huán)控制與閉環(huán)控制:(主要看系統(tǒng)中有沒有反饋環(huán)節(jié))(反饋指的是動作所引起的效果)
(反饋簡單的理解就是:“你打了別人一巴掌,我們看到了它的臉是紅的,嗯嗯,這就是眼睛所得到的反饋”)
閉環(huán)控制:存在反饋環(huán)節(jié)的控制,就是當前的系統(tǒng)能夠?qū)崟r的檢測控制的輸出結(jié)果,并將檢測到的信息通過反饋環(huán)節(jié)反映到輸入端,調(diào)整輸入量,達到修正控制誤差,提高控制精度的目的,(對外部擾動和系統(tǒng)參數(shù)變化不敏感)如:
2.png (11.52 KB, 下載次數(shù): 168)
下載附件
2019-4-16 16:06 上傳
(閉環(huán))
全自動洗衣機,給洗衣機加水時,里邊有一個紅外傳感器,掃描到水位高低,當水位合適時,洗衣機自動停止加水
家用空調(diào)根據(jù)傳感器采集到當前的溫度,然后比較設定溫度,通過設定指令,控制室內(nèi)外機的工作情況,改變頻率,壓縮機的轉(zhuǎn)速等進行簡單的調(diào)節(jié),然后不斷地進行控制
尋跡小車時,兩邊的紅外傳感器不斷的檢測黑線,將返回的結(jié)果輸入到相應i/o口上,我們對這些i/o口進行中斷檢測就可以知道,當前時刻的位置,然后可以執(zhí)行相應的操作(左轉(zhuǎn),右轉(zhuǎn));
調(diào)節(jié)平衡天平的時候,其中一種方法就是利用mpu6050獲取當前所處位置的角度,調(diào)用PID算法,對當前的位置或者角度進行處理,然后對調(diào)整后的角度再次進行反饋處理
(家用空調(diào)調(diào)節(jié)溫度)
家用空調(diào)調(diào)節(jié)指定的溫度,靠的是電子傳感器,(電子傳感器就是一個熱敏電阻,不同的溫度會有不同的阻值),利用也可以理解為電子膨脹,不同的溫度會有不同的阻值。利用對入風口的空氣進行取樣,把數(shù)據(jù)傳輸?shù)娇刂瓢迳,然后,在與設定的溫度進行比較,產(chǎn)生一個指令來實現(xiàn)控制。(制冷的話,比較之后:輸出室內(nèi)風機和室外機的開機指令,內(nèi)外機開始工作(室外機包括壓縮機,室外風機,四通閥等部件),工作一定溫度的話,室內(nèi)溫度將會:1,(定頻空調(diào))達到設定值,室外機停止工作,室內(nèi)機保持工作,保證空氣循環(huán),當室內(nèi)溫度逐漸上升,大于設定值2-3度時,室外機重新啟動制冷,室內(nèi)溫度將又開始下降,重復這個過程,室內(nèi)溫度就能保持在設定溫度值上下1度左右范圍內(nèi)波動; 2,(變頻空調(diào))接近設定值,室外機的變頻板輸出的頻率下降,壓縮機轉(zhuǎn)速下降,制冷量也相應降低,室內(nèi)溫度保持在與設定值相同的數(shù)值下。隨著室內(nèi)熱源的變化,室內(nèi)機溫度傳感器實時檢測溫度的變化,主控板輸出的控制信號使變頻器跟隨變化調(diào)節(jié)壓縮機工作頻率,從而改變瞬時制冷量,確保室內(nèi)溫度穩(wěn)定)
開環(huán)控制:不存在反饋環(huán)節(jié)的控制,也就是控制器與被控制對象間只有順序作業(yè)而無反方向聯(lián)系且控制單方向進行,
,無自動糾偏能力,不用取輸出量變化信號控制輸入量。
3.png (14.86 KB, 下載次數(shù): 174)
下載附件
2019-4-16 16:08 上傳
如:在開車的過程中,我們來控制方向盤
人工轉(zhuǎn)換電扇的檔位實現(xiàn)轉(zhuǎn)速的控制,不用反饋回來實際的轉(zhuǎn)速
給洗衣機加水時:我們通過來觀察水位來確定什么時候關掉水龍頭
(所以,簡單的說:就是看有沒有反饋:開環(huán)沒有,閉環(huán)有,對于用到機器上來說,每一件事都是有反饋的,只是情況不同而已,當反饋是人自己來判斷的話,那么這個系統(tǒng)就是開環(huán)的,如果反饋是機器自己來判斷的話,那么這個系統(tǒng)就是閉環(huán)的)
從整體的角度來看:
單片機控制電機正轉(zhuǎn)源程序如下:
- #include "delay.h"
- #include "sys.h"
- #include "usart.h"
-
- //引腳連接
- //IN1:PC3、IN2:PC2、IN3:PC0、IN4:PC13、
-
- //步進電機初始化函數(shù)
- void Motor_Init(void)
- {
- GPIO_InitTypeDef GPIO_InitStructure;
-
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);//開啟時鐘
-
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13|GPIO_Pin_0|GPIO_Pin_2|GPIO_Pin_3;
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//推挽輸出
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
- GPIO_Init(GPIOC, &GPIO_InitStructure);
-
- GPIO_ResetBits(GPIOC,GPIO_Pin_13);//默認低電平
- GPIO_ResetBits(GPIOC,GPIO_Pin_0);
- GPIO_ResetBits(GPIOC,GPIO_Pin_2);
- GPIO_ResetBits(GPIOC,GPIO_Pin_3);
-
- }
-
- //步進電機正轉(zhuǎn)函數(shù)(反轉(zhuǎn)參考51版本)
- void Motorcw(void)
- {
- GPIO_SetBits(GPIOC,GPIO_Pin_13);//依次高電平輸出
- GPIO_ResetBits(GPIOC,GPIO_Pin_0);
- GPIO_ResetBits(GPIOC,GPIO_Pin_2);
- GPIO_ResetBits(GPIOC,GPIO_Pin_3);
- delay_ms(10);
-
- GPIO_ResetBits(GPIOC,GPIO_Pin_13);
- GPIO_SetBits(GPIOC,GPIO_Pin_0);
- GPIO_ResetBits(GPIOC,GPIO_Pin_2);
- GPIO_ResetBits(GPIOC,GPIO_Pin_3);
- delay_ms(10);
-
- GPIO_ResetBits(GPIOC,GPIO_Pin_13);
- GPIO_ResetBits(GPIOC,GPIO_Pin_0);
- GPIO_SetBits(GPIOC,GPIO_Pin_2);
- GPIO_ResetBits(GPIOC,GPIO_Pin_3);
- delay_ms(10);
-
- GPIO_ResetBits(GPIOC,GPIO_Pin_13);
- GPIO_ResetBits(GPIOC,GPIO_Pin_0);
- GPIO_ResetBits(GPIOC,GPIO_Pin_2);
- GPIO_SetBits(GPIOC,GPIO_Pin_3);
- delay_ms(10);
-
- }
-
- int main(void)
- {
- delay_init();//delay初始化函數(shù)
- Motor_Init();
- while(1)
- {
- Motorcw();
- }
- }
復制代碼
正轉(zhuǎn)代碼與芯片資料供大家學習:
ULN2003步進電機正轉(zhuǎn)代碼與資料.7z
(577.56 KB, 下載次數(shù): 1160)
2021-11-20 02:34 上傳
點擊文件名下載附件
32控制 下載積分: 黑幣 -5
|