野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 13838|回复: 19

关于DHT11温湿度传感器问题

[复制链接]
发表于 2016-9-4 20:19:32 | 显示全部楼层 |阅读模式
本帖最后由 shidaide6 于 2016-9-5 14:47 编辑

QQ截图20160904200332.png 这个是MINI版子的DHT11温湿度传感器 电路原理图,
于是我自己买了DHT11温湿度的模块来实验,模块如下图
3.jpg 但是没有在板子上找到直接的接口,于是自己接了一个vcc电源接口,一个gnd,一个PE6管脚,
接上后DHT11温湿度模块电源指示灯也亮,烧入程序后就是提示没有检测到,如下图: 4.png
就是想知道错在哪了,这种接法可行吗??应该怎么接?


补充下就是:DHT11 接上过会后会有点热,这是说明它已经烧了吗,还是正常的???

回复

使用道具 举报

 楼主| 发表于 2016-9-4 20:20:19 | 显示全部楼层
回复

使用道具 举报

发表于 2016-9-4 21:57:49 | 显示全部楼层
个人建议:检查DATA数据线!!!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-9-4 22:53:12 | 显示全部楼层
火哥哥 发表于 2016-9-4 21:57
个人建议:检查DATA数据线!!!

data数据线是不是接板子的pe6口??
回复 支持 反对

使用道具 举报

发表于 2016-9-5 08:40:43 | 显示全部楼层
是不似乎杜邦线连接处有松动?
回复 支持 反对

使用道具 举报

发表于 2016-9-5 08:58:50 | 显示全部楼层
板子的右上角不是有DHT11的接口吗,没有看过原理图?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-9-5 14:40:50 | 显示全部楼层
♂荻夜 发表于 2016-9-5 08:40
是不似乎杜邦线连接处有松动?

检查过了不是
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-9-5 14:44:24 | 显示全部楼层
开拖拉机的孩子 发表于 2016-9-5 08:58
板子的右上角不是有DHT11的接口吗,没有看过原理图?

没看见有啊??我是按照板上标注的管脚连的。。。dht11的接口不就是三个,对应接上不就行了吗??
回复 支持 反对

使用道具 举报

发表于 2016-9-5 17:29:33 | 显示全部楼层
shidaide6 发表于 2016-9-5 14:44
没看见有啊??我是按照板上标注的管脚连的。。。dht11的接口不就是三个,对应接上不就行了吗??

DHT11有四个脚的,板子上是4个脚的,你看一下哪个脚是你模块上没有的,然后对应接。然后在程序里修改下引脚
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-9-5 19:08:28 | 显示全部楼层
开拖拉机的孩子 发表于 2016-9-5 17:29
DHT11有四个脚的,板子上是4个脚的,你看一下哪个脚是你模块上没有的,然后对应接。然后在程序里修改下引 ...

5.jpg 你说的是这个吗?
回复 支持 反对

使用道具 举报

发表于 2016-9-6 09:37:27 | 显示全部楼层
shidaide6 发表于 2016-9-5 19:08
你说的是这个吗?

是的,原理图有这些引脚
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-9-6 12:28:49 | 显示全部楼层
开拖拉机的孩子 发表于 2016-9-6 09:37
是的,原理图有这些引脚

试过了,还是一样的结果,我觉得是那个dht11烧了,才会导致一直读取失败,没发现其他的原因了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-9-6 12:30:23 | 显示全部楼层
开拖拉机的孩子 发表于 2016-9-6 09:37
是的,原理图有这些引脚

我后面再买个试试看
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-9-16 20:11:56 | 显示全部楼层
买了个新的,确实能用,问题解决了,是之前的DHT11坏掉的问题,谢谢各位了
回复 支持 反对

使用道具 举报

