999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于ARDUINO與MATLAB的簡易示波器研制

2015-02-11 03:05:30陸強顏加仁林定能沈歡勝
科技資訊 2014年29期

陸強++顏加仁++林定能++沈歡勝

摘 要:利用Arduino標準化單片機集成模塊和Matlab軟件,從硬件和軟件兩方面論述了一種簡易示波器的設計思路,該示波器可以測量直流和交流電壓波形。Arduino將數(shù)據(jù)采集后,通過串口傳輸?shù)絇C機,利用PC機的Matlab程序,將數(shù)據(jù)進行圖形化顯示,從而構成示波器。

關鍵詞:Arduino Matlab 跨步電壓 電壓檢測

中圖分類號:G642 文獻標識碼:A 文章編號:1672-3791(2014)10(b)-0009-02

Arduino是一塊基于開放源代碼的SimpleI/O平臺,該平臺由硬件和軟件兩部分組成,這兩部分都是開源的。在硬件上,Arduino提供了6個模擬量輸入端,相對誤差為0.1%左右[1],可以滿足一般的測量精度要求。開發(fā)語言類似java、C語言,具有開發(fā)環(huán)境簡單、易理理解的特點[2]。

Arduino把單片機編程中很多常用的功能,如延時、數(shù)據(jù)讀寫、中斷等模塊化封裝成一個個子程序供程序開發(fā)者調(diào)用,程序開發(fā)者只需著眼于程序的邏輯結構,而不必關心底層函數(shù)的具體設計,從而大大降低了程編程的復雜程度[3]。

Matlab是由美國MATHw0RKs公司開發(fā)的面向研究和工程設計處理的一套具有強大功能的軟件系統(tǒng)。Matlab集數(shù)學計算結果可視化和編程于一體,能夠方便地進行科學計算和大量工程運算[4]。

該文提出了一種基于Arduino標準化單片機集成模塊和Matlab數(shù)據(jù)處理的簡易示波器設計方法,可以用于測量常見的電壓波形,成本低廉,使用方便。

1 系統(tǒng)結構

簡易示波器從系統(tǒng)結構上分為前部數(shù)據(jù)采集端和PC機波形顯示器兩部分構成,兩者用串口實現(xiàn)數(shù)據(jù)交換。

前部數(shù)據(jù)采集端通過分壓電路將電壓降低到合適的數(shù)值以供Arduino測量;由于Arduino只能測量5V以內(nèi)的直流電壓,對于交流電壓,要加一級極性轉換電路,將雙極性電壓轉換為單極性電壓。完成AD轉換后,Arduino將數(shù)據(jù)通過串口傳到PC機,PC機利用Matlab的強大分析處理能力,對收到的數(shù)據(jù)進行分析、處理和圖形顯示。系統(tǒng)的結構如圖1所示。

2 硬件設計

該文設計的示波器主要用于測量和顯示常規(guī)直流電壓和交流電壓,測量的最大電壓為50 V,并設置一個壓敏電阻來保護電路,以免電壓過高時損壞裝置。對于電流電壓,由于Arduino所用的Atmel Atmega328單片機AD轉換速率為13~260 μs,所測量的電流電壓頻率一般不應高于2 kHz。

2.1 降壓電路設計

降壓電路采用線性電阻進行分壓,并串聯(lián)一個可調(diào)電阻以便微調(diào)。降壓后通過電壓跟隨器,使得輸入、輸出信號的幅值保持不變,且輸入阻抗高,輸出阻抗低,起到了現(xiàn)場信號與系統(tǒng)的隔離、互不干擾的作用。電路原理如圖2所示。

2.2 極性轉換電路設計

在模擬量的測量中最常見的莫過于交流電壓及交流電流的測量,而單片機內(nèi)的AD轉換器通常是用來測量直流或脈動直流的,因輸入腳不允許輸入負電平。需要增加一些外圍電路方能實現(xiàn)對交流電的測量[5]。

這些外圍電路就是極性轉換電路,如圖3所示。

本電路采用了電壓基準芯片AMS1117

-2.5產(chǎn)生一個幅值為2.5 V的基準電壓Vout,通過電阻R4加到運算放大器的“+”輸入端。

由圖3可知:

其中=2.5V。取R1=R4=2.4K,R2=R3=1.2 K,則有=+1.25,即輸入信號正向平移了1.25 V。

2.3 模塊電路連接

降壓模塊和極性轉換模塊可以用萬能板焊接,Arduino模塊采用標準的成品,各模塊的電路連接比較簡單,降壓電路的端外接需要測試的信號源,降壓電路的與極性轉換電路輸入端相連,極性轉換電路的輸出端與Arduino模塊的模擬輸入口A0相連,Arduino模塊的USB口與PC機的USB口相連,如圖4所示。

