這次我們使用片內(nèi)ADC和溫度傳感器LM35實(shí)現(xiàn)溫度測(cè)量,并且串口輸出溫度值。
LM35是NS公司生產(chǎn)的集成電路溫度傳感器系列產(chǎn)品之一,具有很高的工作精度和較寬的線性工作范圍,它的輸出電壓與攝氏溫度成線性比例!疚墨I(xiàn)1】我們正是利用溫度與電壓的線性關(guān)系,通過測(cè)量輸出電壓來實(shí)現(xiàn)溫度的測(cè)量。
LM35的TO-92封裝底視如圖1所示,引腳介紹: ①正電源Vcc;②輸出;③輸出地/電源地。
我們?cè)谏弦还?jié)串口電壓表的基礎(chǔ)上,添加LM35溫度傳感器,在元器件搜索欄中輸入“LM35”,并添加至元器件選擇欄中,如圖2所示。修改后的Arduino UNO實(shí)驗(yàn)板如圖3所示。
Arduino UNO的ADC為10位,默認(rèn)參考電壓為5V,則可分辨的最小變化量為0.00488V,約為0.005V,可以滿足LM35每攝氏度輸出電壓的變化值的測(cè)量。
Arduino軟件設(shè)計(jì),只需要加一條語句,以實(shí)現(xiàn)電壓值轉(zhuǎn)換至溫度值。因?yàn)?.01V的電壓變化值對(duì)應(yīng)于1℃的溫度變化值,所以只需要將原來的電壓值乘以100即可實(shí)現(xiàn)。此處采用偷懶的辦法,直接在原來乘以5.00改為乘以500即可。
Arduino程序程序清單:
int sensorValue=0;//AD轉(zhuǎn)換后的數(shù)字量
float float_sensorValue;//把10位數(shù)字量換算成浮點(diǎn)電壓量
void setup() {
}
void loop() {
}
編譯成功之后,導(dǎo)入proteus仿真軟件。通過調(diào)節(jié)LM35的溫度值,可以看到輸出的電壓和溫度的關(guān)系,以及串口輸出的溫度值。溫度為0℃、25℃、50℃和100℃的仿真圖如圖4、5、6、7所示。
由溫度為0℃、25℃、50℃和100℃的仿真圖可以看出,LM35的測(cè)溫精度約為0.5℃,100℃時(shí)的精度為0.7℃,一方面是LM35自身的精度決定了,另一方便也可能是仿真得不準(zhǔn)確性,但是LM35能夠滿足1℃的測(cè)量的要求。
當(dāng)然,還可以利用標(biāo)準(zhǔn)傳感器對(duì)LM35進(jìn)行系數(shù)修正,提高其測(cè)量精度。
最后奉上Proteus仿真視頻。