蓝桥杯嵌入式开发板的扩展板提供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和数码管显示。代码为
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显示温度和湿度,在数码管显示温度。代码为
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);
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有