LabVIEW热敏电阻温度计程序
CSDN話題挑戰(zhàn)賽第2期
參賽話題:學(xué)習(xí)筆記
#【國慶活動(dòng)】帶上CSDN一起玩轉(zhuǎn)國慶#
最近遇到一個(gè)使用Arduino Uno控制板的項(xiàng)目,利用熱敏電阻和LIAT中的熱敏電阻函數(shù)節(jié)點(diǎn),通過Arduino Uno控制板的模擬端口采集與熱敏電阻串聯(lián)電阻的分壓值上傳給LabVIEW軟件,并除以溫度系數(shù)以獲得溫度值,實(shí)現(xiàn)一個(gè)溫度計(jì)的功能。
為啥用labview呢,因?yàn)長(zhǎng)abVIEW是NI的數(shù)據(jù)采集創(chuàng)新軟件產(chǎn)品,其全稱是實(shí)驗(yàn)室虛擬儀器工程平臺(tái)(Laboratory Virtual Instrument Engineering Workbench),是一種基于圖形語言(Graphics Language,圖形化編程語言)的測(cè)試系統(tǒng)軟件開發(fā)平臺(tái)。LabVIEW并不局限于虛擬儀器的開發(fā),它的作用是為大型復(fù)雜測(cè)試系統(tǒng)提供通用的軟件開發(fā)平臺(tái)。目前,LabVIEW已經(jīng)成為測(cè)試領(lǐng)域應(yīng)用最廣泛和最有前途的軟件開發(fā)平臺(tái)之一。
Arduino Uno是Arduino的典型控制器,擁有Arduino所有的基本功能,使用最為廣泛,而且本書的應(yīng)用篇和項(xiàng)目篇都是基于Arduino Uno來設(shè)計(jì)的,所以接下來重點(diǎn)介紹Arduino Uno的硬件部分,其他型號(hào)Arduino控制板硬件介紹可以參考Arduino官方網(wǎng)站:www.arduino.cc。
1.控制器
?處理器:ATmega328
?工作電壓:5V
?輸入電壓:(推薦)7~12V
?輸入電壓:(范圍)6~20V
?數(shù)字I/O接口:14路(其中6路作為PWM輸出)
?模擬輸入接口:6路
?I/O接口直流電流:40mA
?3.3V接口直流電流:50mA
?Flash Memory:32KB(ATmega328,其中0.5KB用于Bootloader)
?SRAM:2KB(ATmega328)
?EEPROM:1KB(ATmega328)
?工作時(shí)鐘:16MHz
2.電源
Arduino Uno可以通過3種方式供電,而且能自動(dòng)選擇供電方式。
?外部直流電源通過電源插座供電。
?電池連接電源連接器的GND和VIN引腳。
?USB接口直接供電。
電源引腳說明:
?VIN:當(dāng)外部直流電源接入電源插座時(shí),可以通過VIN向外部供電;也可以通過此引腳向Uno直接供電;VIN有電時(shí)將忽略從USB或者其他引腳接入的電源。
?5V:通過穩(wěn)壓器或USB輸出的5V電壓,為Uno上的5V芯片供電。
?3.3V:通過穩(wěn)壓器產(chǎn)生的3.3V電壓,最大驅(qū)動(dòng)電流50mA。
?GND:電源負(fù)極。
3.存儲(chǔ)器
ATmega328擁有片上32KB Flash,其中0.5KB用于Bootloader,同時(shí)還有2KB SRAM和1KB EEPROM。通常情況下,Arduino的存儲(chǔ)空間即其主控芯片所集成的存儲(chǔ)空間,也可以通過使用外設(shè)芯片的方式擴(kuò)展Arduino的存儲(chǔ)空間。
?Flash:32KB。其中0.5KB分作BOOT區(qū),用于儲(chǔ)存引導(dǎo)程序,實(shí)現(xiàn)串口下載程序的功能,另外的31.5KB作為用戶存儲(chǔ)程序的空間,可以滿足一般的應(yīng)用設(shè)計(jì)。
?SRAM:2KB。SRAM相當(dāng)于計(jì)算機(jī)的內(nèi)存,在CPU運(yùn)算時(shí),需要在其中開辟一定的存儲(chǔ)空間。當(dāng)Arduino斷電或者復(fù)位后,其中的數(shù)據(jù)都會(huì)丟失。
?EEPROM:1KB。EEPROM全稱為電可擦寫可編程只讀存儲(chǔ)器,是一種用戶可更改的只讀存儲(chǔ)器,特點(diǎn)是Arduino斷電或者復(fù)位后,其中的數(shù)據(jù)不會(huì)丟失。
4.輸入/輸出
?14路數(shù)字輸入/輸出接口:工作電壓為5V,每一路輸出或輸入的最大電流為40mA。每一路配置了20~50kΩ的內(nèi)部上拉電阻(默認(rèn)不連接)。除此之外,有些引腳有特定的功能,具體說明如下:
串口信號(hào)RX(0號(hào))和TX(1號(hào)):與內(nèi)部ATmega16U2USB-to-TTL芯片相連,提供TTL電壓水平的串口接收信號(hào)。
外部中斷(2號(hào)和3號(hào)):觸發(fā)中斷引腳,可設(shè)成上升沿、下降沿或同時(shí)觸發(fā)。
脈沖寬度調(diào)制PWM(3、5、6、9、10、11):提供6路8位PWM輸出。
?6路模擬輸入A0~A5:每一路具有10位的分辨率(即輸入有1024個(gè)不同值),默認(rèn)輸入信號(hào)范圍為0~5V,可以通過AREF調(diào)整輸入上限。除此之外,有些引腳有特定功能。
○TWI接口(SDA A4和SCL A5):支持通信接口(兼容I2C總線)。
?AREF:模擬輸入信號(hào)的參考電壓。
?Reset:信號(hào)為低時(shí)復(fù)位單片機(jī)芯片。
5.通信接口
?串口:ATmega328內(nèi)置的UART可以通過數(shù)字口0(RX)和1(TX)與外部實(shí)現(xiàn)串口通信;ATmega16U2可以通過訪問數(shù)字口0和1實(shí)現(xiàn)USB上的虛擬串口。
?TWI(兼容I2C)接口:A4(SDA)、A5(SCL),可用于TWI通信,兼容I2C通信。
?SPI接口:10(SS)、11(MOSI)、12(MISO)、13(SCK),可用于SPI通信。
(1)項(xiàng)目最終效果
利用熱敏電阻和LIAT中的熱敏電阻函數(shù)節(jié)點(diǎn),通過Arduino Uno控制板的模擬端口采集與熱敏電阻串聯(lián)電阻的分壓值上傳給LabVIEW軟件,并除以溫度系數(shù)以獲得溫度值,實(shí)現(xiàn)一個(gè)溫度計(jì)的功能。
(2)硬件連接
將熱敏電阻與10kΩ電阻串聯(lián)起來,熱敏電阻另一端接至Arduino Uno控制板上的+5V,10kΩ電阻另一端接至Arduino Uno控制板上的GND上,將熱敏電阻與10kΩ電阻的連接處接至模擬引腳A2上,如圖所示。
(3)程序設(shè)計(jì)
LabVIEW的前面板和程序框圖如圖1和圖2所示。
LabVIEW程序首先通過設(shè)置的串口號(hào)與Arduino Uno控制板建立連接,然后進(jìn)入While循環(huán)中,在循環(huán)中不斷調(diào)用熱敏電阻專用的Thermistor Read函數(shù)節(jié)點(diǎn)來讀取溫度值。最后,斷開與Arduino Uno控制板的連接。
(4)實(shí)驗(yàn)與演示
點(diǎn)擊運(yùn)行按鈕,LabVIEW程序開始執(zhí)行,在Analog Pin選擇A2,可以看到前面板上的溫度計(jì)顯示當(dāng)前的溫度。
總結(jié)
以上是生活随笔為你收集整理的LabVIEW热敏电阻温度计程序的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: FRED案例:矩形微透镜阵列
- 下一篇: ECharts-漏斗图