【NetDIY應用開發-02】經過AD採集獲取溫溼度

 本示例是NetDIY智能主控板上的第二個應用程序。html

   本示例經過AM1001模塊採集溫溼度數據,並經過模擬量輸出。工具

   智能主控板照片以下。
url

   【NetDIY應用開發-02】經過AD採集獲取溫溼度

AM1001模塊如圖所示:spa

   【NetDIY應用開發-02】經過AD採集獲取溫溼度


【NetDIY應用開發-02】經過AD採集獲取溫溼度

   AD通道可採集的電壓範圍是0~3.3V(全部採集通道的總電路不要超過20mA),注意不要超出該範圍,以避免對芯片形成永久的損害(具體指標能夠參見STM32F207相關數據手冊)。調試

  【NetDIY應用開發-02】經過AD採集獲取溫溼度

【NetDIY應用開發-02】經過AD採集獲取溫溼度

     傳感器採用四線方式,5V供電,並提供了一些以供計算的標準參數。對溼度採集來講,相應管腳直接輸出0~3V的電壓值,而後直接查表就能夠很容易計算出溼度值來。而溫度採集卻不一樣,輸出的電壓範圍大概是0~0.8V,變化很是小,而且不能經過這個電壓值,直接查表獲取溫度值,而是間接計算出電阻值,而後再查表獲取相關溫度值。orm

      溫度採集除了這些和溼度採集不一樣外,還須要外加一個電阻,該電阻的阻值要和傳感器模塊中的溫敏電阻25度時的阻值同樣(主要目的是便於計算)。外接電阻和溫敏電阻實際上是串聯在一塊兒,咱們已經對AM1001模塊進行相應調整,已經將外接電阻集成到AM1001內部,電阻阻值爲10KΩAD採集的就是這10K上的電壓值。那麼溫敏電阻的阻值就能夠這樣計算:假設10K上的電壓值爲V,那麼溫敏電阻上的電壓就是5-V(由於模塊供電電壓爲5V),根據等比公式就能夠知道當前溫敏電阻的值R= (5 - V) / V * R0htm

   實際接線方式以下圖所示:【NetDIY應用開發-02】經過AD採集獲取溫溼度blog

   其中溼度採集部分代碼以下:開發

          //溼度get

        static double ConvertHumidity(double value)

            {

            double V = (value / 4096) * 3.3;

            return DataTransition(V, AMT1001_Voltage, AMT1001_Humidityvalue);

            }

   溼度採集部分代碼以下:

         //溫度

        static double ConvertTemperature(double value)

            {

            double V = (value / 4096) * 3.3;

            double R = (5 - V) / V * AMT1001_R;

            return DataTransition(R, AMT1001_Resistance, AMT1001_Temperaturevalue);

            }  

主方法中的代碼以下:       

            AnalogInput AI1 = new AnalogInput(Mainboard.ADC.Channel0);

//模擬量輸入通道爲channel0,對應CPU管腳PA7,溫溼度傳感器的黃線

            AnalogInput AI2 = new AnalogInput(Mainboard.ADC.Channel1);

//模擬量輸入通道爲channel1,對應CPU管腳PA6,溫溼度傳感器的白線

            double H,    //溼度

                         T;    //溫度

            string info = "";

            while (true)

                {

                info = "H=";

                H = ConvertHumidity(AI1.ReadRaw());  

                      //讀取溼度值

                T = ConvertTemperature(AI2.ReadRaw());

                      //讀取溫度值

                info += H.ToString("F2") + "% ; T=" + T.ToString("F2") + "℃";

              

                Debug.Print(info);  

                //在輸出窗口中打印結果

                Thread.Sleep(1000);

                }

   採用MFDeploy.exe調試工具,程序運行結果以下圖所示:

【NetDIY應用開發-02】經過AD採集獲取溫溼度

相關文章
相關標籤/搜索