//LCD实验
//LM35采集温度,LCD显示温度值
#include <LiquidCrystal.h>
#define LM35 A0
#define RS 6
#define EN 7
#define D4 9
#define D5 10
#define D6 11
#define D7 12
LiquidCrystal lcd(RS,EN,D4,D5,D6,D7); //构造一个LiquidCrystal的类成员
int val = 0; //存放AD变量值
float temp = 0; //存放温度值的10倍
const int buttonPin = 13;
int oldValue = LOW;
void setup()
{
Serial.begin(115200);
Serial.println("Press the button.");
lcd.begin(16,2); //初始化LCD1602
lcd.print("Welcome to use!"); //液晶显示Welcome to use!
delay(1000); //延时1000ms
lcd.clear(); //液晶清屏
pinMode(buttonPin, INPUT);
}
void loop()
{
val = analogRead(LM35); //读取AD值
temp = (val-422.94)/-8.0292; //转换为温度值的10倍,有利于液晶显示
int newValue = digitalRead(buttonPin);
if(newValue != oldValue)
{
lcd.clear();
lcd.setCursor(0,0); //设置液晶开始显示的指针位置
lcd.print("LM35 temp ="); //液晶显示“LM35 temp =”
float temp1=temp*1.8+32;
lcd.setCursor(0,1); //设置液晶开始显示的指针位置
lcd.print((int)temp1); //液晶显示温度整数值
lcd.print("."); //液晶显示小数点
lcd.print((int)(temp1*100)%100); //液晶显示温度小数值
lcd.print((char)223); //液晶显示“°”
lcd.print("F");
}
else
{
lcd.clear();
lcd.setCursor(0,0); //设置液晶开始显示的指针位置
lcd.print("LM35 temp ="); //液晶显示“LM35 temp =”
if(newValue == HIGH)
{
Serial.println("The button is pressed.");
}
else
{
Serial.println("The button is released.");
}
lcd.setCursor(0,1); //设置液晶开始显示的指针位置
lcd.print((int)temp); //液晶显示温度整数值
lcd.print("."); //液晶显示小数点
lcd.print((int)(temp*100)%100); //液晶显示温度小数值
lcd.print((char)223); //液晶显示“°”
lcd.print("C"); //液晶显示“C”
}
delay(1000); //延时1000ms
}