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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 19491|回復: 36
打印 上一主題 下一主題
收起左側

發個PM2.5檢測 帶BH1750FVI光照、DHT11溫濕度 12864屏的51單片機制作 含程序

  [復制鏈接]
跳轉到指定樓層
樓主
  現在空氣污染很嚴重,尤其是北方地區,所以某一個寶買了一套PM2.5、光照、溫濕度及時間一體的散件,自己做了成品。


時鐘芯片DS1302,精度一般般,準備換DS3231了。
溫濕度芯片DHT11,這個精度更差,準備換DHT22
光照芯片BH1750FVI。
單片機89C52
屏幕是串口并口通用的12864屏

PM2.5檢測原理圖:




單片機源程序:
  1. #include <reg52.h>
  2. #include <intrins.h>
  3. #include "12864.h"
  4. #include "ds1302.h"


  5. typedef   unsigned char BYTE;
  6. typedef   unsigned short WORD;

  7. uint wendu=0;                 //溫度變量
  8. uint shidu=0;                  //濕度變量
  9. uint pm25=0;                 //pm2.5變量


  10. uint stwendu=30;                 //溫度報警變量
  11. uint stguang=100;                  //光照報警變量
  12. uint stpm25=100;                 //pm2.5報警變量

  13. uchar  hor,min,sec;                 //時分秒
  14. uchar  initial_time[]={0x00,0x00,0x00};                 //時分秒設定
  15. unsigned int guangzhao=0;          //光照變量
  16. float xdata guang=0;                  //光照變量




  17. sbit    DQ=P1^0;        //DHT11         單片機引腳

  18. sbit          SCL=P2^0;      //IIC時鐘引腳定義                   讀取光照用
  19. sbit          SDA=P2^1;      //IIC數據引腳定義


  20. sbit          k1=P3^2;      //+   按鍵
  21. sbit          k2=P3^3;      //-
  22. sbit          k3=P3^4;      //設置


  23. sbit          led1=P1^5;      //wendu baojing
  24. sbit          led2=P1^6;      // guangzhao baojing
  25. sbit          led3=P1^7;      //pm2.5baojing

  26. sbit          fmq=P0^0;      //pm2.5baojing

  27. uchar   BUF[8];                         //接收數據緩存區  

  28. unsigned  char xdata dat[6];                                  //串口變量 用于讀取pm2.5
  29. unsigned char  k=0;
  30. unsigned char flagcom=0;


  31. unsigned char  xdata    ge,shi,bai,qian,wan;            //顯示變量


  32. #define          SlaveAddress   0x46 //定義器件在IIC總線中的從地址,根據ALT  ADDRESS地址引腳不同修改
  33.                               //ALT  ADDRESS引腳接地時地址為0x46,接電源時地址為0x3A

  34. //*****************************************長延時*****************************************
  35. void Delay(unsigned int s)
  36. {
  37.         unsigned int i;
  38.         for(i=0; i<s; i++);
  39.         for(i=0; i<s; i++);
  40. }

  41. void Delay5us()
  42. {
  43.     _nop_();_nop_();_nop_();_nop_();
  44.     _nop_();_nop_();_nop_();_nop_();
  45.         _nop_();_nop_();_nop_();_nop_();
  46.         _nop_();_nop_();_nop_();_nop_();
  47. }

  48. void Delay5ms()
  49. {
  50.     WORD n = 560;

  51.     while (n--);
  52. }
  53. //**************************延時函數

  54. void delay_ms(unsigned int k)        
  55. {                                                
  56. unsigned int i,j;                                
  57. for(i=0;i<k;i++)
  58. {                        
  59. for(j=0;j<121;j++)                        
  60. {;}}                                                
  61. }
  62. //溫濕度讀取
  63. //初始化DTH11
  64. bit Init_DTH11()
  65. {
  66.   bit flag;
  67.   uchar num;
  68.   DQ=0;
  69.   delay_ms(20);   // >18ms
  70.   DQ=1;
  71.   for(num=0;num<10;num++);   // 20-40us    34.7us
  72.   for(num=0;num<12;num++);
  73.   flag=DQ;
  74.   for(num=0;num<11;num++); //DTH響應80us
  75.   for(num=0;num<24;num++);    //DTH拉高80us
  76.   return flag;
  77. }
  78. //****************************讀DTH11數據
  79. uchar DTH11_RD_CHAR()
  80. {
  81.   uchar byte=0;
  82.   uchar num;
  83.   uchar num1;
  84.   while(DQ==1);
  85.   for(num1=0;num1<8;num1++)
  86.   {
  87.    while(DQ==0);
  88.    byte<<=1;     //高位在前
  89.    for(num=0;DQ==1;num++);
  90.    if(num<10)
  91.     byte|=0x00;
  92.    else
  93.     byte|=0x01;
  94.   }
  95.   return byte;
  96. }
  97. //******************************讀取DTH11溫度和濕度
  98. void  DTH11_DUSHU()
  99. {
  100.   uchar num;
  101.   if(Init_DTH11()==0)
  102.   {
  103.   shidu=DTH11_RD_CHAR();   //
  104.    DTH11_RD_CHAR();
  105.   wendu=DTH11_RD_CHAR();
  106. //        tem=30;
  107.    DTH11_RD_CHAR();
  108.    DTH11_RD_CHAR();
  109.    for(num=0;num<17;num++);  //最后BIT輸出后拉低總線50us
  110.    DQ=1;
  111.   }
  112. }



  113. //********************************iic 光照///////////////////////////////////////////
  114. //***************************************************************************************
  115. /**************************************
  116. 起始信號
  117. **************************************/
  118. void BH1750_Start()
  119. {
  120.     SDA = 1;                    //拉高數據線
  121.     SCL = 1;                    //拉高時鐘線
  122.     Delay5us();                 //延時
  123.     SDA = 0;                    //產生下降沿
  124.     Delay5us();                 //延時
  125.     SCL = 0;                    //拉低時鐘線
  126. }

  127. /**************************************
  128. 停止信號
  129. **************************************/
  130. void BH1750_Stop()
  131. {
  132.     SDA = 0;                    //拉低數據線
  133.     SCL = 1;                    //拉高時鐘線
  134.     Delay5us();                 //延時
  135.     SDA = 1;                    //產生上升沿
  136.     Delay5us();                 //延時
  137. }

  138. /**************************************
  139. 發送應答信號
  140. 入口參數:ack (0:ACK 1:NAK)
  141. **************************************/
  142. void BH1750_SendACK(bit ack)
  143. {
  144.     SDA = ack;                  //寫應答信號
  145.     SCL = 1;                    //拉高時鐘線
  146.     Delay5us();                 //延時
  147.     SCL = 0;                    //拉低時鐘線
  148.     Delay5us();                 //延時
  149. }

  150. /**************************************
  151. 接收應答信號
  152. **************************************/
  153. bit BH1750_RecvACK()
  154. {
  155.     SCL = 1;                    //拉高時鐘線
  156.     Delay5us();                 //延時
  157.     CY = SDA;                   //讀應答信號
  158.     SCL = 0;                    //拉低時鐘線
  159.     Delay5us();                 //延時

  160.     return CY;
  161. }

  162. /**************************************
  163. 向IIC總線發送一個字節數據
  164. **************************************/
  165. void BH1750_SendByte(BYTE dat)
  166. {
  167.     BYTE i;

  168.     for (i=0; i<8; i++)         //8位計數器
  169.     {
  170.         dat <<= 1;              //移出數據的最高位
  171.         SDA = CY;               //送數據口
  172.         SCL = 1;                //拉高時鐘線
  173.         Delay5us();             //延時
  174.         SCL = 0;                //拉低時鐘線
  175.         Delay5us();             //延時
  176.     }
  177.     BH1750_RecvACK();
  178. }

  179. /**************************************
  180. 從IIC總線接收一個字節數據
  181. **************************************/
  182. BYTE BH1750_RecvByte()
  183. {
  184.     BYTE i;
  185.     BYTE dat = 0;

  186.     SDA = 1;                    //使能內部上拉,準備讀取數據,
  187.     for (i=0; i<8; i++)         //8位計數器
  188.     {
  189.         dat <<= 1;
  190.         SCL = 1;                //拉高時鐘線
  191.         Delay5us();             //延時
  192.         dat |= SDA;             //讀數據               
  193.         SCL = 0;                //拉低時鐘線
  194.         Delay5us();             //延時
  195.     }
  196.     return dat;
  197. }

  198. //*********************************

  199. void Single_Write_BH1750(uchar REG_Address)
  200. {
  201.     BH1750_Start();                  //起始信號
  202.     BH1750_SendByte(SlaveAddress);   //發送設備地址+寫信號
  203.     BH1750_SendByte(REG_Address);    //內部寄存器地址,請參考中文pdf22頁
  204.   //  BH1750_SendByte(REG_data);       //內部寄存器數據,請參考中文pdf22頁
  205.     BH1750_Stop();                   //發送停止信號
  206. }

  207. //********單字節讀取*****************************************
  208. /*
  209. uchar Single_Read_BH1750(uchar REG_Address)
  210. {  uchar REG_data;
  211.     BH1750_Start();                          //起始信號
  212.     BH1750_SendByte(SlaveAddress);           //發送設備地址+寫信號
  213.     BH1750_SendByte(REG_Address);                   //發送存儲單元地址,從0開始        
  214.     BH1750_Start();                          //起始信號
  215.     BH1750_SendByte(SlaveAddress+1);         //發送設備地址+讀信號
  216.     REG_data=BH1750_RecvByte();              //讀出寄存器數據
  217.         BH1750_SendACK(1);   
  218.         BH1750_Stop();                           //停止信號
  219.     return REG_data;
  220. }
  221. */
  222. //*********************************************************
  223. //
  224. //連續讀出BH1750內部數據
  225. //
  226. //*********************************************************
  227. void Multiple_read_BH1750(void)
  228. {   uchar i;        
  229.     BH1750_Start();                          //起始信號
  230.     BH1750_SendByte(SlaveAddress+1);         //發送設備地址+讀信號
  231.         
  232.          for (i=0; i<3; i++)                      //連續讀取6個地址數據,存儲中BUF
  233.     {
  234.         BUF[i] = BH1750_RecvByte();          //BUF[0]存儲0x32地址中的數據
  235.         if (i == 3)
  236.         {

  237.            BH1750_SendACK(1);                //最后一個數據需要回NOACK
  238.         }
  239.         else
  240.         {               
  241.           BH1750_SendACK(0);                //回應ACK
  242.        }
  243.    }

  244.     BH1750_Stop();                          //停止信號
  245.     Delay5ms();
  246. }


  247. //初始化BH1750,根據需要請參考pdf進行修改****
  248. void Init_BH1750()
  249. {
  250.    Single_Write_BH1750(0x01);  

  251. }




  252. void conversion(unsigned int temp_data)  //  數據轉換出 個,十,百,千,萬
  253. {  
  254.     wan=temp_data/10000 ;
  255.          qian=temp_data%10000/1000;
  256.         bai=temp_data%1000/100;
  257.         shi= temp_data%100/10;
  258.         ge=        temp_data%10;
  259. }



  260. /********************************************************************
  261. du1302 讀取時間
  262. ***********************************************************************/



  263. void du_ds1302()
  264. {
  265.     uchar k;
  266.         
  267. //   uchar taddr = 0x81;
  268.   // for (k=0; k<3; k++)
  269. //   {
  270.   //      now_time[k] = read_data_ds1302(taddr);/*格式為: 秒 分 時 日 月 星期 年 */
  271.   //      taddr+= 2;
  272. //   }

  273.    k= read_data_ds1302(0x81);
  274.    k=bcd16(k);
  275.    if(k<60) sec=k;
  276.    if(k>=60){write_data_ds1302(0x8e,0x00); write_data_ds1302(0x80,0);write_data_ds1302(0x8e,0x80);  }
  277.    k= read_data_ds1302(0x83);
  278.    k=bcd16(k);
  279.    if(k<60)min=k;
  280.    k=read_data_ds1302(0x85);
  281.    k=bcd16(k);
  282.    if(k<24) hor=k;



  283. }
  284. void xianshishijian()                                 //顯示時間
  285. {


  286. LCD_Setaddress(1,1);

  287. print("時間");
  288. LCD_write_dat(':');
  289. LCD_write_dat(hor/10+0x30);  
  290. LCD_write_dat(hor%10+0x30);
  291. LCD_write_dat('-');
  292. LCD_write_dat(min/10+0x30);  
  293. LCD_write_dat(min%10+0x30);
  294. LCD_write_dat('-');
  295. LCD_write_dat(sec/10+0x30);  
  296. LCD_write_dat(sec%10+0x30);


  297. }


  298. xianshiwsd()//顯示溫濕度

  299. {

  300.           LCD_Setaddress(2,1);
  301.          //if(wendu>=99)wendu=99;
  302.    print("溫度");
  303.    LCD_write_dat(':');
  304.    LCD_write_dat(wendu/10+0x30);  
  305.    LCD_write_dat(wendu%10+0x30);
  306.          LCD_write_dat(' ');
  307.          LCD_Setaddress(2,5);
  308.          print("濕度");
  309.    LCD_write_dat(':');
  310.    LCD_write_dat(shidu/10+0x30);  
  311.    LCD_write_dat(shidu%10+0x30);
  312.          LCD_write_dat('%');
  313.            // LCD_write_dat(' ');



  314. }

  315. void xianshipm()                   //顯示pm2.5
  316. {
  317.           if(pm25>=999)pm25=999;
  318.    LCD_Setaddress(3,1);

  319.    print("PM2.5");
  320.    LCD_write_dat(':');
  321.          LCD_write_dat(pm25/100+0x30);
  322.    LCD_write_dat(pm25%100/10+0x30);  
  323.    LCD_write_dat(pm25%10+0x30);
  324.          LCD_write_dat('u');
  325.          LCD_write_dat('g');
  326.          LCD_write_dat('/');
  327.    LCD_write_dat('m');
  328.    LCD_write_dat('3');
  329.          LCD_write_dat(' ');
  330.          LCD_write_dat(' ');

  331. }

  332. void xianshiguangzhao()                           //顯示光照
  333. {
  334.    LCD_Setaddress(4,1);
  335.    print("光照");
  336.    LCD_write_dat(':');
  337.    LCD_write_dat(wan+0x30);
  338.    LCD_write_dat(qian+0x30);  
  339.    LCD_write_dat(bai+0x30);
  340.          LCD_write_dat(shi+0x30);
  341.    LCD_write_dat(ge+0x30);
  342.          LCD_write_dat(' ');
  343.          LCD_write_dat('L');
  344.    LCD_write_dat('X');

  345. }





  346. void baojing()
  347. {

  348.   if(wendu>stwendu) led1=0;
  349.   else  led1=1;
  350.   if(guang<stguang)  led2=0;
  351.   else led2=1;
  352.   if(pm25>stpm25)
  353.   {
  354.           led3=0;
  355.           fmq=0;
  356.   
  357.   
  358.   }
  359.   else
  360.   {
  361.   led3=1;
  362.   fmq=1;
  363.   }

  364. }





  365. //////////////////////串口、、、、、、、、、、、、、用來讀取 pm2.5/////////////////////////////////////////////////



  366. void UartInit(void)                //2400bps@11.0592MHz
  367. {

  368.   SCON = 0x50;            //8-bit variable UART
  369.         PCON=0X00;
  370.   TMOD = 0x20;            //Set Timer1 as 8-bit auto reload mode
  371.   TH1 = TL1 = 0XF4; //Set auto-reload vaule
  372.   TR1 = 1;                //Timer1 start run



  373.   ES = 0;                 //Enable UART interrupt
  374.   EA = 0;                 //Open master interrupt switch
  375. }

  376. void SendByte(unsigned char dat)
  377. {
  378. SBUF = dat;
  379. while(!TI);
  380.        TI = 0;
  381. }




  382. void UART_SER (void) interrupt 4                                 
  383. {
  384.    
  385.         uint aa;
  386.         if (RI)
  387.     {
  388.         RI = 0;             //Clear receive interrupt flag
  389.         
  390.         dat[k]= SBUF;          //P0 show UART data

  391.                 if(dat[0]!=0xaa) k=0;
  392.                 else k++;           
  393.             if((dat[0]==0xaa)&&(k>5))                                                        //讀取pm2.5數據
  394.                 {
  395.                
  396.                     ES=0;
  397.                           EA=0;
  398.                     aa=dat[1]*255+dat[2];
  399.                           if(aa!=0) pm25=aa;
  400.                           flagcom=0;
  401.                            Delay(2000);
  402.                         
  403.                           k=0;

  404.                 }
  405.      }




  406.     if (TI)
  407.     {
  408.         TI = 0;             //Clear transmit interrupt flag

  409.     }


  410. }






  411. //************************************主函數************************************************************
  412. void main(void)
  413. {


  414.         uint flaga=0;                                                  //pm2.5傳感器 串口無法讀取時正常顯示其它數據標志
  415.         unsigned char  aa;                      //按鍵切換標志
  416.                                                                                  //上電延時
  417.         Delay(6000);                                                 //初始化時鐘
  418.   init_ds1302();                                                //時鐘初始化
  419.          LCD_draw_clr();                                                //屏幕復位
  420.         k1=1;                                                                //按鍵引腳拉高
  421.         k2=1;
  422.         k3=1;
  423.         Init_BH1750();                      //初始化BH1750

  424.         flagcom=0;                                                           //串口中斷 標志
  425.         UartInit()        ;
  426.         aa=0;
  427.         while(1)
  428.         {
  429.         

  430.                   if(k3==0)                                                                 //設置按鍵計數
  431.                   {
  432.                    Delay(10000);
  433.                           if(k3==0)
  434.                         {
  435.                         
  436.                           aa++;
  437.                           Delay(2000);
  438.                         }
  439.                   
  440.                   }



  441.                  if((flagcom==0)&(aa==0))                                                 //循環讀取數據  flagcom 串口中斷標志 aa按鍵標志

  442.                  {
  443.                Delay(500);
  444.                du_ds1302() ;                                //讀取1302時間
  445.                      Delay(500);
  446.          xianshishijian();                         //顯示時間
  447.             
  448.         
  449.                       Delay(2000);
  450.                      DTH11_DUSHU();                                   //溫度濕度讀取
  451.          Delay(100);
  452.         
  453.                      xianshiwsd();                                  // 顯示溫度濕度
  454.                      Delay(1000);
  455.                      xianshipm();                                  //顯示pm2.5
  456.                      Delay(1000);
  457.                      Single_Write_BH1750(0x01);   // 讀取 光照
  458.          Single_Write_BH1750(0x10);   // H- resolution mode
  459.                      Delay(180);          //延時

  460.          Multiple_Read_BH1750();       //連續讀出數據,存儲在BUF中
  461.                      guangzhao=BUF[0];
  462.          guangzhao=(guangzhao<<8)+BUF[1];//合成數據
  463.                      guang=(float)guangzhao/1.2;
  464.                      conversion(guang) ;
  465.          xianshiguangzhao();                                //顯示光照
  466.                      baojing();                        //報警函數
  467.                

  468.                     Delay(500);
  469.                     flaga=0;
  470.                     flagcom=1;
  471.                     ES=1;
  472.                     EA=1;
  473.                     Delay(500);
  474.                  }

  475.                 Delay(500);
  476.                 flaga++;


  477.                 if(flaga>=10)
  478.                 {
  479.                   flagcom=0;
  480.                   flaga=0;
  481.                
  482.                 }



  483.             //設置baojingzhi


  484.                  


  485.                
  486.            if(aa>5) aa=0;

  487.             if(aa==1)
  488.           {
  489.                   Delay(5000)        ;
  490.                   LCD_Setaddress(1,1);
  491.               print("      設置    ");

  492.                   LCD_Setaddress(2,1);
  493.               print("溫度報警:");
  494.         
  495.                   conversion(stwendu);
  496.                  
  497.                   LCD_write_dat(shi+0x30);
  498.           LCD_write_dat(ge+0x30);
  499.               LCD_write_dat(' ');
  500.                   LCD_write_dat(' ');
  501.                   LCD_write_dat(' ');
  502.                   LCD_write_dat(' ');
  503.                   LCD_write_dat(' ');
  504.                     LCD_Setaddress(3,1);
  505.               print("               ");
  506.                   LCD_Setaddress(4,1);
  507.               print("                ");

  508.                    if(k1==0)
  509.                   {        Delay(500)        ;
  510.                    if(k1==0)
  511.                    {
  512.                             stwendu++;
  513.                    }
  514.                    }

  515.                      if(k2==0)
  516.                   {        Delay(500)        ;
  517.                    if(k2==0)
  518.                    {
  519.                             stwendu--;
  520.                    }

  521.                    }
  522.         
  523.           }


  524.           if(aa==2)
  525.           {

  526.                   LCD_Setaddress(1,1);
  527.               print("      設置    ");

  528.                   LCD_Setaddress(2,1);
  529.               print("光照報警:");
  530.         
  531.                   conversion(stguang);
  532.                   LCD_write_dat(wan+0x30);
  533.                   LCD_write_dat(qian+0x30);
  534.                   LCD_write_dat(bai+0x30);
  535.                   LCD_write_dat(shi+0x30);
  536.           LCD_write_dat(ge+0x30);
  537.               LCD_write_dat(' ');
  538.                     LCD_Setaddress(3,1);
  539.               print("               ");
  540.                   LCD_Setaddress(4,1);
  541.               print("                ");

  542.                    if(k1==0)
  543.                   {        Delay(500)        ;
  544.                    if(k1==0)
  545.                    {
  546.                             stguang++;
  547.                    }
  548.                    }

  549.                      if(k2==0)
  550.                   {        Delay(500)        ;
  551.                    if(k2==0)
  552.                    {
  553.                             stguang--;
  554.                    }

  555.                    }
  556.         
  557.           }

  558.              if(aa==3)
  559.           {

  560.                   LCD_Setaddress(1,1);
  561.               print("      設置    ");

  562.                   LCD_Setaddress(2,1);
  563.               print("PM2.5 ");
  564.                   LCD_Setaddress(2,4);
  565.               print("報警:");


  566. …………余下代碼請下載附件…………
復制代碼

原理圖等資料:
SHEET1.pdf (289.29 KB, 下載次數: 151)

BH1750FVI.pdf (386.29 KB, 下載次數: 128)
CN_DS1302.pdf (205.99 KB, 下載次數: 86)
DHT11濕溫度傳感器使用范例.pdf (388 KB, 下載次數: 116)
QC12864B.pdf (352.95 KB, 下載次數: 113)
育松電子 QC12864B使用說明.pdf (285.61 KB, 下載次數: 106)

源碼下載:
程序.rar (12.44 KB, 下載次數: 377)

評分

參與人數 2黑幣 +10 收起 理由
二狗有春天 + 5 共享資料的黑幣獎勵!
QY-12345678 + 5 很給力!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏19 分享淘帖 頂2 踩
回復

使用道具 舉報

沙發
ID:171746 發表于 2017-4-9 21:39 | 只看該作者
下來做一個。
回復

使用道具 舉報

板凳
ID:18572 發表于 2017-4-10 16:32 | 只看該作者
下載的看不到啊!在下載還要扣幣啊
回復

使用道具 舉報

地板
ID:171746 發表于 2017-4-16 07:38 | 只看該作者
請問:夏普GP2Y10模塊怎樣接線?謝謝
回復

使用道具 舉報

5#
ID:171746 發表于 2017-4-18 09:38 | 只看該作者
夏普GP2Y10模塊怎樣接線?謝謝
回復

使用道具 舉報

6#
ID:171746 發表于 2017-4-18 09:38 | 只看該作者
lucq7896 發表于 2017-4-16 07:38
請問:夏普GP2Y10模塊怎樣接線?謝謝

夏普GP2Y10模塊怎樣接線?
回復

使用道具 舉報

7#
ID:171746 發表于 2017-4-20 14:46 | 只看該作者
請問:夏普PM2.5模塊是怎么接線?能介紹一下嗎?
回復

使用道具 舉報

8#
ID:161033 發表于 2017-4-20 22:36 | 只看該作者
感謝,分要的太多了。
回復

使用道具 舉報

9#
ID:192611 發表于 2017-4-23 11:10 | 只看該作者
你好,能加一下qq嗎,495268118
回復

使用道具 舉報

10#
ID:192611 發表于 2017-4-23 11:12 | 只看該作者
你好,能加一下qq嗎
回復

使用道具 舉報

11#
ID:190794 發表于 2017-4-23 20:31 | 只看該作者
感覺寫的不錯,希望可以多聊聊
回復

使用道具 舉報

12#
ID:171746 發表于 2017-4-28 13:57 | 只看該作者
有做成功的嗎?  我做的就PM2.5不顯示。
回復

使用道具 舉報

13#
ID:198294 發表于 2017-5-8 19:00 | 只看該作者
感謝,分要的太多了
回復

使用道具 舉報

14#
ID:198390 發表于 2017-5-8 22:10 | 只看該作者
下來做畢業設計。
回復

使用道具 舉報

15#
ID:199653 發表于 2017-5-22 22:41 | 只看該作者
不錯不錯下載來看看
回復

使用道具 舉報

16#
ID:171746 發表于 2017-5-26 16:13 | 只看該作者
我做了個,不知為什么PM2.5沒有顯示,其他都正常。求幫忙。
回復

使用道具 舉報

17#
ID:205205 發表于 2017-5-26 20:29 | 只看該作者
贊!跟著樓主學習學習!
回復

使用道具 舉報

18#
ID:169459 發表于 2017-7-3 15:07 | 只看該作者
lucq7896 發表于 2017-4-16 07:38
請問:夏普GP2Y10模塊怎樣接線?謝謝

只接3根線,+5V  GND 和數據到單片機
回復

使用道具 舉報

19#
ID:169459 發表于 2017-7-4 09:28 | 只看該作者

不知道PM2.5模塊怎么接線的請看這圖
回復

使用道具 舉報

20#
ID:169459 發表于 2017-7-4 09:30 | 只看該作者
lucq7896 發表于 2017-4-18 09:38
夏普GP2Y10模塊怎樣接線?

回復里已上傳實物圖,請參照樓下回復
回復

使用道具 舉報

21#
ID:169459 發表于 2017-7-4 09:30 | 只看該作者
至尊寶123 發表于 2017-4-23 11:10
你好,能加一下qq嗎,495268118

回復里已上傳實物圖,請參照樓下回復的圖片
回復

使用道具 舉報

22#
ID:218453 發表于 2017-7-10 11:24 | 只看該作者
沒有黑幣怎么破- -
回復

使用道具 舉報

23#
ID:75222 發表于 2017-7-18 16:06 | 只看該作者
我要賺黑幣,頂一個
回復

使用道具 舉報

24#
ID:220722 發表于 2017-7-19 14:02 | 只看該作者
你好,原理圖里面的J1 ISP是什么東西呢?
回復

使用道具 舉報

25#
ID:232331 發表于 2017-9-20 18:53 | 只看該作者
請問一下12864是怎么接線的,P0.0不是已經接了蜂鳴器了嗎
回復

使用道具 舉報

26#
ID:146874 發表于 2017-9-29 12:07 | 只看該作者
感謝分享 正在學這個
回復

使用道具 舉報

27#
ID:146874 發表于 2017-10-6 11:58 | 只看該作者
非常好的參考資料,感謝分享
回復

使用道具 舉報

28#
ID:237343 發表于 2017-10-8 16:35 | 只看該作者
程序很給力
回復

使用道具 舉報

29#
ID:146874 發表于 2017-10-9 18:42 | 只看該作者
挺不錯的參考材料,感謝樓主
回復

使用道具 舉報

30#
ID:481853 發表于 2019-3-24 10:46 來自手機 | 只看該作者
這個gp2y 后面的型號是多少   我網上看的都是模擬量需要da轉換
回復

使用道具 舉報

31#
ID:483827 發表于 2019-3-26 10:53 | 只看該作者
lucq7896 發表于 2017-5-26 16:13
我做了個,不知為什么PM2.5沒有顯示,其他都正常。求幫忙。

您好 問題解決了嗎   我也遇到了這個問題
回復

使用道具 舉報

32#
ID:599670 發表于 2020-5-29 13:49 | 只看該作者
這個功能不錯,這個換成手機查看最好了。
回復

使用道具 舉報

33#
ID:659888 發表于 2020-5-30 08:32 | 只看該作者
謝謝,幸好有你!
回復

使用道具 舉報

34#
ID:61088 發表于 2020-10-27 15:57 | 只看該作者

贊!跟著樓主學習學習!
回復

使用道具 舉報

35#
ID:918154 發表于 2021-5-19 09:48 | 只看該作者
有人做好了嗎,求指導
回復

使用道具 舉報

36#
ID:574799 發表于 2021-6-19 20:55 | 只看該作者
12864第15腳應該是VCC
回復

使用道具 舉報

37#
ID:314651 發表于 2024-4-15 13:46 | 只看該作者
這個資料對嗎,有人做出來嗎
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 不卡一区二区在线观看 | 天天摸天天干 | 色又黄又爽网站www久久 | 精品久久久久久久久久久久久久 | 91超碰在线 | 精品一二区 | 一级黄色毛片子 | 日韩视频中文字幕 | 久久久久久国产精品mv | 欧美中文字幕在线观看 | 久久久久久久久国产精品 | 免费视频一区二区 | 国产精品久久久久久久久久久久冷 | 欧美aaaaaaaa | 久草中文在线 | 色婷婷久久 | 久久久蜜桃一区二区人 | 99精品国自产在线 | 国产一二区视频 | jizz中国日本| 91在线观看 | 国产精品久久久久久久久久久久久 | 久久久夜 | 国产视频中文字幕 | 欧美成ee人免费视频 | 一级黄在线观看 | 日韩精品一区二区三区中文在线 | 国产精品自拍啪啪 | 淫片一级国产 | 超碰在线播 | 久久久久香蕉视频 | 久久精品一区二区三区四区 | 色婷婷久久久亚洲一区二区三区 | 黄色电影在线免费观看 | 成人片免费看 | 中文二区 | 日韩精品在线看 | 亚洲一级av毛片 | 国产一级片在线播放 | 成人二区| 国产精品一区二区不卡 |