#include <LiquidCrystal.h>
#include <Servo.h>
#define LM35 A0
LiquidCrystal lcd(12,11,5,4,3,2); //構(gòu)造一個LiquidCrystal的類成員。使用數(shù)字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!"); //液晶顯示W(wǎng)elcome 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; //轉(zhuǎn)換為溫度值的10倍,有利于液晶顯示
lcd.setCursor(0,0); //設置液晶開始顯示的指針位置
lcd.print("LM35 temp ="); //液晶顯示“LM35 temp =”
lcd.setCursor(0,1); //設置液晶開始顯示的指針位置
lcd.print((int)temp/10); //液晶顯示溫度整數(shù)值
lcd.print("."); //液晶顯示小數(shù)點
lcd.print((int)temp%10); //液晶顯示溫度小數(shù)值
lcd.print((char)223); //液晶顯示“°”
lcd.print("C"); //液晶顯示“C”
delay(2000); //延時2000ms
}
else
{
temp = (((val+1)*0.0048828125*1000)*9/5+320); //把讀取到的val轉(zhuǎn)換為華氏溫度數(shù)值的10倍
lcd.clear(); //清屏
lcd.setCursor(0,0); //設置液晶開始顯示的指針位置
lcd.print("LM35 temp ="); //液晶顯示“LM35 temp =”
lcd.setCursor(0,1); //設置液晶開始顯示的指針位置
lcd.print((int)temp/10); //液晶顯示溫度整數(shù)值
lcd.print("."); //液晶顯示小數(shù)點
lcd.print((int)temp%10); //液晶顯示溫度小數(shù)值
lcd.print((char)223); //液晶顯示“°”
lcd.print("F"); //液晶顯示“C”
delay(1000); //延時1000ms
}
//舵機
int angle = analogRead(A2);
angle = map(angle, 0, 1023, 0, 180);//電位器與轉(zhuǎn)動角度
servo1.write(angle);
delay(1);
}
|