技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國(guó)傳動(dòng)網(wǎng) > 技術(shù)頻道 > 應(yīng)用方案 > 基于Arduino開(kāi)發(fā)環(huán)境的光電編碼器檢測(cè)儀設(shè)計(jì)方案

基于Arduino開(kāi)發(fā)環(huán)境的光電編碼器檢測(cè)儀設(shè)計(jì)方案

時(shí)間:2017-11-28 11:38:48來(lái)源:網(wǎng)絡(luò)轉(zhuǎn)載

導(dǎo)語(yǔ):?本文提出了一種基于Arduino開(kāi)發(fā)環(huán)境的光電編碼器檢測(cè)儀設(shè)計(jì)方案,能夠?qū)怆娋幋a器的好壞進(jìn)行判斷,實(shí)現(xiàn)光電編碼器正轉(zhuǎn)與反轉(zhuǎn)時(shí)的脈沖計(jì)數(shù)。

0引言

Arduino是一款基于單片機(jī)系統(tǒng)的電子產(chǎn)品開(kāi)發(fā)平臺(tái),它的軟硬件系統(tǒng)都具有高度的模塊化,而且軟件系統(tǒng)是完全開(kāi)源的。其硬件系統(tǒng)也是高度模塊化的,在核心控制板的外圍有開(kāi)關(guān)量輸入/輸出模塊、各種模擬量傳感器輸入模塊、總線類傳感器的輸入模塊,還有網(wǎng)絡(luò)通信模塊[1-2].Arduino有自己特有的編程語(yǔ)言。其語(yǔ)法規(guī)則類似C/C++語(yǔ)言,IDE環(huán)境和語(yǔ)言把單片機(jī)與硬件相關(guān)的一些參數(shù)都參數(shù)化并進(jìn)行了很好的封裝,把端口都打包,寄存器、地址指針之類的基本不用管,大大降低了軟件開(kāi)發(fā)難度。因此不用開(kāi)發(fā)者去了解其硬件結(jié)構(gòu)即可對(duì)其編程,實(shí)現(xiàn)設(shè)計(jì)者的設(shè)計(jì)意圖和創(chuàng)意[3]。

本文提出了一種基于Arduino開(kāi)發(fā)環(huán)境的光電編碼器檢測(cè)儀設(shè)計(jì)方案,能夠?qū)怆娋幋a器的好壞進(jìn)行判斷,實(shí)現(xiàn)光電編碼器正轉(zhuǎn)與反轉(zhuǎn)時(shí)的脈沖計(jì)數(shù)。

1整體設(shè)計(jì)

該檢測(cè)儀主要由調(diào)理電路、Arduino控制板、液晶顯示電路等組成,如圖1所示。

系統(tǒng)框圖

CLKA和CLKB為光電編碼器輸出的兩路相位相差90°的編碼信號(hào)。調(diào)理電路用來(lái)對(duì)這兩路信號(hào)進(jìn)行整形濾波等信號(hào)處理,最后送至Arduino控制板。Arduino控制板用來(lái)實(shí)現(xiàn)光編碼器脈沖個(gè)數(shù)的計(jì)數(shù),正轉(zhuǎn)、反轉(zhuǎn)兩種脈沖信號(hào)的判別。液晶顯示電路用來(lái)顯示檢測(cè)的參數(shù),同時(shí)對(duì)不同型號(hào)光電編碼器進(jìn)行選擇控制。

2硬件部分設(shè)計(jì)

2.1調(diào)理電路

信號(hào)調(diào)理電路用于檢測(cè)信號(hào)的調(diào)理,主要是把待測(cè)交流信號(hào),經(jīng)過(guò)濾波、放大、選通、有效值轉(zhuǎn)換、限幅等處理,送到微控制器進(jìn)行測(cè)量。

調(diào)理電路框圖

圖2為調(diào)理電路框圖,光電編碼器輸出的兩路相位相差90°的正弦波信號(hào)A、B,經(jīng)施密特觸發(fā)器變?yōu)閍、b兩組方波信號(hào)。A分為兩組:一路經(jīng)微分電路,在方波的上升沿形成脈沖信號(hào)d,再由門電路輸出,形成正轉(zhuǎn)脈沖,另一路經(jīng)反相器,形成反相方波c,再經(jīng)微分電路形成脈沖信號(hào)e,由門電路輸出反相脈沖g.b組方波直接連到兩個(gè)門電路的控制端,作為兩個(gè)門電路的選通信號(hào)。

