9846浏览
查看: 9846|回复: 3

[讨论] 温湿度+LCD12864学习中,湿度显示问题

[复制链接]
正在学习用温湿度传感器将温湿度显示在LCD12864上。代码执行过程中,温度能显示正常,可湿度总是显示为0。

若将
  1. <span style="background-color: rgb(247, 247, 247);">if(millis() - tepTimer > 500){</span>
复制代码
用delay(500);方法代替,则温湿度都能显示正常请问这是怎么回事啊?不科学啊!!!


程序代码如下:

  1. #include <dht11.h>
  2. #include <LCD12864RSPI.h>
  3. #define AR_SIZE( a ) sizeof( a ) / sizeof( a[0] )
  4. unsigned long tepTimer;
  5. unsigned char tempTitle[] = {0xCE,0xC2,0xB6,0xC8};//温度
  6. unsigned char humiTitle[] = {0xCA,0xAA,0xB6,0xC8};//湿度
  7. unsigned char line11[] = ":";
  8. dht11 DHT;
  9. void setup(){
  10.   LCDA.initDriverPin(2,7,10);
  11.   LCDA.Initialise();
  12.   delay(100);
  13. }
  14. void loop(){
  15.   int chk = DHT.read(4);
  16.   int tempdata;
  17.   int humidata;
  18.   tempdata = DHT.temperature;
  19.   humidata = DHT.humidity;
  20.   if(millis() - tepTimer > 500){
  21.     tepTimer = millis();
  22.     LCDA.CLEAR();
  23.     LCDA.DisplayString(0,0,tempTitle,AR_SIZE(tempTitle));
  24.     LCDA.DisplayString(0,2,line11,AR_SIZE(line11));
  25.     shownum(tempdata,0,3,2,0);
  26.     LCDA.DisplayString(1,0,humiTitle,AR_SIZE(humiTitle));
  27.     LCDA.DisplayString(1,2,line11,AR_SIZE(line11));
  28.     shownum(humidata,1,3,2,0);
  29.   }
  30. }
  31. void shownum(long num, int x, int y, int zlen, int xlen){
  32.   char str[zlen];
  33.   dtostrf(num,zlen,xlen,str);
  34.   LCDA.DisplayString(x,y,(unsigned char *)str,AR_SIZE(str));
  35. }
复制代码





Leotower  中级技师

发表于 2014-5-21 09:24:40

1、 建议将硬件使用的模块、连接情况说明一下,这样方便交流。
2、逻辑上将检测温度放置到if语句中更合理,代码和含义是没500ms左右检测一次,同时不阻塞loop运行。
3、建议参考DHT的样例对返回值进行判断,返回正确时再刷新显示; 连续读取DTH可能导致通讯数据有误。
回复

使用道具 举报

MoonShine  高级技匠

发表于 2016-6-6 12:10:28

Leotower 发表于 2014-5-21 09:24
1、 建议将硬件使用的模块、连接情况说明一下,这样方便交流。
2、逻辑上将检测温度放置到if语句中更合理, ...

这是LCD1602显示器的问题,跟传递的数据没多大关系,它会自动保留最大的一个字段显示,除非更长的盖住替换
回复

使用道具 举报

20060606  高级技匠

发表于 2020-8-17 05:39:37

您用的是什么温湿度传感器
回复

使用道具 举报

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

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail