<acronym id="xonnx"></acronym>
      <td id="xonnx"></td>
    1. <pre id="xonnx"></pre>

      1. 專注電子技術學習與研究
        當前位置:單片機教程網 >> Arduino >> 瀏覽文章

        基于Proteus的Arduino學習06-LM35與溫度測量的實現

        作者:我不是奔跑哥   來源:我不是奔跑哥的blog   點擊數:  更新時間:2014年06月08日   【字體:

        這次我們使用片內ADC和溫度傳感器LM35實現溫度測量,并且串口輸出溫度值。

        LM35是NS公司生產的集成電路溫度傳感器系列產品之一,具有很高的工作精度和較寬的線性工作范圍,它的輸出電壓與攝氏溫度成線性比例!疚墨I1】我們正是利用溫度與電壓的線性關系,通過測量輸出電壓來實現溫度的測量。
         LM35的參數如下:工作電壓:直流4~30V;工作電流:小于133μA;精度:0.5℃精度(在+25℃時);比例因數:線性+10.0mV/℃;非線性值:±1/4℃; 校準方式:直接用攝氏溫度校準;封裝:密封TO-46晶體管封裝或塑料TO-92晶體管封裝;使用溫度范圍:-55~+150℃。
        LM35的TO-92封裝底視如圖1所示,引腳介紹: ①正電源Vcc;②輸出;③輸出地/電源地。

        圖1 LM35(TO-92封裝)
        我們在上一節串口電壓表的基礎上,添加LM35溫度傳感器,在元器件搜索欄中輸入“LM35”,并添加至元器件選擇欄中,如圖2所示。修改后的Arduino UNO實驗板如圖3所示。

        圖2 添加"LM35"溫度傳感器

        圖3 修改后的Arduino UNO實驗板
        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() {
          Serial.begin(9600);  //定義串口波特率為9600
        }
        void loop() {
          sensorValue = analogRead(A0);  //讀取A0口電壓值
           float_sensorValue=(float)sensorValue/1023*500;  //換算為浮點電壓值
          Serial.println(float_sensorValue,1);  //保留兩位小數發送數據
          delay(1000);        // 一秒刷新一次
        }
        編譯成功之后,導入proteus仿真軟件。通過調節LM35的溫度值,可以看到輸出的電壓和溫度的關系,以及串口輸出的溫度值。溫度為0℃、25℃、50℃和100℃的仿真圖如圖4、5、6、7所示。
        圖4 溫度為0℃時的輸出溫度

        圖5 溫度為25℃時的輸出溫度
        圖6 溫度為50℃時的輸出溫度

        圖7 溫度為100℃時的輸出溫度
         
         
         

        由溫度為0℃、25℃、50℃和100℃的仿真圖可以看出,LM35的測溫精度約為0.5℃,100℃時的精度為0.7℃,一方面是LM35自身的精度決定了,另一方便也可能是仿真得不準確性,但是LM35能夠滿足1℃的測量的要求。
        當然,還可以利用標準傳感器對LM35進行系數修正,提高其測量精度。
        最后奉上Proteus仿真視頻。
        關閉窗口

        相關文章

        欧美性色欧美精品视频,99热这里只有精品mp4,日韩高清亚洲日韩精品一区二区,2020国自产拍精品高潮