3 軟件設計

軟件設計的思路是,Arduino通過模擬輸入口A0采集交直流電壓量,并通過內(nèi)置的USB轉串口芯片,將采集后的數(shù)據(jù)通過串口傳輸?shù)絇C機,PC機進行簡單數(shù)據(jù)處理后,調(diào)用畫圖工具顯示波形。

3.1 數(shù)據(jù)采集程序

數(shù)據(jù)采集直接調(diào)用模擬量讀取函數(shù)analogRead,如下所示。

Vinput=analogRead(0);//讀取電壓量,數(shù)值從0到1023。

為了提高抗干擾性,得到更加穩(wěn)定的讀數(shù),可以多次讀取數(shù)據(jù)并計算平均值。

3.2 串口通信程序

Matlab 6.X或之后的版本提供了對串口對象的支持,可以很方便地訪問外設,通過建立串口對象,能實現(xiàn)數(shù)據(jù)的讀寫、存儲、事件回調(diào)等功能。

Matlab儀器控制工具箱可實現(xiàn)硬件端口的采集。其采集原理是:先建立虛擬設備對象,再設置設備對象的屬性,最后通過設備對象實現(xiàn)對硬件的操作[6]。

(1)Arduino端的數(shù)據(jù)上傳。

在void setup()函數(shù)里設置波特率,如Serial.begin (9600),即將串口比特率設置為9600。并利用Serial.read()讀取特定的數(shù)據(jù)作為握手信號,待兩端握手正確后再進行數(shù)據(jù)傳輸。

握手成功后,在void loop()函數(shù)中利用函數(shù)Serial.println(Voutput)不斷地將轉換好的數(shù)據(jù)發(fā)送到PC機。

(2)PC機端的數(shù)據(jù)接收

Matlab可以用查詢和中斷兩種方式接收數(shù)據(jù),這兩種方式各具特點,這里選用查詢方式,將接收到的數(shù)據(jù)匯總到一個標準數(shù)組dataOut中,填滿后立即繪圖,然后清0并重新填入數(shù)據(jù),周而復始。PC機端的數(shù)據(jù)傳輸有以下幾個步驟。endprint

①用g=serial('COMx')創(chuàng)建設備對象。

②用set()設置設備對象屬性,如波特率、終止符、輸入和輸出緩沖區(qū)大小等。

③用fopen()實現(xiàn)設備對象與硬件設備連接。

④用fread()、fwrite()等實現(xiàn)硬件設備數(shù)據(jù)的讀寫。

⑤用fclose()和delete()、clear()關閉和刪除設備對象。

3.3 波形顯示程序

利用PC機的Matlab強大的數(shù)據(jù)處理和圖形顯示功能進行波形顯示,在標準數(shù)組dataOut填滿后,調(diào)用plot函數(shù)來完成數(shù)據(jù)的可視化處理,如下所示。

plot(x,dataOut);

x是時間標量,與dataOut數(shù)組的采集時刻對應,可以根據(jù)數(shù)據(jù)采集的間隔,在PC端用linspace()函數(shù)生產(chǎn)。這里要注意的是,由于在輸入時人為添加了1.25 V的直流偏置,并在AD轉換時將其放大了1023/5倍,因此在調(diào)用plot函數(shù)前應將接收到的數(shù)據(jù)減去1.25 V直流偏置的影響,并借助于標準數(shù)字萬用表,算出電壓輸入量和輸出量之間的系數(shù),對輸出進行倍率校準。

圖5是利用該示波器顯示的RC電路放電的波形,前面波動處是開關合閘時的干擾電平。

由圖5可見,電容充滿電后為5 V,并從50 s開始放電(在50s時斷開電源開關),經(jīng)過約170 s后電壓變?yōu)? V,由,求得て=105 s。

本電路用的電阻為R=1M,電容C=100 mf,理論上て=RC=100 s。

可見實際值與理論值仍有一定的差距,這個差距主要是Arduino采集數(shù)據(jù)時,設定每隔5 ms進行一次AD轉換(使用函數(shù)delay(5)進行5 ms延時),但是這個延時并沒有考慮AD轉換的時間,數(shù)據(jù)上傳的時間,以及Arduino執(zhí)行其他指令所用的時間,從而導致總的時間有些許誤差。

4 結語

