//LCD1206 I2C温度显示
/*
LCD1206 I2C显示温度
根据不同温度,点亮不同颜色的LED指示灯
*/
const float BETA = 3950; //应与热敏电阻的β系数相匹配
/*const 表示常量的意思, float 是单精度浮点数,合起来是定义一个浮点常量,
如const float PI = 3.141593,类似于 #define PI 3.141593的作用。*/
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2); //配置LCD地址及行列
void setup() {
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(A0, INPUT); //设置A0为输入引脚
lcd.init(); //初始化LCD
lcd.backlight(); //打开背光
lcd.setCursor(2,0); //设置LCD的显示位置3列、0行
lcd.print("*temperature*"); //设置LCD静态显示“温度”
lcd.setCursor(8, 1); //设置LCD的显示位置8列、1行
lcd.print(" C"); //LCD显示摄氏温度单位,用C代替
}
void loop()
{
int analogValue = analogRead(A0);
float celsius = 1 / (log(1 / (1023. / analogValue - 1)) / BETA + 1.0 / 298.15) - 273.15;
lcd.setCursor(3, 1); //设置LCD的显示位置4列、1行
lcd.print(celsius); //LCD显示摄氏温度值
if(celsius <= 25){
digitalWrite(5, LOW);
digitalWrite(6, HIGH);
digitalWrite(7, LOW);
delay(1500);
}
else if(celsius > 25, celsius <= 35){
digitalWrite(5, HIGH);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
delay(1500);
}
else{
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7,HIGH);
delay(1500);
}
}