PAGE1
PAGE1
项目案例:电子温度计
1.原理介绍
电子温度计是一种利用温度传感器测量环境温度,并通过ArduinoUno将温度数据处理后显示在LCD屏幕或通过串口输出的设备。温度传感器将温度变化转换为电信号,ArduinoUno读取这些信号并进行处理,最终将温度值以数字形式显示出来。常见的温度传感器有DS18B20、DHT11、DHT22等,本项目将使用DS18B20温度传感器。
2.硬件准备
ArduinoUno
DS18B20温度传感器
4.7kΩ电阻
16x2LCD显示屏
10kΩ电位器
面包板和导线
3.电路连接
DS18B20温度传感器连接:
VCC接5V
GND接地
数据线(DQ)接数字引脚2
4.7kΩ电阻接在VCC和数据线之间
16x2LCD显示屏连接:
VSS接GND
VCC接5V
V0接10kΩ电位器的中间引脚,电位器的另外两个引脚分别接5V和GND
RS接数字引脚7
RW接GND
EN接数字引脚6
D4接数字引脚5
D5接数字引脚4
D6接数字引脚3
D7接数字引脚2
A接10kΩ电位器的中间引脚
K接GND
4.软件准备
ArduinoIDE
OneWire库
DallasTemperature库
LiquidCrystal库
5.代码示例
//包含必要的库
#includeOneWire.h
#includeDallasTemperature.h
#includeLiquidCrystal.h
//定义引脚
#defineONE_WIRE_BUS2//DS18B20数据线接在数字引脚2
#defineLCD_RS7
#defineLCD_EN6
#defineLCD_D45
#defineLCD_D54
#defineLCD_D63
#defineLCD_D72
//初始化OneWire和DallasTemperature对象
OneWireoneWire(ONE_WIRE_BUS);
DallasTemperaturesensors(oneWire);
//初始化LCD对象
LiquidCrystallcd(LCD_RS,LCD_EN,LCD_D4,LCD_D5,LCD_D6,LCD_D7);
voidsetup(){
//开始串口通信
Serial.begin(9600);
//开始DS18B20传感器
sensors.begin();
//初始化LCD
lcd.begin(16,2);
//设置LCD背光
lcd.setBacklight(HIGH);
//在LCD上显示初始信息
lcd.print(电子温度计);
delay(2000);
lcd.clear();
}
voidloop(){
//请求温度数据
sensors.requestTemperatures();
//读取温度
floattemperature=sensors.getTempCByIndex(0);
//在串口监视器上打印温度
Serial.print(当前温度:);
Serial.print(temperature);
Serial.println(°C);
//在LCD上显示温度
lcd.setCursor(0,0);
lcd.print(温度:);
lcd.print(temperature);
lcd.print(°C);
//更新LCD显示
delay(1000);
}
6.代码说明
OneWire库:用于与DS18B20温度传感器通信。
DallasTemperature库:用于处理DS18B20传感器的数据。
LiquidCrystal库:用于控制16x2LCD显示屏。
初始化引脚:
ONE_WIRE_BUS定义了DS18B20数据线连接的数字引脚。
LCD_RS,LCD_EN,LCD_D4,LCD_D5,LCD_D6,LCD_D7定义了LCD显示屏的连接引脚。
初始化对象:
OneWireoneWire(ONE_WIRE_BUS);初始化OneWire对象。
DallasTemperaturesensors(oneWire);初始化DallasTemperature对象。
LiquidCrystallcd(LCD_RS,LCD_EN,L