找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1522|回复: 0
打印 上一主题 下一主题
收起左侧

arduino LCD LM35程序

[复制链接]
跳转到指定楼层
楼主
ID:936988 发表于 2021-6-13 21:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#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);
}

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表