![ti套件第8章電機驅(qū)動模塊_第1頁](http://file4.renrendoc.com/view/3bcbbdbbd2924bb0f61d71ed4aff163b/3bcbbdbbd2924bb0f61d71ed4aff163b1.gif)
![ti套件第8章電機驅(qū)動模塊_第2頁](http://file4.renrendoc.com/view/3bcbbdbbd2924bb0f61d71ed4aff163b/3bcbbdbbd2924bb0f61d71ed4aff163b2.gif)
![ti套件第8章電機驅(qū)動模塊_第3頁](http://file4.renrendoc.com/view/3bcbbdbbd2924bb0f61d71ed4aff163b/3bcbbdbbd2924bb0f61d71ed4aff163b3.gif)
![ti套件第8章電機驅(qū)動模塊_第4頁](http://file4.renrendoc.com/view/3bcbbdbbd2924bb0f61d71ed4aff163b/3bcbbdbbd2924bb0f61d71ed4aff163b4.gif)
![ti套件第8章電機驅(qū)動模塊_第5頁](http://file4.renrendoc.com/view/3bcbbdbbd2924bb0f61d71ed4aff163b/3bcbbdbbd2924bb0f61d71ed4aff163b5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第8章電機驅(qū)動模塊杭州2014 年 11 月- 1 -申明杭州保留隨時對其產(chǎn)品進行修正、改進和完善的權(quán)利,同時也保留在不作任何通告的情況下,終止其任何一款產(chǎn)品的供應(yīng)的權(quán)利。用戶在下訂單前應(yīng)及時獲取相關(guān)信息的版本,并驗證這些信息是當前的和完整的。可通過如下方式獲取資料和技術(shù)支持:技術(shù)話:技術(shù)支持郵箱:產(chǎn)品&資料中心:ht/products/forum.互動:ht/公司地址:浙江省杭州市西湖區(qū)留和路16號新峰商務(wù)樓B306- 2 -第8章電機驅(qū)動模塊- 1 - 2 -34程序啟動液晶初始化主程序中斷響應(yīng)6滾輪初始化中斷點中斷返回主程序1初始化圖x、直流電機模塊中斷響應(yīng)2定時器Timer3初始化33
2、部分端口初始化4是4程序終止5圖x、直流電機模塊流程圖1625電機運轉(zhuǎn)后,電機軸上的帶齒葉輪片會不斷的穿過一對光耦對管。產(chǎn)生的高低電平變換的信號,由TIVA LaunchPad上的PB2口外部中斷獲得。通過計算中斷響應(yīng)周期可以測算出電機的轉(zhuǎn)速并顯示在LCD上。定時器Timer3A中斷初始化為4個上升沿信號觸發(fā)一次即正好電機葉輪轉(zhuǎn)動了一圈。 后兩次中斷時都 一次SysTickValue,兩次差值便是葉輪旋轉(zhuǎn)一周的周期值。根據(jù)TIVA主頻可獲得電機的轉(zhuǎn)速。初始化TIVA LaunchPad的PB4口輸出一個頻率20KHz的信號用于驅(qū)動直流空心杯電機。滾輪的位置通過電壓ADC采樣傳輸?shù)絋IVA中,根
3、據(jù)滾輪的ADC采樣值調(diào)節(jié)信號的占空比,可以改變電機的旋轉(zhuǎn)速度。液晶上顯示“SPEED:(r/s)”表示直流電機的旋轉(zhuǎn)速度。LCD顯示字符驅(qū)動電機除了需要PB4的 信號外,還需要一個配合PB7的置高信號,以及PB0的使能信號。這里將兩個端口直接置高電平。定時器Timer3A中斷程序主循環(huán)5顯示電機轉(zhuǎn)數(shù)否系統(tǒng)延時結(jié)束滾輪ADC值調(diào)節(jié)占空比如上圖所示,直流電機的驅(qū)動程序需要液晶、滾輪、Tiva 的模塊的共同配合完成。其中液晶用于顯示電機轉(zhuǎn)數(shù)、滾輪用來調(diào)節(jié)輸出、定時器等多個的占空比從而控制電機的轉(zhuǎn)速、輸出用于驅(qū)動直流電機旋轉(zhuǎn)、而定時器則是用來檢測電機的旋轉(zhuǎn)數(shù)度。關(guān)鍵代碼分析驅(qū)動信號的初始化6/* 初始
4、化獲取一路脈寬調(diào)制信號*|/|*M4PB4|-M02-Channel 1/|*/ #define PERIOD_TIME12500 / 60/ 20K Hz/DC_motor/ 60K Hzource/ 定義最大最小周期時間頻率在2001000之間#define MAX_PERIODPERIOD_TIME * 90 / 100 #define MIN_PERIODPERIOD_TIME * 12 / 100void Init_()/ 設(shè)置時鐘和系統(tǒng)時鐘一致SysCtlClockSet(SYSCTL_DIV_1);/ 使能外設(shè)SysCtlPeripheralEnable(SYSCTL_PERIP
5、H_0);/ 使能外設(shè)端口SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB);/設(shè)置對應(yīng)管腳的信號功能GPIOPinConfigure(GPIO_PB4_M02);/設(shè)置信號端口GPIOPype(GPIO_PORTB_BASE, GPIO_PIN_4);/配置GenConfigure(0_BASE,_GEN_1,_GEN_MODE_UP_DOWN |_GEN_MODE_NO_SYNC);/設(shè)置信號周期GenPeriodSet(0_BASE,_GEN_1, PERIOD_TIME);定時器 Timer3 初始化7/*brief初始化Timer3A為邊沿觸發(fā)減計
6、數(shù)中斷。PB2作為外部中斷源獲取中斷信號。捕獲采用統(tǒng)計光耦信號之間的時間差來折算電機葉輪旋轉(zhuǎn)數(shù)度paramnullreturn null*/ void Init_Timer()/ 啟用Timer4模塊SysCtlPeripheralEnable(SYSCTL_PERIPH_TIMER3);/ 啟用GPIO_M作為脈沖捕捉腳SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB);/ 配置GPIO腳為使用Timer4捕捉模式GPIOPinConfigure(GPIO_PB2_T30);GPIOPypeTimer(GPIO_PORTB_BASE, GPIO_PIN_2
7、);/ 為管腳配置弱上拉模式GPIOPadConfigSet(GPIO_PORTB_BASE, GPIO_PIN_2, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPU);/ 配置使用Timer4的TimerA模塊為邊沿觸發(fā)減計數(shù)模式TimerConfigure(TIMER3_BASE, TIMER_CFG_SPLIT_PAIR |TIMER_CFG_A_CAP_COUNT);/ 使用下降沿觸發(fā)TimerControlEvent(TIMER3_BASE, TIMER_A, TIMER_EVENT_NEG_EDGE);/設(shè)置信號占空比PulseWidthSet(0
8、_BASE,_OUT_2, PERIOD_TIME / 10);/ 使能輸出端口OutputSe(0_BASE,_OUT_2_BIT, true);/ 使能GenEnable(0_BASE,_GEN_1);/ 使能模塊的及時功能.SyncTimeBase(0_BASE,_GEN_1);關(guān)于中斷函數(shù)的初始化和調(diào)用參考第三章中按鍵中斷的實現(xiàn)部分,這里不再重復說明。初始化中的計算范圍定在 40,即四次邊沿觸發(fā)即響應(yīng)中斷函數(shù)。是由于直流電機的葉輪上有四個對稱的缺口,而在電機模塊 PCB 中的光耦對管正好能捕獲葉輪上的缺口產(chǎn)生一組信號。這組信號通過 PB2 獲得,并觸發(fā)中斷函數(shù)的響應(yīng)。8/*brief光
9、耦信號觸發(fā)中斷函數(shù)響應(yīng),通過主頻和主頻計數(shù)差值換算出電機的轉(zhuǎn)速paramnullreturn null*/前次和當前的系統(tǒng)計數(shù)值用于鑒別中斷響應(yīng)狀況u32_t old_tick , cur_tick= 0;/ 計算前后兩次中斷的時間間隔,用于計算電機葉輪的頻率u32_t tick_delay = 0;/前次和當前的電機葉輪的頻率float cur_frequency , old_frequency= 0.0; void Timer3AHandler(void)unsigned long ulsus;/中斷標志位ulsus = TimerSus(TIMER3_BASE, TIMER_CAPA_M
10、ATCH);if(ulsus = TIMER_CAPA_MATCH)/ 設(shè)置計數(shù)范圍為0 x40X0 TimerLoadSet(TIMER3_BASE, TIMER_A, 0 x4); TimerMatchSet(TIMER3_BASE, TIMER_A, 0 x0);/中斷處理函數(shù)以響應(yīng)觸發(fā)事件TimerRegister(TIMER3_BASE, TIMER_A, Timer3AHandler);/ 系統(tǒng)總中斷開MasterEnable();/ 時鐘中斷允許,中斷事件為Capture模式中邊沿觸發(fā),計數(shù)到達預(yù)設(shè)值TimerEnable(TIMER3_BASE, TIMER_CAPA_MATC
11、H);/ NVIC中允許定時器A模塊中斷 Enable(_TIMER3A);/ 啟動捕捉模塊TimerEnable(TIMER3_BASE, TIMER_A);得到了兩次中斷之間的系統(tǒng)計數(shù)值,變可以根據(jù)主頻來換算出電機的運轉(zhuǎn)頻率,如下所示:剩下的只要通過LCD 的驅(qū)動函數(shù)將換算得到的頻率值顯示在 LCD 即可。數(shù)據(jù)測試與分析A. 步進電機的控制實驗內(nèi)容雙極永磁步進電機的轉(zhuǎn)動控制,不同的通電控制方式可以產(chǎn)生不同的步距角(單拍和雙拍);步進電機的反轉(zhuǎn)9/ 系統(tǒng)主頻 除以兩次中斷的系統(tǒng)計數(shù)值 = 頻率cur_frequency = (1.0*TIVA_MAIN_FREQUENCY) / tick_d
12、elay;/ 獲取當前系統(tǒng)時鐘值cur_tick = ROM_SysTickValueGet();/ 清除中斷標志位TimerClear(TIMER3_BASE, ulsus);/ 因為減計數(shù)會自動停止,所以需要重新啟用計數(shù)模塊TimerEnable(TIMER3_BASE, TIMER_A);/ 得到響應(yīng)兩次中斷之間的系統(tǒng)時間計數(shù)差值if(old_tick cur_tick)tick_delay = old_tick - cur_tick;/保留本次中斷結(jié)束時的系統(tǒng)計數(shù)值,用于下次統(tǒng)計時間差的依據(jù) old_tick = cur_tick;資源準備等效原理圖及電路分析1011流程圖及關(guān)鍵代碼分
13、析流程圖步進電機的驅(qū)動程序和直流電機的驅(qū)動最大的差距在于直流電機只需一路,而步進需要四路信號。流程如下圖所示:121程序啟動21233是4程序終止圖x、步進電機模塊流程圖513信號執(zhí)行一個周期即正好步進電機轉(zhuǎn)動了一圈。所以電機的轉(zhuǎn)數(shù)可以通過 信號的周期轉(zhuǎn)化為電機的實際轉(zhuǎn)速。滾輪的位置通過電壓ADC采樣傳輸?shù)絋IVA中,根據(jù)滾輪的ADC采樣值調(diào)節(jié)驅(qū)動交流電機的信號的周期,可以改變電機的旋轉(zhuǎn)速度。LCD顯示字符使能PB0置液晶上顯示“SPEED:(r/s)”表示直流電機的旋轉(zhuǎn)速度。初始化滾輪初始化液晶初始化步進電機的驅(qū)動需要四組信號配合才能完成。初始化TIVA LaunchPad的PB7、PB4、
14、PF1、PF2分別輸出一組 。 時序如下所示:PB71100110011001100PB40011001100110011PF10100010001000100PF20001000100010001他們的周期一致,其中PB7、PB4占空比50%而PF1、 PF2占空比為25%。而且每組信號間的相位偏移都為 25%。程序主循環(huán)4顯示電機轉(zhuǎn)數(shù) 5否結(jié)束系統(tǒng)延時滾輪ADC值調(diào)節(jié)周期滾輪ADC采樣值通過PE0端口,將PE0的外設(shè)設(shè)置為ADC。獲取滾輪的ADC值后可以調(diào)節(jié)的周期大 小。(配置詳細內(nèi)容參看第三章相關(guān)內(nèi)容)關(guān)鍵代碼分析1、降低主頻:由于步進電機的驅(qū)動信號頻率一般都在幾十的水平上,而Tiva的
15、常用工作頻率在采用系統(tǒng)時鐘分頻的方式降低Tiva主頻12.5MHz。所以在使用計時器做波的生成時,來產(chǎn)生頻率較低的波形。2、四路波的初始化:14/* brief初始化獲取四組脈寬調(diào)制信號用于步進電機的驅(qū)動*|/TIVA|*M4PB7|-M01-Channel 1/M4PB4|-M02-Channel 2*M4PF1|-M15-Channel 3*M4PF2|-M16-Channel 4/|*/ #define PERIOD_TIME0 x1Fvoid Init_()/ 設(shè)置時鐘和系統(tǒng)時鐘一致SysCtlClockSet(SYSCTL_DIV_1);/ 使能外設(shè)SysCtlPeripheralE
16、nable(SYSCTL_PERIPH_0);SysCtlPeripheralEnable(SYSCTL_PERIPH_1);/ 使能外設(shè)端口 SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);/設(shè)置對應(yīng)管腳的信號功能GPIOPinConfigure(GPIO_PB7_M01);GPIOPinConfigure(GPIO_PB4_M02);/ 系統(tǒng)時鐘設(shè)置SysCtlClockSet(SYSCTL_SYSDIV_64 | SYSCTL_USE_PLL | SYSCTL
17、_OSC_MAIN |SYSCTL_XTAL_16MHZ);15GPIOPinConfigure(GPIO_PF1_M15);GPIOPinConfigure(GPIO_PF2_M16);/設(shè)置信號端口GPIOPype(GPIO_PORTB_BASE, GPIO_PIN_4 | GPIO_PIN_7);GPIOPype(GPIO_PORTF_BASE, GPIO_PIN_1 | GPIO_PIN_2);/配置GenConfigure(0_BASE,_GEN_0, _GEN_MODE_UP_DOWN |_GEN_MODE_NO_SYNC);GenConfigure(0_BASE,_GEN_1,
18、_GEN_MODE_UP_DOWN |_GEN_MODE_NO_SYNC);GenConfigure(1_BASE,_GEN_2, _GEN_MODE_UP_DOWN |_GEN_MODE_NO_SYNC);GenConfigure(1_BASE,_GEN_3, _GEN_MODE_UP_DOWN |_GEN_MODE_NO_SYNC);/設(shè)置信號周期GenPeriodSet(0_BASE,_GEN_0, PERIOD_TIME);GenPeriodSet(0_BASE, _GEN_1, PERIOD_TIME);GenPeriodSet(1_BASE,_GEN_2, PERIOD_TIME)
19、;GenPeriodSet(1_BASE,_GEN_3, PERIOD_TIME);/設(shè)置信號占空比PulseWidthSet(0_BASE, _OUT_1, PERIOD_TIME / 2);PulseWidthSet(0_BASE, _OUT_2, PERIOD_TIME / 2);PulseWidthSet(1_BASE, _OUT_5, PERIOD_TIME / 4);PulseWidthSet(1_BASE, _OUT_6, PERIOD_TIME / 4);/ 使能輸出端口OutputSe(0_BASE, _OUT_1_BIT | _OUT_2_BIT , true); Outp
20、utSe(1_BASE, _OUT_5_BIT | _OUT_6_BIT, true);/ 使能GenEnable(0_BASE, _GEN_0);GenEnable(0_BASE, _GEN_1);GenEnable(1_BASE, _GEN_2);GenEnable(1_BASE, _GEN_3);/ 延時同步四路信號SyncTimeBase(0_BASE,_GEN_1_BIT);SysCtlDelay(PERIOD_TIME / 2) );SyncTimeBase(0_BASE,_GEN_0_BIT);SysCtlDelay(PERIOD_TIME * 7/ 8);完成了的初始化后,步進
21、電機便能轉(zhuǎn)動了。3、步進電機轉(zhuǎn)速滾輪調(diào)節(jié):在程序的出循環(huán)中假如滾輪調(diào)節(jié)周期的邏輯可調(diào)節(jié)電機的轉(zhuǎn)動速度。主要代碼如下所示:16/*while(1)ADCProsorTrigger(ADC_BASE, SequenceNum);/ 等待完成取樣轉(zhuǎn)換while(!ADCSus(ADC_BASE, SequenceNum, false)/ 清楚ADC中斷標志位ADCClear(ADC_BASE, SequenceNum);/ADC采樣值A(chǔ)equenceDataGet(ADC_BASE, SequenceNum, pui32ADC0Value);/ 當前周期轉(zhuǎn)化公式cur_Period = MIN_PE
22、RIOD + (MAX_PERIOD - MIN_PERIOD) *pui32ADC0Value0) / 4096;/ADC的變化率大小 u32_t temp = 0;if(cur_Period old_Period)temp = cur_Period - old_Period;elsetemp = old_Period - cur_Period;/ ADC 實現(xiàn)16級的有極變化,if(temp 0 x)/ 調(diào)整周期SyncTimeBase(1_BASE,_GEN_3_BIT); SysCtlDelay(PERIOD_TIME / 2);SyncTimeBase(1_BASE,_GEN_2_BIT);B. 高亮 LED 的驅(qū)動與電流檢測實驗內(nèi)容應(yīng)用電機控制的 H 橋式電路,輔以電流檢測電路和單片機反饋控制可以形成一個數(shù)字電源。應(yīng)用這個電源組成一個高亮 LED 的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 吉林外國語大學《金融風險管理》2023-2024學年第二學期期末試卷
- 福建對外經(jīng)濟貿(mào)易職業(yè)技術(shù)學院《生物藥劑學與藥物動力學實驗》2023-2024學年第二學期期末試卷
- 蘭州資源環(huán)境職業(yè)技術(shù)大學《化學課程標準與教材研究》2023-2024學年第二學期期末試卷
- 廣東環(huán)境保護工程職業(yè)學院《果樹栽培學各論》2023-2024學年第二學期期末試卷
- 珠海格力職業(yè)學院《汽輪機原理及設(shè)備》2023-2024學年第二學期期末試卷
- 江西陶瓷工藝美術(shù)職業(yè)技術(shù)學院《基礎(chǔ)工程道橋》2023-2024學年第二學期期末試卷
- 云南國防工業(yè)職業(yè)技術(shù)學院《運營管理前沿S1》2023-2024學年第二學期期末試卷
- 沈陽師范大學《臨床藥理學B》2023-2024學年第二學期期末試卷
- 浙江舟山群島新區(qū)旅游與健康職業(yè)學院《畫法幾何與土木工程制圖》2023-2024學年第二學期期末試卷
- 2025年度金融衍生品財務(wù)擔保合同賬務(wù)風險控制協(xié)議
- 商業(yè)銀行的風險審計與內(nèi)部控制
- 2024項目管理人員安全培訓考試題及參考答案AB卷
- 2025年與商場合作協(xié)議樣本(5篇)
- 2025年安徽碳鑫科技有限公司招聘筆試參考題庫含答案解析
- 2025年寒假實踐特色作業(yè)設(shè)計模板
- 2024年福建漳州人才發(fā)展集團有限公司招聘筆試參考題庫附帶答案詳解
- JTGT F20-2015 公路路面基層施工技術(shù)細則
- 六年級上第二單元知識結(jié)構(gòu)圖
- 溢流堰穩(wěn)定計算
- 馬曉宏_《法語》_第一冊復習(課堂PPT)
- 道路環(huán)衛(wèi)清掃保潔項目應(yīng)急處置預(yù)案
評論
0/150
提交評論