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

主站蜘蛛池模板: 国产成人1024精品| 国产免费观看av大片的网站| 欧美在线精品一区二区三区| 国产色婷婷| 国产精品香蕉在线| 四虎永久在线视频| 亚洲一区免费看| 亚洲AV人人澡人人双人| 欧美日韩精品一区二区视频| 婷婷成人综合| 国产办公室秘书无码精品| 亚洲AV无码不卡无码 | 在线亚洲精品福利网址导航| 国产自视频| 亚洲床戏一区| 99热这里只有成人精品国产| 久久精品一品道久久精品| 国产内射一区亚洲| 91九色国产porny| 国产精品手机视频| 欧美国产综合视频| 一级毛片免费观看久| 国产精品毛片一区| 久久国产乱子| 四虎成人精品| 就去色综合| 欧洲日本亚洲中文字幕| 亚洲综合二区| 啪啪免费视频一区二区| 日本草草视频在线观看| 国产性精品| 99久久99这里只有免费的精品| 国产H片无码不卡在线视频| 中文字幕乱码二三区免费| 伊人色婷婷| 亚洲资源站av无码网址| 四虎永久免费地址| 99视频精品在线观看| 谁有在线观看日韩亚洲最新视频| 成人福利免费在线观看| 久久精品亚洲专区| 国产极品嫩模在线观看91| 色综合天天操| 亚亚洲乱码一二三四区| 又黄又爽视频好爽视频| 亚洲国产精品无码AV| 99re在线免费视频| 91久久国产热精品免费| 91破解版在线亚洲| 欧美精品在线视频观看| 亚洲国产av无码综合原创国产| 免费看一级毛片波多结衣| 四虎在线观看视频高清无码| 亚洲免费毛片| 97视频免费看| 亚洲国产日韩在线成人蜜芽| 国产男人天堂| 欧洲高清无码在线| 99热国产这里只有精品无卡顿"| 国产剧情无码视频在线观看| 久久婷婷五月综合色一区二区| 精品成人一区二区三区电影 | 一区二区偷拍美女撒尿视频| 不卡无码h在线观看| 天天综合色天天综合网| 久久国产热| 日韩大乳视频中文字幕| 色偷偷一区| 亚洲一区二区三区国产精华液| 91麻豆国产在线| 国产91熟女高潮一区二区| 五月丁香伊人啪啪手机免费观看| 国产主播福利在线观看| www亚洲天堂| 亚洲精品777| 久久人人97超碰人人澡爱香蕉 | 99精品这里只有精品高清视频| 美女潮喷出白浆在线观看视频| 久久久久久午夜精品| 91丝袜在线观看| 久久网欧美| 日韩欧美成人高清在线观看|