光電編碼器正轉(zhuǎn)時(shí),b組信號(hào)超前90°,它的方波正半波對(duì)應(yīng)不經(jīng)反相器a組方波的上升沿,正半波又使門電路選通,d組脈沖通過(guò)門電路形成正轉(zhuǎn)脈沖;而c組方波的上升沿對(duì)應(yīng)b組方波負(fù)半波,此時(shí)雖然微分電路輸出e脈沖,但門電路關(guān)閉,不能輸出反相脈沖g.當(dāng)編碼器反轉(zhuǎn)時(shí),情況正好相反。最終輸出的脈沖分別送入控制檢測(cè)電路進(jìn)行計(jì)數(shù)。

2.2Arduino控制板

本檢測(cè)儀采用了意大利最新開(kāi)發(fā)的ArduinoDue微控制器。ArduinoDue是一塊基于AtmelSAM3X8ECPU的微控制器板。它是第一塊基于32位ARM核心的Arduino,使用32位ARM核心的Due相較于以往的使用8位AVR核心的其他Arduino更強(qiáng)大:32位核心在一個(gè)時(shí)鐘能處理32位的數(shù)據(jù)??刂瓢灏?4個(gè)數(shù)字I/O引腳(其中12路PWM輸出),12個(gè)模擬輸入通道,2個(gè)模擬輸出通道(DAC),I/O口總輸出電流為130mA.3.3V端口輸出能力為800mA,5V端口輸出能力為800mA,F(xiàn)LASH512KB(所有空間都可以儲(chǔ)存用戶程序),SRAM96KB(兩個(gè)部分:64KBand32KB),時(shí)鐘速率[4-5]為84MHz.

由于Arduinodue的工作電壓為3.3V,I/O口可承載電壓也為3.3V,所以經(jīng)過(guò)調(diào)理電路產(chǎn)生的5V脈沖不能直接處理。本檢測(cè)儀通過(guò)SN74lVC4245芯片把5V的脈沖整形為3.3V的脈沖。

2.3液晶顯示電路

本設(shè)計(jì)中采用了國(guó)產(chǎn)開(kāi)發(fā)的可編程智能LCD(即ProgrammableSmartLCD,簡(jiǎn)稱PS-LCD)。PS-LCD是一種包含LCD顯示屏、LCD控制器、觸摸屏、人機(jī)界面處理系統(tǒng)和通信接口于一體的智能顯示模組,通過(guò)可選的通信接口與外部控制單元(如:51單片機(jī)、ARM、DSP、PC、PLC、總線設(shè)備等)連接,實(shí)現(xiàn)系統(tǒng)的人機(jī)交互界面。

新建Designer工程,定義界面分辨率、界面切換效果和主界面等;設(shè)置背景、加入/設(shè)置控件、定義事件動(dòng)作等;PS-LCD的采用JavaScript的腳本語(yǔ)言,JavaScript是因特網(wǎng)上最流行的腳本語(yǔ)言,它存在于全世界所有Web瀏覽器中,能夠增強(qiáng)用戶與Web站點(diǎn)和Web應(yīng)用程序之間的交互。本液晶顯示屏通過(guò)腳本編寫實(shí)時(shí)地顯示微控制器采集送過(guò)來(lái)的脈沖個(gè)數(shù),并進(jìn)行判斷。

用LCD模擬器驗(yàn)證界面效果和通信過(guò)程,重復(fù)前面步驟直到滿意為止。

PS-LCD作為先進(jìn)的智能人機(jī)界面產(chǎn)品,能通過(guò)通信接口輕松靈活地與外部控制單元實(shí)現(xiàn)數(shù)據(jù)交互。目前,PS-LCD支持兩種通信協(xié)議:CTP(CookyTalkingPro-tocol)協(xié)議和用戶自定義(UserDefine)協(xié)議。本檢測(cè)儀采用的是CTP協(xié)議。

在CTP通信模式下,PS-LCD在收到通信命令后,會(huì)立刻執(zhí)行,結(jié)束后會(huì)向主控制器返回結(jié)果。由于PS-LCD的串口通信協(xié)議跟微控制器ArduinoDue的通信協(xié)議不一致,在通信過(guò)程中要進(jìn)行轉(zhuǎn)換和控制。為了取消PS-LCD命令執(zhí)行結(jié)果的自動(dòng)回復(fù)消息,在CTP通信模式下,通過(guò)調(diào)用ctpSet(“reply”,0)函數(shù)取消PS-LCD的自動(dòng)回復(fù)。PS-LCD同時(shí)通過(guò)通信協(xié)議產(chǎn)生的串口信號(hào)來(lái)控制微控制器的工作,真正實(shí)現(xiàn)人機(jī)互動(dòng)的效果[6]。

生成界面輸出文件spf,然后將spf文件通過(guò)PS-LCD專用軟件工具Flex下載到PS-LCD驗(yàn)證最終界面效果。

本檢測(cè)儀PS-LCD最終的檢測(cè)界面如圖3所示。

檢測(cè)界面

3軟件部分設(shè)計(jì)

3.1脈沖計(jì)數(shù)子程序

程序設(shè)計(jì)

程序設(shè)計(jì)

為了能更加準(zhǔn)確地對(duì)脈沖進(jìn)行測(cè)試,采用外部中斷進(jìn)行計(jì)數(shù),Arduinodue控制板的54個(gè)數(shù)字I/O引腳,均可以作為中斷端口。編寫的主要計(jì)數(shù)程序如下[7-10]:

3.2液晶顯示程序

根據(jù)所要測(cè)試的光電編碼器,選擇不同的型號(hào),不同型號(hào)的光電編碼器定義不同的發(fā)送信號(hào),以LBJ-001-2048型光電編碼器為例,選擇按鈕的腳本編寫子程序如下:

其中sysCom0.write(0&TImes;41)為寫入串口發(fā)送緩沖區(qū),串口向外部發(fā)送1字節(jié)數(shù)據(jù)0&TImes;41,即是字符‘A‘。當(dāng)Arduino微控板接收到串口送過(guò)來(lái)的’A’字符時(shí),即可判斷出待測(cè)試的光電編碼器型號(hào)為L(zhǎng)BJ-001-2048,啟動(dòng)相對(duì)應(yīng)的程序進(jìn)行測(cè)試。同理當(dāng)選擇第二種型號(hào)測(cè)試時(shí),Arduino微控板將接收到串口送過(guò)來(lái)的‘B’字符時(shí),即可判斷出待測(cè)試的光電編碼器型號(hào)為SE0932II-5400P/r,啟動(dòng)相對(duì)應(yīng)的程序進(jìn)行測(cè)試。

4結(jié)語(yǔ)

本文著重介紹了基于Arduino開(kāi)發(fā)環(huán)境的光電編碼器檢測(cè)儀的設(shè)計(jì),并實(shí)現(xiàn)Arduino微控板與PS-LCD的通信控制問(wèn)題。由于Arduino是一個(gè)開(kāi)放的單片機(jī)開(kāi)發(fā)人機(jī)互動(dòng)產(chǎn)品的軟硬件平臺(tái),對(duì)于基于Arduino開(kāi)發(fā)環(huán)境的電子制作競(jìng)賽、電子藝術(shù)品創(chuàng)意開(kāi)發(fā)、電子檢測(cè)產(chǎn)品等方面具有較好的參考價(jià)值。

標(biāo)簽:

點(diǎn)贊

分享到:

上一篇:如何解決步進(jìn)電機(jī)只顫不轉(zhuǎn)問(wèn)...

下一篇:交流伺服電機(jī)與普通電機(jī)相比...

中國(guó)傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來(lái)源:中國(guó)傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國(guó)傳動(dòng)網(wǎng)(www.treenowplaneincome.com)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來(lái)源“中國(guó)傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來(lái)源的稿件,均來(lái)自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來(lái)源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。

網(wǎng)站簡(jiǎn)介|會(huì)員服務(wù)|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見(jiàn)反饋|sitemap

中國(guó)傳動(dòng)網(wǎng)-工業(yè)自動(dòng)化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務(wù)平臺(tái)

網(wǎng)站客服服務(wù)咨詢采購(gòu)咨詢媒體合作

Chuandong.com Copyright ?2005 - 2024 ,All Rights Reserved 版權(quán)所有 粵ICP備 14004826號(hào) | 營(yíng)業(yè)執(zhí)照證書 | 不良信息舉報(bào)中心 | 粵公網(wǎng)安備 44030402000946號(hào)