為了進行測速,我們一共需要3個定時器,作用分別是:①輸出PWM;②編碼器模式進行脈沖計數(shù);③計時,確定每次測速的時間間隔。
其中,用于定時的定時器③可以用輸出PWM的定時器①代替,輸出PWM的定時器一樣有更新中斷,只要在更新中斷里運行測速程序即可。
但由于PWM定時器的頻率很快,所以我們會間隔很多個更新中斷后進行測速。
具體配置如下:
TIM2:編碼器輸入定時器
這里開啟了兩個通道計數(shù),即Encoder Mode中設(shè)置為Encoder Mode TI1 and TI2。這里就是上文倍頻技術(shù)的4倍頻。
編碼器模式下的定時器其實是個計數(shù)器,在編碼器的脈沖到來時,Counter會相應(yīng)地加和減,正轉(zhuǎn)時加,反轉(zhuǎn)時減,溢出后到達另一個極端值,比如說向上計數(shù)到達20001時會變成0
接下來我們需要設(shè)定編碼器的兩個引腳為上拉,防止誤觸發(fā)。
TIM3:PWM輸出定時器
STM32F103的定時器時鐘來源于APB總線時鐘,最高為72MHz,我們一般也配置為72MHz。APB時鐘經(jīng)過PSC分頻后得到實際的定時器的計數(shù)頻率。定時器的計數(shù)頻率為
當計數(shù)值達到ARR寄存器的設(shè)定值后計數(shù)值歸零,重新開始計數(shù),完成一個周期。在一個周期中,PWM高電平時間由比較寄存器(ARRARR)的值決定。
在設(shè)置PWM mode1且向上計數(shù)時,計數(shù)值小于ARR的值時是高電平,大于ARR值是低電平。所以PWM頻率是這樣計算的
上圖中設(shè)置初始PWM頻率為100Hz。但是設(shè)置頻率最好在20Hz~20000Hz以外,因為這個頻率內(nèi)的PWM波會讓電機發(fā)出明顯的電流聲。我們可以將PSC設(shè)置為3-1,將ARR設(shè)置為1000-1,我這里作為演示就先不管了。
TIM4:計時間隔定時器
設(shè)定為10Hz即1秒計算10次速度。
最后要開啟中斷,并保證編碼器定時器的中斷優(yōu)先級高于計時間隔定時器的中斷優(yōu)先級,避免編碼器輸入被間隔計時中斷。
其他基礎(chǔ)配置不再贅述。
-
編碼器
+關(guān)注
關(guān)注
45文章
3673瀏覽量
135278 -
PWM
+關(guān)注
關(guān)注
114文章
5199瀏覽量
214921 -
計數(shù)器
+關(guān)注
關(guān)注
32文章
2269瀏覽量
95016 -
定時器
+關(guān)注
關(guān)注
23文章
3256瀏覽量
115405
發(fā)布評論請先 登錄
相關(guān)推薦
STM對正交編碼器測速的程序--輸入捕獲測速
AB相編碼器-變M/T法測速,10ms定時,測6000轉(zhuǎn)伺服電機!
傳感器與測速原理簡析
編碼器計數(shù)原理與電機測速原理之多圖解析
平衡小車—編碼器使用教程與測速原理
![平衡小車—<b class='flag-5'>編碼器</b>使用教程與<b class='flag-5'>測速</b>原理](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
L298N電機驅(qū)動控制編碼器電機
![L298N電機驅(qū)動控制<b class='flag-5'>編碼器</b>電機](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
編碼器常用測速方法
![<b class='flag-5'>編碼器</b>常用<b class='flag-5'>測速</b>方法](https://file1.elecfans.com/web2/M00/AF/4A/wKgZomVN2hyAZn-iAAAkhUYpS60247.jpg)
評論