前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >B蓝桥杯嵌入式之DS18B20、DHT11

B蓝桥杯嵌入式之DS18B20、DHT11

作者头像
用户5935416
发布2019-08-01 10:11:36
1.3K0
发布2019-08-01 10:11:36
举报
文章被收录于专栏:IT界的小白帽IT界的小白帽

蓝桥杯嵌入式开发板的扩展板提供DS18B20温度传感器和DHT11温湿度传感器。虽然两者有共同的功能,但是DS18B20的功能非常强大,不容忽视的。不能只学习DHT11,而忽略DS18B20,下面分别以DS18B20和DHT11来讲解它们的使用方法。

DS18B20讲解

DS18B20电路连接

DS18B20的使用

DS18B20的使用需要包含ds18b20.c和ds18b20.h文件(比赛时会给)。因为DS18B20的通信方式是利用一根数据线,即一个I/O既做输入又做输出,要不断的改变I/O的工作模式(输入和输出)。所以ds18b20.c的初始化函数没有用到(不知决赛给的文件是否和我现在用的一样,决赛后的经验分享中给出答案)。而是直接在main.c文件中读取温度数值,并用LCD和数码管显示。代码为

代码语言:javascript
复制
z = (ds18b20_read()& 0x07FF);
x = z/16.;
y = z/16;

snprintf((char*)str, sizeof(str), " Temperatrue:%2.2f", x);
LCD_DisplayStringLine(Line6,str);

SEG_DisplayValue(y/10, y%10,12);    
Delay_Ms(200);

函数SEG_DisplayValue的第三个参数12是在数码管上显示字符C。

DHT11讲解

DHT11的电路连接

DHT11的使用

DHT11的使用方法与DS18B20的使用方法一样,需要包含dht11.c和dht11.h文件(同DS18B20的情况一样)。DHT11也是直接读取温湿度在LCD显示温度和湿度,在数码管显示温度。代码为

代码语言:javascript
复制
z = dht11_read();

snprintf((char *)str, sizeof(str), " Moisture:%2d%%", z>>24);
LCD_DisplayStringLine(Line6,str);
snprintf((char *)str, sizeof(str), " Temperature:%3d", (z>>8)&0xff);
LCD_DisplayStringLine(Line7,str);

SEG_DisplayValue(((z>>8)&0xff)/10, ((z>>8)&0xff)%10, 12);
    
Delay_Ms(2000);
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-05-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IT界的小白帽 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档