新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 一種基于Arduino的光電編碼器檢測儀設計方案

        一種基于Arduino的光電編碼器檢測儀設計方案

        作者: 時間:2014-08-12 來源:網絡 收藏

          0 引言

        本文引用地址:http://www.104case.com/article/256786.htm

          是一款基于單片機系統的電子產品開發平臺,它的軟硬件系統都具有高度的模塊化,而且軟件系統是完全開源的。其硬件系統也是高度模塊化的,在核心控制板的外圍有開關量輸入/輸出模塊、各種模擬量傳感器輸入模塊、總線類傳感器的輸入模塊,還有網絡通信模塊[1-2].有自己特有的編程語言。其語法規則類似C/C++語言,IDE環境和語言把單片機與硬件相關的一些參數都參數化并進行了很好的封裝,把端口都打包,寄存器、地址指針之類的基本不用管,大大降低了軟件開發難度。因此不用開發者去了解其硬件結構即可對其編程,實現設計者的設計意圖和創意[3].

          本文提出了一種基于開發環境的光電檢測儀設計方案,能夠對光電的好壞進行判斷,實現光電正轉與反轉時的脈沖計數。

          1 整體設計

          該檢測儀主要由調、Arduino控制板、液晶顯示電路等組成,如圖1所示。

          

         

          CLKA和CLKB為光電編碼器輸出的兩路相位相差90°的編碼信號。調用來對這兩路信號進行整形濾波等信號處理,最后送至Arduino控制板。Arduino控制板用來實現光編碼器脈沖個數的計數,正轉、反轉兩種脈沖信號的判別。液晶顯示電路用來顯示檢測的參數,同時對不同型號光電編碼器進行選擇控制。

          2 硬件部分設計

          2.1 調

          信號調理電路用于檢測信號的調理,主要是把待測交流信號,經過濾波、放大、選通、有效值轉換、限幅等處理,送到微控制器進行測量。

          圖2為調理電路框圖,光電編碼器輸出的兩路相位相差90°的正弦波信號A、B,經施密特觸發器變為a、b兩組方波信號。A 分為兩組:一路經微分電路,在方波的上升沿形成脈沖信號d,再由門電路輸出,形成正轉脈沖,另一路經反相器,形成反相方波c,再經微分電路形成脈沖信號e,由門電路輸出反相脈沖g.b組方波直接連到兩個門電路的控制端,作為兩個門電路的選通信號。

          

         

          光電編碼器正轉時,b組信號超前90°,它的方波正半波對應不經反相器a組方波的上升沿,正半波又使門電路選通,d組脈沖通過門電路形成正轉脈沖;而c組方波的上升沿對應b組方波負半波,此時雖然微分電路輸出e脈沖,但門電路關閉,不能輸出反相脈沖g.當編碼器反轉時,情況正好相反。最終輸出的脈沖分別送入控制檢測電路進行計數。

          2.2 Arduino控制板

          本檢測儀采用了意大利最新開發的Arduino Due微控制器。Arduino Due 是一塊基于Atmel SAM3X8ECPU 的微控制器板。它是第一塊基于32 位ARM 核心的Arduino,使用32位ARM核心的Due相較于以往的使用8位AVR核心的其他Arduino更強大:32位核心在一個時鐘能處理32位的數據。控制板包括54個數字I/O引腳(其中12路PWM輸出),12個模擬輸入通道,2個模擬輸出通道(DAC),I/O口總輸出電流為130 mA.3.3 V端口輸出能力為800 mA,5 V 端口輸出能力為800 mA,FLASH 512 KB(所有空間都可以儲存用戶程序),SRAM96 KB(兩個部分:64 KB and 32 KB),時鐘速率[4-5]為84 MHz.

          由于Arduino due的工作電壓為3.3 V,I/O口可承載電壓也為3.3 V,所以經過調理電路產生的5 V 脈沖不能直接處理。本檢測儀通過SN74lVC4245 芯片把5 V的脈沖整形為3.3 V的脈沖。

          2.3 液晶顯示電路

          本設計中采用了國產開發的可編程智能LCD(即Programmable Smart LCD,簡稱PS-LCD)。PS-LCD 是一種包含LCD顯示屏、LCD控制器、觸摸屏、人機界面處理系統和通信接口于一體的智能顯示模組,通過可選的通信接口與外部控制單元(如:51單片機、ARM、DSP、PC、PLC、總線設備等)連接,實現系統的人機交互界面。

          新建Designer工程,定義界面分辨率、界面切換效果和主界面等;設置背景、加入/設置控件、定義事件動作等;PS-LCD的采用Java Script的腳本語言,Java Script是因特網上最流行的腳本語言,它存在于全世界所有Web 瀏覽器中,能夠增強用戶與Web 站點和Web 應用程序之間的交互。本液晶顯示屏通過腳本編寫實時地顯示微控制器采集送過來的脈沖個數,并進行判斷。

          用LCD 模擬器驗證界面效果和通信過程,重復前面步驟直到滿意為止。

          PS-LCD 作為先進的智能人機界面產品,能通過通信接口輕松靈活地與外部控制單元實現數據交互。目前,PS-LCD支持兩種通信協議:CTP(Cooky Talking Pro-tocol)協議和用戶自定義(UserDefine)協議。本檢測儀采用的是CTP協議。

          在CTP通信模式下,PS-LCD在收到通信命令后,會立刻執行,結束后會向主控制器返回結果。由于PS-LCD的串口通信協議跟微控制器Arduino Due的通信協議不一致,在通信過程中要進行轉換和控制。為了取消PS-LCD 命令執行結果的自動回復消息,在CTP 通信模式下,通過調用ctpSet(“reply”,0)函數取消PS-LCD 的自動回復。PS-LCD同時通過通信協議產生的串口信號來控制微控制器的工作,真正實現人機互動的效果[6].

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

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

        51單片機相關文章:51單片機教程


        c++相關文章:c++教程


        脈沖點火器相關文章:脈沖點火器原理
        施密特觸發器相關文章:施密特觸發器原理

        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 三门峡市| 灵武市| 阿克陶县| 宣化县| 扶沟县| 松潘县| 偃师市| 六枝特区| 滁州市| 彰武县| 西乡县| 翁牛特旗| 宁都县| 祁阳县| 中超| 沁阳市| 鄄城县| 白河县| 惠水县| 海丰县| 永修县| 元氏县| 芷江| 张家界市| 榆树市| 灵丘县| 卫辉市| 长武县| 长寿区| 鸡泽县| 和平县| 合作市| 浠水县| 宁武县| 岑溪市| 正安县| 广灵县| 城固县| 高阳县| 巴彦淖尔市| 巴东县|