步進電機控制_第1頁
步進電機控制_第2頁
步進電機控制_第3頁
步進電機控制_第4頁
步進電機控制_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

嵌入式技術應用課程設計嵌入式技術應用課程設計課題:基于STM32的28BYJ步進電機的控制專業(yè):班級:學號:姓名:指導教師:設計日期:成績:重慶城市科技學院電氣工程與智能制造學院重慶城市科技學院電氣工程與智能制造學院課程設計目錄.設計目的(1)掌握STM32F103C8T6單片機最小系統(tǒng)的設計;(2)掌握硬件電路的設計方法;(3)掌握步進電機的驅(qū)動方法;(4)掌握OLED的驅(qū)動;(5)掌握STM32的編程方式。2.設計要求基于STM32F13C8T6單片機設計制作一個步進電機控制器,具體要求如下:(1)利用STM32(定時器PWM或者IO口)來驅(qū)動步進電機。(2)通過按鍵來控制電機的正反轉和轉速。(3)在0.96寸OLED上顯示正反轉信息和轉速。3.設計的具體實現(xiàn)3.128BYJ步進電機28BYJ步進電機是將電脈沖控制信號轉變?yōu)榻俏灰苹蚓€位移的一種常用的數(shù)字控制執(zhí)行元件,又稱為脈沖電機。在驅(qū)動電源的作用下,步進電機受到脈沖的控制,其轉子的角位移量和速度嚴格地與輸入脈沖的數(shù)量和脈沖頻率成正比。步進電機每接收一個電脈沖,轉子就轉過一個相應的角度(步距角)。**改變通電順序可改變步進電動機的旋轉方向;改變通電頻率可改變步進電動機的轉速。**因此,通過控制輸入電脈沖的數(shù)目、頻率及電動機繞組的通電順序就可以獲得所需要的轉角、轉速及轉向,利用單片機就可以很容易實現(xiàn)步進電機的開環(huán)數(shù)字控制。傳統(tǒng)的步進電機控制方法是由觸發(fā)器產(chǎn)生控制脈沖來進行控制的,但此種控制方法工作方式單一而且難于實現(xiàn)人機交互,當步進電機的參數(shù)發(fā)生變化時,需要重新進行控制器的設計。因此適合于單片機控制,單片機通過向步進電機驅(qū)動電路發(fā)送控制信號就能實現(xiàn)對步進電機的控制。3.2PWM調(diào)速方法在步進電機控制系統(tǒng)中可以通過輸人PWM波的方法來對步進電動的運動進行控制。PWM波的產(chǎn)生可以通過時鐘頻率、自動重裝值等參數(shù)進行設置,從而調(diào)節(jié)PWM波的占空比和輸出頻率。脈沖寬度調(diào)制(PWM),是英文“PulseWidthModulation”的縮寫,簡稱脈寬調(diào)制,是利用微處理器的數(shù)字輸出來對模擬電路進行控制的一種非常有效的技術。簡單一點,就是對脈沖寬度的控制,PWM原理如圖:假定定時器工作在向上計數(shù)PWM模式,且當CNT小于CCRx時,輸出0,當CNT大于等于CCRx時輸出1。那么就可以得到如上的PWM示意圖:當CNT值小于CCRx的時候,IO輸出低電平(0),當CNT值大于等于CCRx的時候,IO輸出高電平(1),當CNT達到ARR值的時候,重新歸零,然后重新向上計數(shù),依次循環(huán)。改變CCRx的值,就可以改變PWM輸出的占空比,改變ARR的值,就可以改變PWM輸出的頻率,這就是PWM輸出的原理。,通過控制脈沖占空比來改變電機的電樞電壓.改變占空比的方法有3種:(1)定寬調(diào)頻法,這種方法是保持t1不變,只改變t2,這樣周期(T或頻率)也隨之改變;(2)調(diào)寬調(diào)頻法,保持t1不變,而改變t2,這樣也使周期T(或頻率)改變;(3)定頻調(diào)寬法,這種方法是使周期(T或頻率)不變,而同時改變t1和t2.由于前兩利,方法都改變了周期(或頻率),當控制頻率與系統(tǒng)的固有頻率接近時,將會引起振蕩,用的比較少,因此本系統(tǒng)用的是定頻調(diào)寬法.在脈沖作用下,當電機通電時,速度增加.電機斷電時,速度逐漸減小.只要按一定規(guī)律,改變通斷電時間,即可實現(xiàn)對電機的轉速控制。4.系統(tǒng)設計4.1系統(tǒng)電路圖通過對STM32F4單片機編寫程序?qū)崿F(xiàn)對步進電機的控制,并且可以利用計算機和單片機的串口通信,接收到單片機所反饋回來的控制數(shù)據(jù),包括:**步進電機的正向轉動、反向轉動、步進電機的定位功能以及調(diào)速功能。**要實現(xiàn)上述功能需要對STM32F4的以下模塊進行設置,主要包括:串口通信模塊、按鍵輸入模塊、電機驅(qū)動模塊三大部分。下面就以重要模塊的實現(xiàn)過程來進行詳細的論述。4.2串口通信模塊串口作為MCU的重要外部接口,同時也是軟件開發(fā)重要的調(diào)試手段,其重要性不言而喻。現(xiàn)在基本上所有的MCU都會帶有串口,STM32自然也不例外。STM32F4的串口資源相當豐富的,功能也相當強勁。ALIENTEK探索者STM32F4開發(fā)板所使用的STM32F407ZGT6最多可提供6路串口,有分數(shù)波特率發(fā)生器、支持同步單線通信和半雙工單線通訊、支持LIN、支持調(diào)制解調(diào)器操作、智能卡協(xié)議和IrDASIRENDEC規(guī)范、具有DMA等。處理器與外部設備通信的兩種方式:1、并行通信:-傳輸原理:數(shù)據(jù)各個位同時傳輸。-優(yōu)點:速度快-缺點:占用引腳資源多2、串行通信:-傳輸原理:數(shù)據(jù)按位順序傳輸。-優(yōu)點:占用引腳資源少-缺點:速度相對較慢本課設選用串行通信。串行通信按照數(shù)據(jù)傳送方向,分為:(1)單工:數(shù)據(jù)傳輸只支持數(shù)據(jù)在一個方向上傳輸(2)半雙工:允許數(shù)據(jù)在兩個方向上傳輸,但是,在某一時刻,只允許數(shù)據(jù)在一個方向上傳輸,它實際上是一種切換方向的單工通信;(3)全雙工:允許數(shù)據(jù)同時在兩個方向上傳輸,因此,全雙工通信是兩個單工通信方式的結合,它要求發(fā)送設備和接收設備都有獨立的接收和發(fā)送能力。串口配置的一般步驟如下:①串口時鐘使能:RCC_APBxPeriphClockCmd();GPIO時鐘使能:RCC_AHB1PeriphClockCmd();②引腳復用映射:GPIO_PinAFConfig();③GPIO端口模式設置:GPIO_Init();模式設置為GPIO_Mode_AF④串口參數(shù)初始化:USART_Init();⑤開啟中斷并且初始化NVIC(如果需要開啟中斷才需要這個步驟)NVIC_Init();USART_ITConfig();⑥使能串口:USART_Cmd();⑦編寫中斷處理函數(shù):USARTx_IRQHandler();⑧串口數(shù)據(jù)收發(fā):voidUSART_SendData();//發(fā)送數(shù)據(jù)到串口,DRuint16_tUSART_ReceiveData();//接受數(shù)據(jù),從DR讀取接受到的數(shù)據(jù)⑨串口傳輸狀態(tài)獲取:FlagStatusUSART_GetFlagStatus();voidUSART_ClearITPendingBit();部分代碼如下:4.3按鍵輸入模塊STM32F4開發(fā)板上的按鍵KEY0連接在PE4上、KEY1連接在PE3上、KEY2連接在PE2上、KEY_UP連接在PA0上。如圖所示:在此次實驗中,我們設置按下KEY-UP,電機以所設定頻率回到絕對原點;按下KEY0,電機以所設定頻率順時針轉動;按下KEY1,電機以所設定頻率逆時針轉動。下面給出實現(xiàn)按鍵輸入的一般步驟:①使能按鍵對應IO口時鐘。調(diào)用函數(shù):RCC_AHB1PeriphClockCmd();②初始化IO模式:上拉/下拉輸入。調(diào)用函數(shù):GPIO_Init();③掃描IO口電平(庫函數(shù)/寄存器/位操作)。相關代碼如下:4.3電機驅(qū)動模塊驅(qū)動器與STM32F4連接如下圖:代碼需要用到的4個主要函數(shù)如下:voidDriver_Init(void);//驅(qū)動器初始化voidTIM8_OPM_RCR_Init(u16arr,u16psc);//TIM8_CH2初始化單脈沖+重復計數(shù)模式voidLocate_Rle(longnum,u32frequency,DIR_Typedir)//相對定位函數(shù)voidLocate_Abs(longnum,u32frequency);/絕對定位函數(shù)1)驅(qū)動器初始化函數(shù),主要就是初始化與驅(qū)動器ENA+,DIR+相連的2個IO為推挽輸出。2)TIM8_CH2初始化,此例程產(chǎn)生脈沖所使用的定時器均是TIM8_CH2(PC7),定時器工作在單脈沖+重復計數(shù)模式,需要注意的是定時器必須初始化為1MHz計數(shù)頻率。3)相對定位函數(shù):在步進電機當前位置基礎上順時針(CW)或者逆時針(CCW)走num個脈沖,此函數(shù)帶方向控制,DIR_Type是driver.h下聲明的一個枚舉類型,用于設置電機旋轉方向,參數(shù)dir=CW,電機順時針旋轉;dir=CCW,電機逆時針旋轉。絕對定位函數(shù):步進電機按設定頻率轉動到設置的絕對位置,開發(fā)板上電和復位時,當前位置為0,電機的當前位置用一個long型變量current_pos指示。在current_pos=0的基礎上順時針轉動后current_pos為正,否則為負。5)此例程配置了usmart函數(shù)和按鍵函數(shù),可以通過按鍵或者串口調(diào)用相對定位函數(shù)和絕對定位函數(shù)控制驅(qū)動器,從而控制步進電機。5.調(diào)試設置驅(qū)動器細分和電流,完成硬件接線,然后給開發(fā)板上電(USB232接口),打開XCOM調(diào)試助手,找到對應COM,設置波特率115200,1位停止位,8位數(shù)據(jù)位,無校驗,勾上發(fā)送新行,然后打開串口,最后給驅(qū)動器上電。按下KEY-UP,電機以500Hz頻率回到絕對原點;按下KEY0,電機以500Hz頻率順時針走200個脈沖;按下KEY1,電機以500Hz頻率逆時針走400個脈沖;依次按下KEY_UP,KEY0,KEY1,串口打印的情況如下:點擊發(fā)送條目后邊的數(shù)字就可調(diào)用該函數(shù),這兒的相對的定位函數(shù)Locate_Rle最后一個參數(shù)用于設置電機旋轉方向的,0(CCW)表示逆時針方向,1(CW)表示順時針方向,實驗時,如果電機旋轉方向和設置方向相反,只需更改driver.h下的CW=0,CCW=1;每調(diào)用一次函數(shù),串口打印當前的位置。然后我們依次調(diào)用這4個函數(shù),根據(jù)串口的打印,可以看到當前位置的變化情況,如圖所示。6.總結本文介紹了利用單片機控制基于STM32F4芯片的28BYJ步進電機定位控制系統(tǒng)的整體設計思路以及用pwm實現(xiàn)對步進電機控制的脈

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論