亲,“电路城”已合并升级到更全、更大、更强的「新与非网」。点击查看「新与非网」

本网页已闲置超过3分钟,按键盘任意键或点击空白处,即可回到网页

基于LM35和arduino的数字温度计

发布时间:2021-05-02
分享到:

基于LM35和arduino的数字温度计

发布时间:2021-05-02
分享到:

该项目是通过LM35和arduino制造一个简单的数字温度计,当温度高于35摄氏度时,绿色的LED发光;当温度低于35摄氏度时,红色的led发光。

硬件:

  • 5mmLED:红色、绿色
  • 旋转电位器
  • 跳线
  • 面包板
  • 电阻220Ω
  • Arduino UNO
  • Arduino LM35

LM35:

温度传感器,其输出为模拟信号,且该信号与温度成线性比例。

LM35具有三个引脚:

PIN 1:Vcc,它是输入引脚(5v)

PIN 2:Vout,我们得到输出(它应该连接到arduino的模拟引脚)

PIN 3:GND,用于接地

温度公式:

LM35输出电压与摄氏度成正比,而10毫伏代表1摄氏度。

注意:LM35的测量范围为-50至150摄氏度。

Arduino的模拟引脚分辨率为0-1023,即,在+ 5v输入下,其计数为1023。

LM35的最大输入为1500毫伏(最高温度为150摄氏度)或1.5v(最大输出电压)。

因此在1.5v时,模拟引脚数等于(1.5 / 5)* 1023 = 306.9。

现在LM35的新分辨率等于306.9 / 150 = 2.046。该模拟引脚数为2.046,等于LM35的摄氏温度变化1度。

电路图:

在IDE中选择板作为“ Arduino Uno”,然后上载给定的代码。

如果代码无法上传,请检查USB或尝试重新插入。

代码:

#include <LiquidCrystal.h>
LiquidCrystal lcd(8,9,10,11,12,13);
#define LM35_sensor A0
byte degree[8]={
  0b00011,
  0b00011,
  0b00000,
  0b00000,
  0b00000,
  0b00000,
  0b00000,
  0b00000
};


int LEDR = 5;
int LEDG = 7;


void setup() {
  // 设置代码,只需运行一次即可
pinMode(LEDR,OUTPUT);
pinMode(LEDG,OUTPUT);

lcd.begin(16,2);
lcd.createChar(1, degree);
lcd.setCursor(0,0);
lcd.print(" DIGITAL ");
lcd.setCursor(0,1);
lcd.print(" THERMOMETER ");
delay(2800);
lcd.clear();

}

void loop() { 
  // 温度  
  float analog_read = analogRead(LM35_sensor);
  float temp = analog_read/2.046 ;
  delay(10);
  
//液晶显示器

  lcd.clear();
  lcd.setCursor(2,0);
  lcd.print("TEMPERATURE");
  lcd.setCursor(4,1);
  lcd.print(temp);
  lcd.write(1);// 读取ASCII 值
  lcd.print("C");
  delay(1000);
  
  //LED

  if(temp<35)
  {

    digitalWrite(LEDG,LOW);
    digitalWrite(LEDR,HIGH);  
  }
  else{
     digitalWrite(LEDR,LOW);
     digitalWrite(LEDG,HIGH);
  }}

执行:

将代码上传到arduino后,请确保电路连接正确。

使用了5V的arduino来为传感器(LM35)和LCD供电。也可以使用电池提供的独立5V电源。

当温度高于35℃时,绿色LED发光

当温度低于35℃时,红色的led发光

在线模拟:https ://www.tinkercad.com/things/ddvnnsV6y88

加入微信技术交流群

技术交流,职业进阶

关注与非网服务号

获取电子工程师福利

加入电路城 QQ 交流群

与技术大牛交朋友

讨论