发表于 2016-11-7 18:18:51 | 显示全部楼层
楼主能发一下温湿度的检测代码吗
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-2-15 11:08:10 | 显示全部楼层
tanghao 发表于 2016-11-7 18:18
楼主能发一下温湿度的检测代码吗
  1. #include <intrins.h>:
  2. #include "lcd.h"
  3. sbit DQ=P2^2;    //DTH11管脚
  4. uchar code ASCII[]="0123456789%c";
  5. uchar code table0[]="    Hum:00";
  6. uchar code table1[]="    Tem:00";
  7. uchar tem;
  8. uchar hum;
  9.    
  10. display0[2]={0,0};
  11. display1[2]={0,0};
  12.       
  13. //**************************延时函数
  14. void delay_ms(uint z)
  15. {
  16. uint x,y;
  17. for(x=z;x>0;x--)
  18.   for(y=114;y>0;y--);
  19. }
  20. //**************************初始化DTH11
  21. bit Init_DTH11()
  22. {
  23. bit flag;
  24. uchar num;
  25. DQ=0;
  26. delay_ms(19);   // >18ms
  27. DQ=1;
  28. for(num=0;num<10;num++);   // 20-40us    34.7us
  29. for(num=0;num<12;num++);
  30. flag=DQ;
  31. for(num=0;num<11;num++); //DTH响应80us
  32. for(num=0;num<24;num++);    //DTH拉高80us
  33. return flag;
  34. }
  35. //****************************读DTH11数据
  36. uchar DTH11_RD_CHAR()
  37. {
  38. uchar byte=0;
  39. uchar num;
  40. uchar num1;
  41. while(DQ==1);
  42. for(num1=0;num1<8;num1++)
  43. {
  44.   while(DQ==0);
  45.   byte<<=1;     //高位在前
  46.   for(num=0;DQ==1;num++);
  47.   if(num<10)
  48.    byte|=0x00;
  49.   else
  50.    byte|=0x01;
  51. }
  52. return byte;
  53. }
  54. //******************************读取DTH11温度和湿度
  55. void  DTH11_DUSHU()
  56. {
  57. uchar num;
  58. if(Init_DTH11()==0)
  59. {
  60.   hum=DTH11_RD_CHAR();   //比正常值高7度左右
  61.   DTH11_RD_CHAR();
  62.   tem=DTH11_RD_CHAR();
  63.   DTH11_RD_CHAR();
  64.   DTH11_RD_CHAR();
  65.   for(num=0;num<17;num++);  //最后BIT输出后拉低总线50us
  66.   DQ=1;
  67. }
  68. }
  69. //***********************************显示函数
  70. void Display_DTH11()  
  71. {
  72. display0[1]=hum/10%10;
  73. display0[0]=hum%10;

  74. LcdShowStr(0,  0, table0);
  75. DisplayOneChar (8,  0, ASCII[ display0[1] ] );
  76. DisplayOneChar (9,  0, ASCII[ display0[0] ] );
  77. DisplayOneChar (10, 0, ASCII[10] );     //显示湿度
  78. display1[1]=tem/10%10;
  79. display1[0]=tem%10;
  80. LcdShowStr(0,  1, table1);
  81. DisplayOneChar (8,  1, ASCII[ display1[1] ] );
  82. DisplayOneChar (9,  1, ASCII[ display1[0] ] );
  83. DisplayOneChar (10, 1, 0xdf );
  84. DisplayOneChar (11, 1, ASCII[11] );     //显示温度          
  85. }  
  86. //*******************************主函数
  87. main()
  88. {
  89. tem=0;
  90. hum=0;
  91. delay_ms(1000);    //DTH11开始1s有错误输出
  92. InitLcd1602();
  93. while(1)
  94. {
  95.   DTH11_DUSHU();
  96.   Display_DTH11();
  97.   delay_ms(2000);
  98. }
  99. }
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-2-15 11:09:03 | 显示全部楼层
tanghao 发表于 2016-11-7 18:18
楼主能发一下温湿度的检测代码吗

晚了。。。。
回复 支持 反对

使用道具 举报

发表于 2017-3-8 20:04:08 | 显示全部楼层

楼主能发一下完整的keil程序可以烧录的 万分感激! 你的也是F103板子吗
回复 支持 反对

使用道具 举报

发表于 2017-3-9 08:15:44 | 显示全部楼层
参观学习。。。。。。
回复

使用道具 举报

 楼主| 发表于 2017-4-2 11:28:38 | 显示全部楼层
挽叶叶叶叶叶叶 发表于 2017-3-8 20:04
楼主能发一下完整的keil程序可以烧录的 万分感激! 你的也是F103板子吗

楼上已发了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-5-4 05:00 , Processed in 0.087276 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表