#include <OneWire.h> #include <LiquidCrystal_I2C.h> #define ONE_WIRE_BUS 2 // DS18B20 DATA 引脚连接到 D2 引脚上 OneWire oneWire(ONE_WIRE_BUS); LiquidCrystal_I2C lcd(0x3F, 16, 2); // I2C 模块的地址为 0x3F,LCD1602 的行数和列数分别为 16 和 2 void setup() { lcd.init(); // 初始化 LCD1602 液晶显示屏 lcd.backlight(); // 打开背光 lcd.setCursor(0, 0); // 将光标移到第一行第一列 lcd.print("Temperature:"); // 在第一行第一列显示“Temperature:”文本 } void loop() { float temperature = getTemperature(); // 读取 DS18B20 温度传感器的温度值 lcd.setCursor(0, 1); // 将光标移到第二行第一列 lcd.print(temperature); // 在 LCD1602 液晶显示屏上显示温度值 lcd.print("C"); // 在温度值后面显示“C”符号 delay(1000); // 延迟 1 秒 } float getTemperature() { byte data[2]; float temperature = 0; oneWire.reset(); // 发送复位信号 oneWire.write(0xCC); // 跳过 ROM,直接发命令 oneWire.write(0x44); // 启动温度转换 delay(800); // 等待转换完成 oneWire.reset(); oneWire.write(0xCC); oneWire.write(0xBE); // 读取温度值 for (int i = 0; i < 2; i++) { data[i] = oneWire.read(); } temperature = ((data[1] << 8) | data[0]) * 0.0625; // 计算温度值 return temperature; }这段代码连接的线路图
时间: 2024-03-31 07:32:29 浏览: 178
抱歉,我无法看到您的线路图。但是,根据代码中的注释,可以看出以下信息:
- DS18B20温度传感器的数据引脚连接到Arduino的D2引脚上。
- 使用了一个I2C模块来连接LCD1602液晶显示屏。
- I2C模块的地址为0x3F。
- LCD1602液晶显示屏的行数和列数分别为16和2。
- 在LCD1602液晶显示屏上显示“Temperature:”文本和温度值。
相关问题
#include <OneWire.h> #include <LiquidCrystal.h> // 定义连接到Arduino板的DS18B20引脚 #define ONE_WIRE_BUS 2 // 创建OneWire和LiquidCrystal对象 OneWire oneWire(ONE_WIRE_BUS); LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() { // 初始化LCD1602 lcd.begin(16, 2); // 打印初始消息 lcd.print("Temperature:"); } void loop() { // 读取温度数据 byte data[2]; oneWire.reset(); oneWire.select(ONE_WIRE_BUS); oneWire.write(0x44, 1); delay(1000); oneWire.reset(); oneWire.select(ONE_WIRE_BUS); oneWire.write(0xBE); for (int i = 0; i < 2; i++) { data[i] = oneWire.read(); } int rawTemp = (data[1] << 8) | data[0]; float tempCelsius = (float)rawTemp * 0.0625; // 将温度数据转换为字符串并显示在LCD1602上 lcd.setCursor(0, 1); lcd.print(tempCelsius); lcd.print("C"); delay(1000); }这段代码如何连接路线
这段代码需要将DS18B20温度传感器连接到Arduino开发板的2号引脚。连接方式如下:
1. 将DS18B20的VCC引脚连接到Arduino的5V电源引脚上。
2. 将DS18B20的GND引脚连接到Arduino的GND引脚上。
3. 将DS18B20的DATA引脚连接到Arduino的2号引脚上。
4. 将LCD1602的RS引脚连接到Arduino的12号引脚,RW引脚连接到Arduino的11号引脚,EN引脚连接到Arduino的5号引脚,D4~D7引脚分别连接到Arduino的4、3、2、1号引脚上。
连接完成后,将代码上传到Arduino开发板中并运行即可。在LCD1602上将会显示当前温度信息。
/********************************************************************* ——————1.开发环境:Arduino IDE—————————————————————————————————— ——————2.使用开发板型号:Arduino UNO—————————————————————— ——————3.传感器类型:DS18B20数字温度传感器——————————————————————— *********************************************************************/ #include <OneWire.h> #include <DallasTemperature.h> #define ONE_WIRE_BUS 2 // 定义DS18B20数据口连接UNO的2脚 OneWire oneWire(ONE_WIRE_BUS); // 声明连接在单总线上的单总线设备 DallasTemperature sensors(&oneWire); // 声明一个传感器对象 void setup(){ Serial.begin(9600); // 设置串口通信波特率 sensors.begin(); // 初始总线 } void loop(){ sensors.requestTemperatures(); // 向总线上的设备发送温度转换请求,默认情况下该方法会阻塞 Serial.print("此时测量的温度为:"); Serial.print(sensors.getTempCByIndex(0)); // 获取索引号0的传感器摄氏温度数据,并串口输出 Serial.println(" ℃\n"); delay(500); }这段代码加入lcd1602IIC怎么编写
要将LCD1602 IIC与该代码结合,您需要首先添加LCD1602 IIC库。然后,您需要在setup()函数中初始化LCD,并在loop()函数中添加代码以在LCD上显示温度。以下是示例代码:
```
#include <OneWire.h>
#include <DallasTemperature.h>
#include <LiquidCrystal_I2C.h> // 添加LCD1602 IIC库
#define ONE_WIRE_BUS 2
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
// 定义LCD1602 IIC地址
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
Serial.begin(9600);
sensors.begin();
// 初始化LCD
lcd.init();
lcd.backlight();
}
void loop() {
sensors.requestTemperatures();
float temperature = sensors.getTempCByIndex(0);
// 显示温度到串口和LCD
Serial.print("此时测量的温度为:");
Serial.print(temperature);
Serial.println(" ℃\n");
lcd.clear(); // 清空LCD显示
lcd.setCursor(0, 0); // 设置光标位置
lcd.print("Temperature:");
lcd.setCursor(0, 1);
lcd.print(temperature);
lcd.print(" ");
lcd.print((char)223); // 显示温度符号
lcd.print("C");
delay(500);
}
```
请注意,此示例代码假定您使用的是带有I2C适配器的LCD1602模块,并且适配器地址为0x27。如果您的情况不同,请相应地更改代码。
阅读全文