• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于ARDUINO與MATLAB的簡(jiǎn)易示波器研制

    2015-02-11 03:05:30陸強(qiáng)顏加仁林定能沈歡勝
    科技資訊 2014年29期
    關(guān)鍵詞:跨步電壓

    陸強(qiáng)++顏加仁++林定能++沈歡勝

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

    關(guān)鍵詞:Arduino Matlab 跨步電壓 電壓檢測(cè)

    中圖分類號(hào):G642 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-3791(2014)10(b)-0009-02

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

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

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

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

    1 系統(tǒng)結(jié)構(gòu)

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

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

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

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

    2.1 降壓電路設(shè)計(jì)

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

    2.2 極性轉(zhuǎn)換電路設(shè)計(jì)

    在模擬量的測(cè)量中最常見(jiàn)的莫過(guò)于交流電壓及交流電流的測(cè)量,而單片機(jī)內(nèi)的AD轉(zhuǎn)換器通常是用來(lái)測(cè)量直流或脈動(dòng)直流的,因輸入腳不允許輸入負(fù)電平。需要增加一些外圍電路方能實(shí)現(xiàn)對(duì)交流電的測(cè)量[5]。

    這些外圍電路就是極性轉(zhuǎn)換電路,如圖3所示。

    本電路采用了電壓基準(zhǔn)芯片AMS1117

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

    由圖3可知:

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

    2.3 模塊電路連接

    降壓模塊和極性轉(zhuǎn)換模塊可以用萬(wàn)能板焊接,Arduino模塊采用標(biāo)準(zhǔn)的成品,各模塊的電路連接比較簡(jiǎn)單,降壓電路的端外接需要測(cè)試的信號(hào)源,降壓電路的與極性轉(zhuǎn)換電路輸入端相連,極性轉(zhuǎn)換電路的輸出端與Arduino模塊的模擬輸入口A0相連,Arduino模塊的USB口與PC機(jī)的USB口相連,如圖4所示。

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

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

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

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

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

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

    3.2 串口通信程序

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

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

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

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

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

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

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

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

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

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

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

    ⑤用fclose()和delete()、clear()關(guān)閉和刪除設(shè)備對(duì)象。

    3.3 波形顯示程序

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

    plot(x,dataOut);

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

    圖5是利用該示波器顯示的RC電路放電的波形,前面波動(dòng)處是開(kāi)關(guān)合閘時(shí)的干擾電平。

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

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

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

    4 結(jié)語(yǔ)

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

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

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

    參考文獻(xiàn)

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

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

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

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

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

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

    猜你喜歡
    跨步電壓
    利用斜井接地體降低輸電桿塔周圍觸電風(fēng)險(xiǎn)研究
    智慧電力(2022年12期)2023-01-27 03:49:56
    異性導(dǎo)電媒質(zhì)對(duì)直流接地極跨步電壓分布的影響
    10kV配電網(wǎng)單相接地跨步電壓有限元仿真
    庫(kù)爾勒原油站35kV變電所接地現(xiàn)狀分析與防跨步電壓觸電對(duì)策
    發(fā)電站大型接地網(wǎng)跨步電壓的測(cè)量及降低方法
    綠色科技(2014年7期)2014-11-17 01:17:16
    嘉兴市| 铜川市| 寻乌县| 英吉沙县| 高碑店市| 安新县| 樟树市| 株洲县| 新宁县| 双柏县| 塘沽区| 溧水县| 上杭县| 清新县| 剑河县| 聂拉木县| 贺州市| 芷江| 茶陵县| 红桥区| 龙泉市| 城口县| 本溪| 景谷| 甘洛县| 新巴尔虎右旗| 滦平县| 南投县| 阿拉善右旗| 金坛市| 隆昌县| 迁西县| 垣曲县| 涡阳县| 齐齐哈尔市| 丹阳市| 修武县| 冷水江市| 盐津县| 江达县| 桑日县|