利用单片机及DS18B20等器件,通过单片机利用温度传感器DS18B20实现测量温度信号,将所测得的温度信号采用数字显示,计算后在液晶显示器上显示相应的温度值
时间: 2023-06-16 15:07:29 浏览: 66
这个项目需要以下物料:
- 单片机:可以选择Arduino、STM32等常见的单片机
- DS18B20温度传感器
- 16x2字符型液晶显示器
- 杜邦线
- 面包板
- 电源(USB电缆或者电池)
接线方法:
将单片机的5V引脚连接到DS18B20的VCC引脚上;将单片机的GND引脚连接到DS18B20的GND引脚上;将单片机的D4引脚连接到液晶显示器的RS引脚上;将单片机的D5引脚连接到液晶显示器的EN引脚上;将单片机的D6引脚连接到液晶显示器的D4引脚上;将单片机的D7引脚连接到液晶显示器的D5引脚上;将单片机的D8引脚连接到DS18B20的DQ引脚上。
代码实现:
首先需要安装DS18B20库。在Arduino IDE中,打开“工具”-“管理库”-搜索“DS18B20”,安装库。
然后就可以用以下代码实现测量温度信号,将所测得的温度信号采用数字显示,计算后在液晶显示器上显示相应的温度值。
```C++
#include <OneWire.h>
#include <DallasTemperature.h>
#include <LiquidCrystal.h>
//定义单总线引脚
#define ONE_WIRE_BUS 8
//初始化单总线对象
OneWire oneWire(ONE_WIRE_BUS);
//初始化温度传感器对象
DallasTemperature sensors(&oneWire);
//初始化液晶显示器对象
LiquidCrystal lcd(4, 5, 6, 7, 8, 9, 10);
void setup() {
//启动传感器
sensors.begin();
//初始化液晶显示器
lcd.begin(16, 2);
lcd.clear();
}
void loop() {
//获取温度值
sensors.requestTemperatures();
float tempC = sensors.getTempCByIndex(0);
//将温度值显示在液晶显示器上
lcd.setCursor(0,0);
lcd.print("Temperature:");
lcd.setCursor(0,1);
lcd.print(tempC);
lcd.print("C");
delay(1000);
}
```
运行代码后,可以看到液晶显示器上显示了当前的温度值。