<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于MSP430F149單片機(jī)的光電編碼器位置檢測系統(tǒng)方案

          基于MSP430F149單片機(jī)的光電編碼器位置檢測系統(tǒng)方案

          作者: 時間:2013-02-07 來源:網(wǎng)絡(luò) 收藏
            1、原理

            是集光、機(jī)、電技術(shù)于一體的數(shù)字化傳感器,其基本原理就是在特制的碼盤上按一定規(guī)律編排光柵圖案,將這些圖案用光電頭讀取,轉(zhuǎn)變?yōu)楦叩陀行蚺帕械碾娖叫盘枴?a class="contentlabel" href="http://www.ex-cimer.com/news/listbylabel/label/光電編碼器">光電編碼器輸出信號為A , B , Z 3 個信號,其中A , B 為相位差90°的方波信號, Z 為過零脈沖信號。如圖1所示,光電編碼器每旋轉(zhuǎn)一周,A、B 相輸出同樣數(shù)量的脈沖, Z相輸出一個脈沖,脈沖的個數(shù)和電機(jī)旋轉(zhuǎn)角度,電機(jī)的運(yùn)行距離成正比關(guān)系。


          基于MSP430F149單片機(jī)的光電編碼器位置檢測系統(tǒng)方案

            A相、B相都是光電編碼器產(chǎn)生的,這兩個信號的前沿和后沿都對應(yīng)著光電碼盤的1/4節(jié)距的信息鑒相就是通過分析圖1的A相,B相信號,得出電機(jī)的旋轉(zhuǎn)方向。如果A相脈沖超前B相90,電機(jī)正轉(zhuǎn),反之,電機(jī)反轉(zhuǎn)。本系統(tǒng)設(shè)計了一種四倍頻電路,其原理圖如圖2所示,相應(yīng)的時序圖如圖3所示。由時序圖3可以看出,A和B信號經(jīng)四倍頻電路后,輸出信號為XA,XB兩個信號,在同一時刻,XA,XB只有一個是脈沖信號,另一個是高電平。因此,將XA,XB兩個信號連接到單片機(jī)相應(yīng)的端口上,對這兩個信號分別進(jìn)行判斷、計數(shù)和計算,就可以得出相應(yīng)的電機(jī)轉(zhuǎn)向和位移量。


          基于MSP430F149單片機(jī)的光電編碼器位置檢測系統(tǒng)方案

            2、系統(tǒng)功能

            系統(tǒng)框圖見圖4。整個系統(tǒng)主要由差動隔離整形,倍頻電路,鑒相計數(shù)模塊,主控芯片,通訊模塊,數(shù)顯模塊組成。光電編碼器選用SIEMENS公司的1XP8001-1型號,輸出電壓為5V。從光電碼盤輸出的A,B,A-,B-經(jīng)過差動隔離整形模塊后能減少現(xiàn)場對信號產(chǎn)生的干擾,尤其是共模干擾,處理后的信號經(jīng)四倍頻電路后連到主控芯片,對脈沖進(jìn)行計數(shù),處理,計算,得到被控對象的位移結(jié)果。位移結(jié)果一方面送數(shù)顯表顯示,還可通過串口將位移結(jié)果送到上位機(jī),便于在上位機(jī)中進(jìn)行統(tǒng)計,打印,綜合分析。



          基于MSP430F149單片機(jī)的光電編碼器位置檢測系統(tǒng)方案


          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();