乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      基于Arduino的18B20+LCD12864溫度顯示

       開(kāi)啟美好每一天 2014-01-14
       本帖最后由 greenfort 于 2012-8-13 01:49 編輯

      初學(xué)Arduino,制作的通過(guò)12864顯示多個(gè)18B20溫度的程序

      接線
      請(qǐng)參考本論壇中的18B20及LCD12864與Arduino接線,這里不再重復(fù),只是強(qiáng)調(diào)一點(diǎn),18B20的PIN1和PIN3要同時(shí)接地,否則會(huì)在返回若干值后出現(xiàn)一次錯(cuò)誤值(85.00)不知道什么原因

      鑒于12864的顯示大小,程序最多接9個(gè)18B20傳感器,多了顯示不了

      程序代碼如下
      1. /*
      2. LCD  Arduino
      3. PIN1 = GND
      4. PIN2 = 5V
      5. RS(CS) = 8;
      6. RW(SID)= 9;
      7. EN(CLK) = 3;
      8. PIN15 PSB = GND;
      9. */
      10. #include <OneWire.h>
      11. #include <DallasTemperature.h>
      12. #include <stdlib.h>
      13. #define ONE_WIRE_BUS 2
      14. #include "LCD12864RSPI.h"
      15. #define AR_SIZE( a ) sizeof( a ) / sizeof( a[0] )

      16. OneWire oneWire(ONE_WIRE_BUS);
      17. DallasTemperature sensors(&oneWire);

      18. char str[4]; //定義溫度值存儲(chǔ)數(shù)組,4位,其中3位為數(shù)字,1位為小數(shù)點(diǎn)
      19. double temp =0; //定義中間變量,用于將獲取的float型溫度值轉(zhuǎn)變?yōu)閡nsigned char數(shù)組
      20. unsigned char show[]={
      21.   0xB5,0xB1,0xC7,0xB0,0xBB,0xB7,0xBE,0xB3,0xCE,0xC2,0xB6,0xC8};//當(dāng)前環(huán)境溫度
      22. int numberOfDevices;
      23. void setup()
      24. {
      25.   Serial.begin(9600);
      26.   sensors.begin(); //傳感器初始化
      27.   numberOfDevices = sensors.getDeviceCount();
      28.   LCDA.Initialise(); // 屏幕初始化
      29.   LCDA.DisplayString(0,0,show,AR_SIZE(show));//第一行第1格開(kāi)始,顯示文字“當(dāng)前環(huán)境溫度”
      30. }

      31. void loop()
      32. {
      33.   sensors.requestTemperatures(); //獲取溫度值
      34.   for(int i=0;i<numberOfDevices; i++)    //逐個(gè)獲取傳感器的溫度
      35.   {
      36.     temp=sensors.getTempCByIndex(i); //使用索引序號(hào)獲得攝氏度數(shù)值
      37.     dtostrf(temp,4,2,str);  //將獲取的數(shù)值轉(zhuǎn)換為字符型數(shù)組
      38.     if (i<=2)
      39.     {
      40.       LCDA.DisplayString(1,i*3,(unsigned char *)str,sizeof(str));
      41.     } //自第2行第1列開(kāi)始顯示溫度值
      42.     else
      43.     {
      44.       if(i>2&&i<=5)
      45.       {
      46.       LCDA.DisplayString(2,(i-3)*3,(unsigned char *)str,sizeof(str));
      47.       }
      48.       else
      49.       {
      50.       LCDA.DisplayString(3,(i-6)*3,(unsigned char *)str,sizeof(str));  
      51.       }
      52.     }
      53.   }
      54. }
      復(fù)制代碼
      無(wú)標(biāo)題.png

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多