1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        和12歲小同志搞創(chuàng)客開發(fā):手撕代碼,做一款溫濕度檢測(cè)器

        共 2069字,需瀏覽 5分鐘

         ·

        2021-12-12 11:23

        點(diǎn)擊上方藍(lán)色字體,關(guān)注我們


        本篇博文將使用DHT11做一款溫濕度檢測(cè)器,檢測(cè)的溫濕度數(shù)據(jù)將通過(guò)LCD1602顯示。


        項(xiàng)目連線效果如下所示:



        實(shí)現(xiàn)代碼如下所示:


        #include#include#include
        LiquidCrystal_I2C lcd(0x20,16,2); //設(shè)置LCD的地址為0x20,可以設(shè)置2行,每行16個(gè)字符
        dht11 DHT;#define DHT11_PIN 4
        void setup(){ lcd.init(); // LCD初始化設(shè)置 lcd.backlight(); // 打開LCD背光 Serial.begin(9600); // 設(shè)置串口波特率9600
        //串口輸出”Type, status, Humidity(%), Temperature(C)” Serial.println("Type,\tstatus,\tHumidity(%),\tTemperature(C)");
        lcd.print("Humidity(%): "); //LCD屏顯示” Humidity(%):” lcd.setCursor(0, 1); //光標(biāo)移到第2行,第一個(gè)字符 lcd.print("Temp(C): "); //LCD屏顯示”Temp(C):”}
        void loop(){ int chk; //chk用于存儲(chǔ)DHT11傳感器的數(shù)據(jù) Serial.print("DHT11, \t");
        //讀取DHT11傳感器的數(shù)據(jù) chk = DHT.read(DHT11_PIN); switch (chk){ case DHTLIB_OK: Serial.print("OK,\t"); break; case DHTLIB_ERROR_CHECKSUM: Serial.print("Checksum error,\t"); break; case DHTLIB_ERROR_TIMEOUT: Serial.print("Time out error,\t"); break; default: Serial.print("Unknown error,\t"); break; }
        //串口顯示溫濕度值 Serial.print(DHT.humidity,1); Serial.print(",\t"); Serial.println(DHT.temperature,1);
        //LCD顯示溫濕度值 lcd.setCursor(12, 0); lcd.print(DHT.humidity,1); lcd.setCursor(8, 1); lcd.print(DHT.temperature,1);
        delay(1000);}


        首先把用到的庫(kù)聲明一下:


        #include#include#include


        本項(xiàng)目使用到dht11.h和LiquidCrystal_l2C的庫(kù),需要加載庫(kù),那么Wire.h的庫(kù)為什么不需要加載呢?因?yàn)槲覀兿螺d的Arduino IDE本身自帶這個(gè)庫(kù)。


        有了現(xiàn)有的庫(kù),所以只需要在程序的一開始聲明一下LCD:


        LiquidCrystal_I2C lcd(0x20,16,2);  //設(shè)置LCD的地址為0x20,可以設(shè)置2行,每行16個(gè)字符


        其中:

        • 0X20:是LCD I2C地址,由屏后面的A0~A1決定,可參見產(chǎn)品手冊(cè);

        • 16:每行16個(gè)字符;

        • 2:共2行。


        程序中LiquidCrystal_I2C.h設(shè)計(jì)函數(shù)說(shuō)明如下表所示:



        “switch”可以理解為是“開關(guān)”,多選擇開關(guān)。與if語(yǔ)句相似之處在于switch…case也用于判斷,又與if不同點(diǎn)在于它能判斷多種情況。使用如下所示:



        需要注意幾點(diǎn):


        1、case后面是冒號(hào),不是分號(hào)。
        2、關(guān)鍵字break用于退出switch語(yǔ)句,通常每條case語(yǔ)句都以break結(jié)尾。如果沒(méi)有break語(yǔ)句,switch語(yǔ)句將會(huì)一直執(zhí)行接下來(lái)的語(yǔ)句(一直向下)直到遇見一個(gè)break,或者switch語(yǔ)句結(jié)尾。


        最后,下載運(yùn)行程序看看效果吧~


        往期推薦



        點(diǎn)擊閱讀原文,更精彩~
        瀏覽 20
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            日韩人妻一区二区三区三 | 亚洲小说欧美激情另类A片小说 | 亚洲午夜精品成人毛片 | 日韩成人电影一区二区 | 三上悠亚在线观看一区二区 | 淫淫视频 | 国产成人无码一区二区在线 | 色偷偷色偷偷色偷偷在线视频 | 肏屄在线观看视频 | 北条麻妃与黑人aⅴ片hd |