(使用 DS18B20 温度检测芯片检测指定环境的温度,并将检测结果在 LCD1602 上显示出来。测量精度要求精确到小数点后一位。 (2)可使用键盐设置温度的上限与下限值,当检测温度超出设定范国时报警。
时间: 2024-02-25 13:59:36 浏览: 81
好的,这是一个关于温度检测和报警的问题,下面是我的回答:
首先,我们需要准备一些硬件设备,包括:
- DS18B20 温度传感器
- Arduino UNO 控制板
- LCD1602 液晶显示屏
- 杜邦线
- 电位器(用于调整显示屏的对比度)
接下来,我们可以按照以下步骤进行操作:
1. 连接硬件设备
将 DS18B20 温度传感器的 VCC 引脚连接到 5V 电源,GND 引脚连接到 GND,DQ 引脚连接到 Arduino UNO 的数字引脚 2 上。
将 LCD1602 液晶显示屏的 VSS 引脚连接到 GND,VDD 引脚连接到 5V 电源,V0 引脚连接到一个电位器的中间引脚,另外两个引脚分别连接到 GND 和 5V。将 RS、RW、E 引脚连接到数字引脚 12、11、10 上,D4-D7 引脚分别连接到数字引脚 9、8、7、6 上。
2. 编写代码
接下来,我们需要编写一些代码来读取温度传感器的数值,并将其显示在液晶显示屏上。
首先,我们需要包含 OneWire 库和 LiquidCrystal 库:
```c++
#include <OneWire.h>
#include <LiquidCrystal.h>
```
然后,定义温度传感器的引脚:
```c++
#define ONE_WIRE_BUS 2
```
接着,创建 OneWire 和 DallasTemperature 对象:
```c++
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
```
在 setup() 函数中,初始化液晶显示屏:
```c++
LiquidCrystal lcd(12, 11, 10, 9, 8, 7, 6);
lcd.begin(16, 2);
```
然后,在 loop() 函数中,读取温度传感器的数值,计算摄氏温度,并将其显示在液晶显示屏上:
```c++
sensors.requestTemperatures();
float celsius = sensors.getTempCByIndex(0);
lcd.setCursor(0, 0);
lcd.print("Temp: ");
lcd.print(celsius, 1);
lcd.print(" C");
```
最后,我们可以添加一些代码来检测温度是否超出设定范围,并在液晶显示屏上显示报警信息:
```c++
float upperLimit = 30.0; // 上限温度
float lowerLimit = 20.0; // 下限温度
if (celsius > upperLimit || celsius < lowerLimit) {
lcd.setCursor(0, 1);
lcd.print("WARNING!!!");
}
```
3. 测试代码
将代码上传到 Arduino UNO 控制板上,并连接好硬件设备。当温度超出设定范围时,液晶显示屏上会显示报警信息。
希望这个回答能够帮到你,如果还有其他问题,请随时提出!
阅读全文
相关推荐


















