久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

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

基于Protues的Arduino學習07-DS18B20與數字式溫度測量的實現

作者:我不是奔跑哥   來源:我不是奔跑哥的blog   點擊數:  更新時間:2014年06月08日   【字體:
這次我們使用數字式溫度傳感器DS18B20實現溫度測量,并且串口輸出溫度測量值。
DS18B20是美國DALLAS半導體公司的數字化單總線智能溫度傳感器,與傳統的熱敏電阻相比,它能夠直接讀出被測溫度,并且可根據實際要求通過簡單的編程實現9~12位的數字值讀數方式。從DS18B20讀出信息或寫入信息僅需要一根線(單總線)讀寫,總線本身也可以向所掛接的設備供電,而無需額外電源。
DS18B20的性能特點如下:
(1)單線接口方式實現雙向通訊; 
(2)供電電壓范圍:+3.0V~+5.5V,可用數據線供電;
(3)測溫范圍:-55~+125℃。固有測溫分辨率為0.5℃。
(4)通過編程可實現9~12位的數字讀數方式;
(5)支持多點的組網功能,多個DS18B20可以并聯在唯一的單總線上,實現多點測溫。
DS18B20的外形及管腳排列如圖1所示,DS18B20引腳定義:(1)DQ為數字信號輸入/輸出端;(2)GND為電源地;(3)VDD為外接供電電源輸入端(在寄生電源接線方式時接地)。


圖1 DS18B20封裝圖
首先,我們需要proteus仿真里面添加DS18B20數字式溫度傳感器,在元器件搜索欄中輸入“DS18B20”,并添加至元器件選擇欄中,如圖2所示。并將其DQ管腳接至數字口2腳,也就是ATmega328P的4管腳,同時接10kΩ的上拉電阻,VCC接至+5V,GND接至地端,修改后的Arduino UNO仿真圖如圖3所示。
圖2 添加DS18B20傳感器

圖3 修改后的Arduino UNO仿真板
雙擊DS18B20、右擊選擇編輯參數屬性(第二項)如圖4所示、或者左擊選中DS18B20然后按下ctrl+E,會彈出如圖5所示的DS18B20設置框。設置框里有內部序列號【注】、當前溫度值、調節的最小變化量。
【注】內部序列號用于單總線上掛有多個DS18B20的情況下,甄別不同的傳感器。只有內部序列號相同的DS18B20才會響應單總線上的命令并作出相應的響應。
圖4 選擇“編輯屬性”一項

圖5 DS18B20傳感器參數設置欄
DS18B20設置完成后,下面進入Arduino編程部分。首先,在網上下載DallasTemperature的庫文件,然后解壓放置在arduino的libraries文件夾下面,啟動arduino IDE,進入example中的DallasTemperature中選擇simple文件并打開,如圖6所示。

圖6 打開DS18B20例子
Arduino代碼清單:
#include <OneWire.h>
#include <DallasTemperature.h>

// Data wire is plugged into port 2 on the Arduino
#define ONE_WIRE_BUS 2

// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);

// Pass our oneWire reference to Dallas Temperature. 
DallasTemperature sensors(&oneWire);

void setup(void)
{
  // start serial port
  Serial.begin(9600);
  Serial.println("Dallas Temperature IC Control Library Demo");

  // Start up the library
  sensors.begin();
}

void loop(void)
  // call sensors.requestTemperatures() to issue a global temperature 
  // request to all devices on the bus
  Serial.print("Requesting temperatures...");
  sensors.requestTemperatures(); // Send the command to get temperatures
  Serial.println("DONE");
  
  Serial.print("Temperature for the device 1 (index 0) is: ");
  Serial.println(sensors.getTempCByIndex(0));  
}
編譯成功之后,導入proteus仿真軟件進行仿真。通過調節DS18B20的溫度值,可以看到串口輸出的溫度數值,以及與DS18B20設置的標準值之間的誤差。【注】溫度為0℃、25℃、50℃和100℃的仿真圖如圖7、8、9、10所示。
【注】由于仿真環境為理想環境,傳感器為理想模型,僅能驗證能否對傳感器進行讀寫操作,初步地驗證程序的正確性。實際測量過程中,測量溫度與實際溫度會有一定的誤差,誤差大小和傳感器、環境等都有關系。
圖7 溫度為0℃時的情況

圖8 溫度為25℃時的情況

圖9 溫度為50℃時的情況

圖10 溫度為100℃時的情況
最后奉上視頻:

相關文章

主站蜘蛛池模板: 日韩有码在线观看 | a级大毛片| 日韩精品免费在线 | 日韩一区二区在线视频 | 国产一区二区三区免费 | 国产毛片久久久 | а_天堂中文最新版地址 | 日本网站免费观看 | 国产精品一区二区视频 | 日本中文字幕视频 | 国产四区| 99视频在线播放 | 亚洲精品视频在线 | 波多野结衣先锋影音 | 久久日韩粉嫩一区二区三区 | 99中文字幕 | 99福利视频导航 | 日本色综合 | 日韩三区 | 日本天堂视频在线观看 | 亚洲日韩第一页 | 欧美日韩高清一区二区三区 | 日本一道本视频 | 国产精品日韩欧美一区二区三区 | 99热精品国产 | 久久精彩视频 | 国产一区二区三区四区三区四 | 日本精品一区二区三区在线观看视频 | 精品在线看 | 成人在线中文字幕 | 影音先锋欧美资源 | 毛片一区二区三区 | 一区二区视频在线观看 | 淫片专区| 国外成人在线视频网站 | 午夜av电影院 | 中文字幕亚洲精品 | 国产毛片久久久 | 青青草国产在线观看 | 欧美日韩三级视频 | 日本成人福利 |