基本信息
文件名称:Arduino 系列:Arduino Uno (基于 ATmega328P)_(15).项目案例:电子温度计.docx
文件大小:23.33 KB
总页数:18 页
更新时间:2025-06-27
总字数:约7.93千字
文档摘要

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