該文利用Arduino標準化單片機集成模塊和Matlab數(shù)據(jù)處理軟件,設計了一個簡易示波器,可以用于測量常見的交流和直流電壓波形。在實際使用過程中,雖然該裝置在時間量度方面仍有一些誤差,但是能夠真實反映波形情況,而且成本低廉,使用方便。

如果對時間標量的精度要求嚴格,可以在arduino采集數(shù)據(jù)時,同時記錄當時的時標,并通過串口與所采集的數(shù)據(jù)一起上傳給PC,但是會大大增加傳輸?shù)臄?shù)據(jù)量。還可以采取一個折中的方法,每采集一定個數(shù)的數(shù)量時記錄并傳輸一個時標,比如100個或1000個。

另外,由于Matlab具有強大的數(shù)據(jù)處理能力,讀者還可以加入數(shù)據(jù)濾波處理、保存、截波、數(shù)據(jù)分析等功能,同時采用Matlab的GUI可視化設計界面,可以設計出一套更加友好的界面,實現(xiàn)對數(shù)據(jù)的處理和系統(tǒng)的控制,從而大大增加示波器的實用性。

參考文獻

[1] 陳倩詒.單片機片內(nèi)A/D轉換器應用于交流量的測量[J].電子技術,2003(10):21-23.

[2] 蔡睿妍.Arduino的原理及應用[J].電氣設計工程,2012(16):155-156.

[3] 紀欣然.基于arduino開發(fā)環(huán)境的智能尋光小車設計[J].現(xiàn)代電子技術,2012(15):161-163.

[4] 梁湘.基于MATLAB的數(shù)據(jù)實時采集與處理的實現(xiàn)[J].科技信息,2008(9):44-45.

[5] 陳再清.用單片機如何實現(xiàn)交流量的A/D轉換[J].電子世界,2003(11):29-30.

[6] 劉秀.用Matlab實現(xiàn)硬件端口采集的方法[J].兵工自動化,2003(3):58-60.endprint

主站蜘蛛池模板: 刘亦菲一区二区在线观看| www.亚洲天堂| 青青久在线视频免费观看| 动漫精品中文字幕无码| 18禁黄无遮挡网站| 中文字幕在线观| 高潮爽到爆的喷水女主播视频| 狠狠色香婷婷久久亚洲精品| 国产手机在线观看| 99久久精品免费看国产免费软件| 国产网站免费| 深爱婷婷激情网| 91久久夜色精品国产网站| 亚洲成A人V欧美综合| 亚洲综合二区| 白浆免费视频国产精品视频 | 97国产在线视频| 精品少妇人妻一区二区| 最新加勒比隔壁人妻| 青青草原国产av福利网站| 青青青国产视频手机| 久久永久免费人妻精品| 91精品视频网站| 国产国产人在线成免费视频狼人色| 自慰高潮喷白浆在线观看| 精品视频福利| 欧美日韩国产在线观看一区二区三区| 国产一区二区三区精品欧美日韩| 国产精品手机在线观看你懂的| 内射人妻无码色AV天堂| 国产精品手机视频一区二区| 亚洲国产无码有码| 国产视频一二三区| 波多野结衣中文字幕一区二区 | 成人av专区精品无码国产 | 91破解版在线亚洲| 美女内射视频WWW网站午夜| 亚洲精品制服丝袜二区| 成人在线综合| 国产精品吹潮在线观看中文| 国产人妖视频一区在线观看| 久久久久人妻精品一区三寸蜜桃| 亚洲最大看欧美片网站地址| 国产成人综合在线视频| 亚洲AV无码不卡无码| 99一级毛片| 超碰aⅴ人人做人人爽欧美| 国产精品久久久精品三级| 国产美女久久久久不卡| 国产精品九九视频| 在线日本国产成人免费的| 亚洲天堂.com| 久久久久无码精品国产免费| 国产在线91在线电影| 欧美天堂在线| 99久久国产综合精品女同| 国产老女人精品免费视频| 日韩成人午夜| 久久伊人色| www.亚洲一区二区三区| 久久久亚洲色| 欧美午夜小视频| 狼友av永久网站免费观看| 成人毛片免费观看| 亚洲欧洲免费视频| 亚欧乱色视频网站大全| 九色综合伊人久久富二代| 制服丝袜无码每日更新| 成人一区在线| 亚洲第一福利视频导航| 99re在线视频观看| 波多野吉衣一区二区三区av| 性视频一区| 午夜免费小视频| 成人福利在线观看| 午夜国产精品视频| 91黄视频在线观看| 亚洲成人一区二区| 五月天久久婷婷| 色欲不卡无码一区二区| 亚洲AV成人一区国产精品| 国产91透明丝袜美腿在线|