stm32直流電機控制程序_第1頁
已閱讀1頁,還剩2頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1STM32直流減速電機控制(一)在直流減速電機控制中,最常用的方法就是通過PWM來控制直流電機的轉速。在控制小車走直線的過程中,需要兩者的轉速一置(如果要走得很直,還需要在短時間內保證兩者的行程大致相當,這可以用PID算法來控制,以后的文章中會專門敘述)。因此,在檢測到兩者轉速不一樣時,需要動態(tài)調整其中一個或兩個輪子的PWM的點空比(簡單點的就以一個輪為基準,調整另外一個輪子即可;如果以一個固定的標準的話,需要調整兩個輪子的PWM占空

2、比)。程序第一步:設置GPIO,略(輸出PWM的管腳用Mode_AF_PP即可)程序第二步:設置定時器,(保證產生兩路PWM即可,我用的是TIM4)voidTIM4_Configuration(void)TIM_TimeBaseInitTypeDefTIM_TimeBaseInitStructureTIM_OCInitTypeDefTIM_OCInitStructure時間基初始化TIM_TimeBaseInitStructure.TI

3、M_Period=14418K144=125Hz這個是電機PWM的頻率TIM_TimeBaseInitStructure.TIM_Prescaler=4000720000004000=18KTIM_TimeBaseInitStructure.TIM_ClockDivision=TIM_CKD_DIV1TIM_TimeBaseInitStructure.TIM_CounterMode=TIM_CounterMode_UpTIM_TimeB

4、aseInitStructure.TIM_RepetitionCounter=0x0000TIM_TimeBaseInit(TIM4輸出比較模式設置用于4路PWM輸出TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM2輸出PWMTIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable使能正向通道TIM_OCInitStructure.TI

5、M_OutputNState=TIM_OutputState_Disable失能反向通道TIM_OCInitStructure.TIM_Pulse=PWM_L左輪DIR的占空比TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_Low輸出極性為低電平TIM_OCInitStructure.TIM_OCNPolarity=TIM_OCPolarity_High互補輸出極性為高電平TIM_OC

6、InitStructure.TIM_OCIdleState=TIM_OCIdleState_SetTIM_OCInitStructure.TIM_OCNIdleState=TIM_OCNIdleState_ResetTIM_OC1Init(TIM4PWM_L初始化TIM_OC1PreloadConfig(TIM4TIM_OCPreload_Disable)改變點空比后立即產生效應TIM_OCInitStructure.TIM_Pulse

7、=PWM_R左輪PWM的占空比TIM_OC2Init(TIM4PWM_R初始化TIM_OC2PreloadConfig(TIM4TIM_OCPreload_Disable)改變點空比后立即產生效應3externvu16CCR1_Valexternvu16CCR2_Valexternvu16CCR3_Valexternvu16CCR4_ValvoidTIM2_IRQHler(void)TIM2_CH1togglingwithfrequen

8、cy=183.1Hzif(TIM_GetITStatus(TIM2TIM_IT_CC1)!=RESET)TIM_ClearITPendingBit(TIM2TIM_IT_CC1)capture=TIM_GetCapture1(TIM2)TIM_SetCompare1(TIM2captureCCR1_Val)TIM2_CH2togglingwithfrequency=366.2Hzif(TIM_GetITStatus(TIM2TIM_IT

9、_CC2)!=RESET)TIM_ClearITPendingBit(TIM2TIM_IT_CC2)capture=TIM_GetCapture2(TIM2)TIM_SetCompare2(TIM2captureCCR2_Val)TIM2_CH3togglingwithfrequency=732.4Hzif(TIM_GetITStatus(TIM2TIM_IT_CC3)!=RESET)TIM_ClearITPendingBit(TIM2

10、TIM_IT_CC3)capture=TIM_GetCapture3(TIM2)TIM_SetCompare3(TIM2captureCCR3_Val)TIM2_CH4togglingwithfrequency=1464.8Hzif(TIM_GetITStatus(TIM2TIM_IT_CC4)!=RESET)TIM_ClearITPendingBit(TIM2TIM_IT_CC4)capture=TIM_GetCapture4(TIM

溫馨提示

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

評論

0/150

提交評論