#include <LiquidCrystal.h>
#include <Servo.h>
#define LM35 A0
LiquidCrystal lcd(12,11,5,4,3,2); //构造一个LiquidCrystal的类成员。使用数字IO ,12,11,5,4,3,2
int val = 0; //存放AD变量值
float temp = 0; //存放温度值的10倍
int buttonPin = 7; // 按键连接引脚
Servo servo1;
void setup()
{
pinMode(buttonPin,INPUT_PULLUP);
lcd.begin(16,2); //初始化LCD1602
lcd.print("Welcome to use!"); //液晶显示Welcome to use!
servo1.attach(9);//舵机输入
Serial.begin(9600);
delay(1000); //延时1000ms
}
void loop()
{
if (digitalRead(buttonPin) == HIGH) //按键按下
{
lcd.clear(); //清屏
val = analogRead(LM35); //读取AD值
temp = val * 4.8876; //转换为温度值的10倍,有利于液晶显示
lcd.setCursor(0,0); //设置液晶开始显示的指针位置
lcd.print("LM35 temp ="); //液晶显示“LM35 temp =”
lcd.setCursor(0,1); //设置液晶开始显示的指针位置
lcd.print((int)temp/10); //液晶显示温度整数值
lcd.print("."); //液晶显示小数点
lcd.print((int)temp%10); //液晶显示温度小数值
lcd.print((char)223); //液晶显示“°”
lcd.print("C"); //液晶显示“C”
delay(2000); //延时2000ms
}
else
{
temp = (((val+1)*0.0048828125*1000)*9/5+320); //把读取到的val转换为华氏温度数值的10倍
lcd.clear(); //清屏
lcd.setCursor(0,0); //设置液晶开始显示的指针位置
lcd.print("LM35 temp ="); //液晶显示“LM35 temp =”
lcd.setCursor(0,1); //设置液晶开始显示的指针位置
lcd.print((int)temp/10); //液晶显示温度整数值
lcd.print("."); //液晶显示小数点
lcd.print((int)temp%10); //液晶显示温度小数值
lcd.print((char)223); //液晶显示“°”
lcd.print("F"); //液晶显示“C”
delay(1000); //延时1000ms
}
//舵机
int angle = analogRead(A2);
angle = map(angle, 0, 1023, 0, 180);//电位器与转动角度
servo1.write(angle);
delay(1);
}
|