#include // I2C 库
#include // OneWire 库
#include // DS18B20 库
#include // I2C 1602 库
// 定义DS18B20数据口连接arduino的2号IO上
#define ONE_WIRE_BUS 10 // DS18B20 连接arduino D10引脚
// 初始连接在单总线上的单总线设备
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
LiquidCrystal_I2C lcd(0x27,16,2); //设置LCD1602的I2C地址为0x27,LCD1602为两行,每行16个字符的液晶显示器
void setup(void)
{
// 设置串口通信波特率
Serial.begin(9600);
Serial.println("Dallas Temperature IC Control Library Demo");
// 初始库
sensors.begin();
// 初始 LCD
lcd.init(); // 给LCD的I2C通讯初始化,需要执行两次
delay(20);
lcd.init(); // 给LCD的I2C通讯初始化
delay(20);
lcd.backlight();//点亮LCD背光灯
}
void loop(void) // 主程序
{
Serial.print("Requesting temperatures..."); // 串口发送字符
sensors.requestTemperatures(); // 发送命令获取温度
Serial.println("DONE"); // 串口发送字符并换行
Serial.print("Temperature for the device 1 (index 0) is: ");
Serial.println(sensors.getTempCByIndex(0));
lcd.clear(); // LCD清屏
lcd.setCursor(0, 0); // 定位LCD光标为第一行起始位置0,0(列在前,行在后)
lcd.print("I2C 1602 DS18B20"); // 显示些文字
lcd.setCursor(5, 1); // 定位光标到第二行靠中位置
lcd.print(sensors.getTempCByIndex(0)); // 显示温度值,来源DallasTemperature.h的函数
lcd.print(" C"); // 不定位光标则继续前面语句继续写字符
}
[ 此帖被kpj001在2014-08-13 11:33重新编辑 ]