標(biāo)題: STM32簡(jiǎn)易直流電機(jī)速度環(huán)PID閉環(huán)控制源碼 [打印本頁(yè)]
作者: 孤寂的風(fēng) 時(shí)間: 2017-12-19 19:16
標(biāo)題: STM32簡(jiǎn)易直流電機(jī)速度環(huán)PID閉環(huán)控制源碼
基于STM32開(kāi)發(fā)簡(jiǎn)易運(yùn)動(dòng)控制卡
開(kāi)發(fā)者:JasonLin
STM32定時(shí)器功能介紹
定時(shí)器 | 計(jì)數(shù)分辨率 | 計(jì)數(shù)類型 | 預(yù)分頻系數(shù) | DMA請(qǐng)求 | 捕獲/比較通道 | 編碼器 接口 | PWM 生成 |
TIM1 | 16位 | up/down /both | 1-65536 | yes | 4 | yes | yes |
TIM8 | 16位 | up/down /both | 1-65536 | yes | 4 | yes | yes |
TIM2 | 16位 | up/down /both | 1-65536 | yes | 4 | yes | yes |
TIM3 | 16位 | up/down/ both | 1-65536 | yes | 4 | yes | yes |
TIM4 | 16位 | up/down /both | 1-65536 | yes | 4 | yes | yes |
TIM5 | 16位 | up/down /both | 1-65536 | yes | 4 | yes | yes |
TIM6 | 16位 | up | 1-65536 | yes | 0 | no | no |
TIM7 | 16位 | up | 1-65536 | yes | 0 | no | no |
TIM1和TIM8為高級(jí)定時(shí)器
TIM6和TIM7為基本定時(shí)器
TIM2、TIM3、TIM4和TIM5為通用定時(shí)器
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
STM32定時(shí)器的通道/引腳分配
定時(shí)器 | TIM1 | TIM2 | TIM3 | TIM4 | TIM5 | TIM8 |
CH1引腳 | PA8 | PA0 | PA6 | PB6 | PA0 | PC6 |
CH2引腳 | PA9 | PA1 | PA7 | PB7 | PA1 | PC7 |
CH3引腳 | PA10 | PA2 | PB0 | PB8 | PA2 | PC8 |
CH4引腳 | PA11 | PA3 | PB1 | PB9 | PA3 | PC9 |
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
STM32定時(shí)器的通道/引腳重映射
file:///Z:\TEMP\msohtmlclip1\01\clip_image002.jpg
file:///Z:\TEMP\msohtmlclip1\01\clip_image004.jpg
file:///Z:\TEMP\msohtmlclip1\01\clip_image006.jpg
file:///Z:\TEMP\msohtmlclip1\01\clip_image008.jpg
file:///Z:\TEMP\msohtmlclip1\01\clip_image010.jpg
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
TIM1和TIM8定時(shí)器的功能包括:
● 16位向上、向下、向上/下自動(dòng)裝載計(jì)數(shù)器
● 16位可編程(可以實(shí)時(shí)修改)預(yù)分頻器,計(jì)數(shù)器時(shí)鐘頻率的分頻系數(shù)為1~65535之間的任意數(shù)值
● 4個(gè)獨(dú)立通道: ─輸入捕獲 ─ 輸出比較 ─ PWM生成(邊緣或中間對(duì)齊模式) ─ 單脈沖模式輸出
● 死區(qū)時(shí)間可編程的互補(bǔ)輸出
● 使用外部信號(hào)控制定時(shí)器和定時(shí)器互聯(lián)的同步電路
● 允許在指定數(shù)目的計(jì)數(shù)器周期之后更新定時(shí)器寄存器的重復(fù)計(jì)數(shù)器
● 剎車(chē)輸入信號(hào)可以將定時(shí)器輸出信號(hào)置于復(fù)位狀態(tài)或者一個(gè)已知狀態(tài)
● 如下事件發(fā)生時(shí)產(chǎn)生中斷/DMA: ─更新:計(jì)數(shù)器向上溢出/向下溢出,計(jì)數(shù)器初始化(通過(guò)軟件或者內(nèi)部/外部觸發(fā)) ─ 觸發(fā)事件(計(jì)數(shù)器啟動(dòng)、停止、初始化或者由內(nèi)部/外部觸發(fā)計(jì)數(shù)) ─ 輸入捕獲 ─ 輸出比較 ─ 剎車(chē)信號(hào)輸入
● 支持針對(duì)定位的增量(正交)編碼器和霍爾傳感器電路
● 觸發(fā)輸入作為外部時(shí)鐘或者按周期的電流管理
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
TIM2、TIM3、TIM4和TIM5定時(shí)器功能包括:
● 16位向上、向下、向上/向下自動(dòng)裝載計(jì)數(shù)器
● 16位可編程(可以實(shí)時(shí)修改)預(yù)分頻器,計(jì)數(shù)器時(shí)鐘頻率的分頻系數(shù)為1~65536之間的任意數(shù)值
● 4個(gè)獨(dú)立通道: ─ 輸入捕獲 ─ 輸出比較 ─ PWM生成(邊緣或中間對(duì)齊模式)─ 單脈沖模式輸出
● 使用外部信號(hào)控制定時(shí)器和定時(shí)器互連的同步電路
● 如下事件發(fā)生時(shí)產(chǎn)生中斷/DMA: ─ 更新:計(jì)數(shù)器向上溢出/向下溢出,計(jì)數(shù)器初始化(通過(guò)軟件或者內(nèi)部/外部觸發(fā)) ─ 觸發(fā)事件(計(jì)數(shù)器啟動(dòng)、停止、初始化或者由內(nèi)部/外部觸發(fā)計(jì)數(shù)) ─ 輸入捕獲 ─ 輸出比較
● 支持針對(duì)定位的增量(正交)編碼器和霍爾傳感器電路
● 觸發(fā)輸入作為外部時(shí)鐘或者按周期的電流管理 為1~65536之間的任意數(shù)值
● 使用外部信號(hào)控制定時(shí)器和定時(shí)器互連的同步電路
● 觸發(fā)輸入作為外部時(shí)鐘或者按周期的電流管理
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
TIM6和TIM7定時(shí)器的主要功能包括:
● 16位自動(dòng)重裝載累加計(jì)數(shù)器
● 16位可編程(可實(shí)時(shí)修改)預(yù)分頻器,用于對(duì)輸入的時(shí)鐘按系數(shù)為1~65536之間的任意數(shù)值分頻
● 觸發(fā)DAC的同步電路 注:此項(xiàng)是TIM6/7獨(dú)有功能
● 在更新事件(計(jì)數(shù)器溢出)時(shí)產(chǎn)生中斷/DMA請(qǐng)求
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
開(kāi)發(fā)目標(biāo)1:TIM1的4個(gè)通道生成PWM,CH1—PWM1 CH2—PWM2
CH3—PWM3 CH4—PWM4
TIM8的4個(gè)通道生成PWM,CH1—PWM5 CH2—PWM6
CH3—PWM7 CH4—PWM8
注:PWM1—PWM2 為一組,控制直流減速電機(jī)1
PWM3—PWM4 為一組,控制直流減速電機(jī)2
PWM5—PWM6 為一組,控制直流減速電機(jī)3
PWM7—PWM8 為一組,控制直流減速電機(jī)4
(PWM1、PWM3、PWM5、PWM7作為電機(jī)正向脈沖輸出,占空比為萬(wàn)分比)
(PWM2、PWM4、PWM6、PWM8作為電機(jī)反向脈沖輸出,占空比為萬(wàn)分比)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
開(kāi)發(fā)目標(biāo)2:TIM7作為定時(shí)器中斷,產(chǎn)生固定的時(shí)間間隔,便于計(jì)算電機(jī)及落地碼盤(pán)的速度(單位時(shí)間間隔脈沖增量)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
開(kāi)發(fā)目標(biāo)3:TIM2、TIM3、TIM4、TIM5作為編碼器接口,讀取編碼器的旋轉(zhuǎn)產(chǎn)生的脈沖數(shù)
TIM2的CH1作為編碼器1的A相的輸入,CH2作為編碼器1的B相的輸入
TIM3的CH1作為編碼器2的A相的輸入,CH2作為編碼器2的B相的輸入
TIM4的CH1作為編碼器3的A相的輸入,CH2作為編碼器3的B相的輸入
TIM5的CH1作為編碼器4的A相的輸入,CH2作為編碼器4的B相的輸入
(由于TIM2和TIM5的CH1和CH2共用引腳PA0和PA1,所以需要把TIM2
的CH1和CH2重映射到引腳PA15和PB3)
(PA15和PB3是JTAG接口中的兩只引腳 ,重映射前先把JTAG口關(guān)閉
GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE)//關(guān)閉JTAG
GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, DISABLE)//打開(kāi)JTAG
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable ,ENABLE);//關(guān)閉JTAG
同時(shí)打開(kāi)SWD)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
開(kāi)發(fā)目標(biāo)4:用2.3寸TFT液晶顯示屏顯示電機(jī)或碼盤(pán)的速度(單位時(shí)間間隔的脈沖增量)和碼盤(pán)脈沖總數(shù)
未完待續(xù)、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
電機(jī)轉(zhuǎn)速控制
單片機(jī)源程序如下:
- /***********************************************************************************
- Author :JasonLin
- version :V1.1
- Date :2014/8/2
- Description:Based on the STM32 Micro Control Unit design simple movement controller
- ************************************************************************************/
- #include "stm32f10x.h"
- #include "stm32f10x_conf.h"
- #include "UserConfiguration.h"
- #include "UserFunction.h"
- #include "UserDelay.h"
- #include "lcd.h"
- #include "led.h"
- extern s32 CNT2,CNT3,CNT4,CNT5,V2,V3,V4,V5,rcnt2,rcnt3,rcnt4,rcnt5;
- int main(void)
- {
- SystemInit();
- UserNVIC_Configuration();
- UserTIM_Configuration();
- UserLed_Configuration();
- UserDelay_Configuration();
- while(1)
- {
- delay_ms(200);LED1=!LED1;delay_ms(200);//LED1提示系統(tǒng)正常運(yùn)行
- }
-
-
-
- }
復(fù)制代碼
所有資料51hei提供下載:
基于戰(zhàn)艦STM32開(kāi)發(fā)簡(jiǎn)易直流電機(jī)速度環(huán)PID閉環(huán)控制.rar
(477.73 KB, 下載次數(shù): 865)
2017-12-19 21:57 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
作者: 飛鳥(niǎo)游魚(yú) 時(shí)間: 2018-5-21 19:38
好東西,沒(méi)有人評(píng)論下?
作者: 年少有點(diǎn)狂 時(shí)間: 2018-5-22 23:04
好東西 下來(lái)學(xué)習(xí)玩玩
作者: mick32 時(shí)間: 2018-5-26 04:53
Display the speed of the motor or encoder would be nice
作者: lxj199610 時(shí)間: 2018-5-26 19:41
厲害了。流明
作者: wobuzhuchele 時(shí)間: 2018-6-2 17:16
學(xué)習(xí)啦 頂一個(gè)個(gè)
作者: wenqian 時(shí)間: 2018-6-21 10:36
很厲害哦 學(xué)習(xí)了
作者: tianxiaodan 時(shí)間: 2018-7-20 16:38
值得參考
作者: tianxiaodan 時(shí)間: 2018-7-20 16:38
值得參考
作者: shuze 時(shí)間: 2018-7-26 00:10
已下載,謝謝
作者: 278925356 時(shí)間: 2018-8-3 14:44
好東西,我來(lái)好評(píng)
作者: 赫赫赫茲 時(shí)間: 2018-8-6 22:00
感謝分享,下下來(lái)看看
作者: 芝麻 時(shí)間: 2018-8-8 11:56
感謝分享,下下來(lái)看看
作者: assassin6279 時(shí)間: 2018-8-8 13:58
想知道樓主PID怎么調(diào)的 最近調(diào)四軸的PID調(diào)得想死
作者: 照海倚天 時(shí)間: 2018-8-8 16:16
贊 贊 贊 樓主厲害
作者: xsj1877578806 時(shí)間: 2018-8-8 19:04
謝謝樓主分享
作者: wonuibi2018 時(shí)間: 2018-8-18 11:36
厲害哦 學(xué)習(xí)了
作者: LINKEEE 時(shí)間: 2018-9-16 18:57
下載來(lái)看看
作者: 沉香淡雅 時(shí)間: 2018-10-12 09:22
正在做這方面的,下來(lái)學(xué)習(xí)。謝謝分享
作者: mybshf 時(shí)間: 2019-2-26 13:32
謝謝分享,急需的資料
作者: 巽悄悄米 時(shí)間: 2019-3-3 21:35
樓主你好,請(qǐng)問(wèn)是增量式還是位置式的PID調(diào)速呢
作者: monsterqw 時(shí)間: 2019-3-7 13:10
謝謝分享
作者: aetherxd 時(shí)間: 2019-3-9 22:29
不錯(cuò)!贊一個(gè)
作者: nanducool 時(shí)間: 2019-3-9 23:06
贊一個(gè)
作者: 升美 時(shí)間: 2019-3-13 17:41
是完整的代碼嗎
作者: zhukm 時(shí)間: 2019-3-19 10:35
學(xué)習(xí)參考下
作者: szb901025 時(shí)間: 2019-3-29 09:28
贊一個(gè)
作者: m123321654 時(shí)間: 2019-5-15 19:15
好東西 下來(lái)學(xué)習(xí)玩玩
作者: xha 時(shí)間: 2019-5-21 19:54
不錯(cuò)哦,學(xué)習(xí)
作者: XIALAJI 時(shí)間: 2019-7-15 23:42
6666值得學(xué)習(xí)
作者: 內(nèi)心很無(wú)奈 時(shí)間: 2019-7-24 09:50
感謝樓主
作者: 豐富豐富 時(shí)間: 2019-8-25 12:26
感謝樓主
作者: 豐富豐富 時(shí)間: 2019-8-25 12:30
贊一個(gè)
作者: dspmomo 時(shí)間: 2019-8-30 06:24
不完整
作者: 老白老師 時(shí)間: 2019-10-18 02:36
好資料,謝謝
作者: LULU11 時(shí)間: 2019-11-19 22:14
下載學(xué)習(xí)一下
作者: 15869123721 時(shí)間: 2019-12-6 15:36
學(xué)習(xí)一下
作者: ujsme 時(shí)間: 2019-12-10 14:51
不錯(cuò)的資料,用來(lái)學(xué)習(xí),謝謝!
作者: applehzd 時(shí)間: 2019-12-10 18:42
值得學(xué)習(xí)一下
作者: xaviersw 時(shí)間: 2020-12-27 12:57
不錯(cuò)的例程學(xué)習(xí)一下
歡迎光臨 (http://www.torrancerestoration.com/bbs/) |
Powered by Discuz! X3.1 |