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

主站蜘蛛池模板: 日韩欧美国产三级| 久久夜色撩人精品国产| 丁香婷婷在线视频| 天天操天天噜| AV在线天堂进入| 欧美福利在线播放| 91黄色在线观看| 福利在线一区| 欧美激情综合| 日韩一级毛一欧美一国产| 国产精品自在在线午夜| …亚洲 欧洲 另类 春色| 国产成人a在线观看视频| 久久性妇女精品免费| 久视频免费精品6| 国产第八页| 91精品啪在线观看国产| 在线看片中文字幕| 日本妇乱子伦视频| 99久久精品视香蕉蕉| 99国产在线视频| 国产在线日本| 亚洲—日韩aV在线| 无码精品国产dvd在线观看9久| 丰满的少妇人妻无码区| 中文字幕在线看| 亚洲人成网站在线观看播放不卡| 久久久噜噜噜久久中文字幕色伊伊| 福利在线一区| 日本日韩欧美| 欧类av怡春院| 国产a在视频线精品视频下载| 亚洲一区网站| 色135综合网| 亚洲熟妇AV日韩熟妇在线| h网址在线观看| 亚洲国产AV无码综合原创| 日韩欧美国产中文| 国产亚洲视频中文字幕视频| 凹凸精品免费精品视频| 国产乱子伦无码精品小说| 国产最爽的乱婬视频国语对白| 在线精品亚洲国产| 亚洲一区二区黄色| 日韩区欧美国产区在线观看| 久久久久夜色精品波多野结衣| 亚洲成a人片| 99国产在线视频| 少妇高潮惨叫久久久久久| 日日拍夜夜操| 亚洲天堂日韩av电影| 一级毛片在线直接观看| 日韩精品免费在线视频| 亚洲最大福利网站| 免费一极毛片| 国产无套粉嫩白浆| 国产福利在线免费| 亚洲无码精品在线播放| 亚洲欧美成人| 国产伦精品一区二区三区视频优播 | 丝袜亚洲综合| 91成人在线观看视频| www亚洲天堂| 国产91在线|日本| 国产成人资源| аⅴ资源中文在线天堂| 69精品在线观看| 亚洲欧美成人网| 97在线国产视频| 国产91线观看| 欧美在线视频a| 国产高清在线丝袜精品一区| 欧美国产日韩一区二区三区精品影视| 亚洲性网站| 91免费精品国偷自产在线在线| 亚洲欧美不卡视频| 精品无码一区二区三区电影| 国产99免费视频| 天天综合网站| 久久国产毛片| 亚洲成人动漫在线观看| 4虎影视国产在线观看精品|