STM32 增量式旋轉編碼器測量

2021-09-25 01:16:14 字數 2084 閱讀 7188

博主此篇文章使用的旋轉編碼器型號有兩種。

感測器(增量式旋轉編碼器)

型號供電電壓

輸出方式

解析度品牌/廠家

輸出電平

s20-1000型拉線位移感測器

5-24v

npn集電極開路

400omron/歐姆龍 

dt100e40r1024-hi

增量型大孔徑編碼器

5-30v

htl(推挽式)

1024

冬蒞自動化技術(上海)****

www.shdongli.cn

高:vcc*70%

低:1v

由於增量型編碼器輸出脈衝,可以直接接入plc微控制器,利用plc高速計數器進行測量。將編碼器接入stm32微控制器需要乙個定時器資源,並將定時器配置為編碼器模式,稍後會簡要介紹配置方法。根據感測器的輸出方式,進而來判斷是否需要進行訊號預處理。對於集電極開路輸出的感測器接入必須使用上拉電阻。注意stm32大多數引腳的輸入電壓都在3.3v左右,盡量不要過壓。如果電壓較大,最好加隔離電路,比如6n136光耦,類似下圖

我在這裡並沒有使用隔離電路,而是對感測器統一使用了5v供電,並在訊號接入端人為加了3.3v上拉(上拉電阻1k),這種介面電路在我自己設計的採集板上統一留出了8個。編碼器應用中並未使用z相,僅使用了a、b兩相進行編碼器計數。按照線序說明接入stm32的定時器引腳,pa6、pa7對應tim3的ch1、ch2通道,pb6、pb7對應tim4的ch1、ch2通道。對於第二種感測器的推挽輸出方式而言,實驗證明這種接入電路也是可行的。(具體電路沒有進行分析,只是圖個方便。但是5*70%=3.5v應該是勉強可以直接接入stm32引腳的)

參考官方文件,摘錄幾個要點:

tim3、tim4定時器編碼器模式配置45

*********************************************/6

7 #include "

sys.h

"8 #include "

encoder.h"9

10int tim3itcount=0;//

中斷溢位次數

11int tim4itcount=0;//

中斷溢位次數

1213

void tim3_irqhandler(void)14

19 tim3->sr&=~(1

<<0);//

清除標誌位 20}

2122

void tim4_irqhandler(void)23

27 tim4->sr&=~(1

<<0);//

清除標誌位 28}

2930

void

tim3_encoder_init()

3178

79void

tim4_encoder_init()

80encoder.c

stm32增量式光電編碼器

原文 編碼器速度和方向檢測,371電機方向與速度檢測,stm32編碼器介面模式 出處 yfrobot論壇 編碼器是什麼玩意呢,它可是乙個好玩的東西,做小車測速必不可少的玩意,下面,我將從編碼器的原理講起,一直到用stm32的編碼器介面模式,測出電機轉速與方向。1.編碼器 圖1 編碼器示意圖 圖1為編...

旋轉編碼器與STM32的編碼器介面學習

一 旋轉編碼器 編碼器就是將角位移或者直線位移轉換成電訊號再轉換成計數脈衝的儀器,編碼器型別主要有增量型編碼器和絕對型編碼器。增量型旋轉編碼器原理簡析 1 編碼器轉動方向的判定 a b兩個點放置兩個光敏接收管,間距為s2,旋轉角度盤有間距s1的s光源區和間距為s0的非光源區,當角度盤轉動時,光源區經...

STM32控制編碼器

編碼器是一種將角位移或者角速度轉換成一連串電數字脈衝的旋轉式感測器。可以用來測量位置,測量速度。四倍頻的方法是測量a相和b相的上公升沿和下降沿 stm32控制編碼器可以採用timer的編碼器模式,tim1 8的ch1和ch2分別對應a相和b相 選擇編碼器介面模式的方法是 如果計數器只在ti2的邊沿計...