标题: arduino LCD LM35程序 [打印本页]

作者: HOUZEWEN    时间: 2021-6-13 21:03
标题: arduino LCD LM35程序
#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);
}






欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1