<address id="tnvjh"></address>
    <form id="tnvjh"><listing id="tnvjh"><meter id="tnvjh"></meter></listing></form>

      <form id="tnvjh"></form>

      <address id="tnvjh"><th id="tnvjh"></th></address>

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

        使用DS18B20溫度傳感器采集溫度

        作者:未知   來源:會員上傳   點擊數:  更新時間:2014年05月20日   【字體:

          Rainbow開發包中已經封裝了DTH11溫濕度傳感器,按照我的想法,同類型的傳感器有了一種就可以了,本不想做DS18B20的封裝,但是前兩天有個朋友讓我給他做個項目,需要測液體的溫度,用DHT11個頭太大,主要用于測室溫,而DS18B20有用于測量液體溫度的封裝,非常方便使用。迫于無奈,今天就花了半天時間做了個小小的封裝,在Rainbow開發板上通過了測試。

         
            使用DS18B20非常簡單,和DHT11差不多,按照下列步驟:
            1、定義DS18B20對象,設定DS18B20的DQ數據線所使用的GPIO,如:DS18B20 ds(PC1);
            2、調用read()方法進行溫度采集,如果返回DS18B20::OK,表示采集成功,其它值表示失敗
            3、采集成功之后就可以使用對象的getCelsius()和getFahrenheit()分別獲取到攝氏溫度和華氏溫度
         
            我這次試驗選用了PC3與DS18B20的DQ管腳相連,這個管腳是用于DHT11數據采集,帶有一個4.7K上拉電阻,電路原理圖和實際接線圖如下:
         
            在軟件包的“Projects\DS18B20”文件夾包含了本文的完整工程,可以直接編譯、燒寫和調試。來看看main.cpp的代碼:
        #include "WProgram.h"
        #include "DS18B20.h"
         
        //接到DHT11_DATA_PIN,通過4.7K電阻上拉
        DS18B20 ds(DHT11_DATA_PIN);
         
        void setup()
        {
          //啟用默認串口,波特率9600
          Serial.start();
        }
         
        void loop()
        {
          //數據采集成功
          if(ds.read() == DS18B20::OK)
          {
            Serial.print("Celsius:");
            Serial.println(ds.getCelsius());
            Serial.print("Fahrenheit:");
            Serial.println(ds.getFahrenheit());
            delay(5000);
          }
        }
         
        int main(void)
        {
          //初始化開發板
          boardInit();
          setup();
         
          while(1) loop();
        }
         
            程序非常簡單,就不再啰嗦,將USART3和USB-TTL模塊連接,在串口調試工具中可以看到運行效果:
        關閉窗口
        和老头做爰很舒服,JK白丝裤袜开裆自慰喷水,在线天堂www在线...中文

          <address id="tnvjh"></address>
          <form id="tnvjh"><listing id="tnvjh"><meter id="tnvjh"></meter></listing></form>

            <form id="tnvjh"></form>

            <address id="tnvjh"><th id="tnvjh"></th></address>