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