模拟LM35线性温度传感器

简介

这是一款基于LM35的半导体温度传感器,可以用来对环境温度进行检测。
温度测量常用的传感器包括热电偶、铂电阻、热敏电阻和半导体测温芯片,其中热电偶常用于高温测量,铂电阻用于中温测量(到摄氏800度左右),而热敏电阻和半导体温度传感器适合于100-200度以下的温度测量,其中半导体温度传感器的应用简单,有较好的线性度和较高的灵敏度。
LM35半导体温度传感器是美国国家半导体公司生产的线性温度传感器。其测温范围是0℃到100℃,灵敏度为10mV/℃,输出电压与温度成正比。LM35线性温度传感器与Arduino专用传感器扩展板结合使用,可以非常容易地实现与环境温度感知相关的互动效果。

注意:基于esp32的掌控板及firebeetle不可用,请选择其他非模拟输出的温度传感器,例如SHT31-F,ds18b20等

产品参数

  • 基于半导体的温度传感器
  • 可用于检测周围空气温度
  • 传感器芯片灵敏度:10mV/℃
  • 测量温度范围:0至100℃
  • 供电电压:3.3V~5V
  • LM35数据手册:下载

工作原理

温度传感器工作时,电路将测量到的温度信号转换成电压信号输出到信号放大电路,与温度值对应的电压信号经放大后输出至A/D转换电路,把电压信号转换成数字量送给主控板,此时获得的就是当前的温度值对应的模拟值,之后通过对模拟值进行处理,就可获得当前的温度值了。

电压和模拟值的关系式

传感器传入主板电压值=引脚最大输入电压值/最大数据存储值×传感器获取的模拟值

电压和温度的关系图

引脚说明

传感器引脚的定义是

  1. 输出信号
  2. 地(GND)
  3. 电源(VCC)

模拟传感器的引脚定义

使用教程

连接示意图

模拟传感器连接图

示例代码

For Arduino

void setup()
{
    Serial.begin(9600);//Set Baud Rate to 9600 bps
}

void loop()
{
    uint16_t val;
    double dat;
    val=analogRead(A0);//Connect LM35 on Analog 0
    dat = (double) val * (5/10.24);
    Serial.print("Tep:"); //Display the temperature on Serial monitor
    Serial.print(dat);
    Serial.println("C");
    delay(500);
}

For Mind+(基于Scratch3.0图形化编程)
1、下载及安装软件。下载地址:https://www.mindplus.cc 详细教程:Mind+基础wiki教程-软件下载安装

2、切换到“上传模式”。 详细教程:Mind+基础wiki教程-上传模式编程流程

3、“扩展”中选择“主控板”中的“Arduino Uno”。“传感器”中搜索选择“LM35温度传感器” 详细教程:Mind+基础wiki教程-加载扩展库流程

4、进行编程,程序如下图:

5、菜单“连接设备”,“上传到设备”

6、程序上传完毕后,打开串口即可看到数据输出。详细教程:Mind+基础wiki教程-串口打印

注意:掌控板及firebeetle不可用,由于esp32模拟输入不准,因此无法获得准确温度值,只能有相对温度变化高低,需要获取准确温度值请选择其他非模拟输出的温度传感器,例如SHT31-F,ds18b20等,或者使用ADC模块进行转换。

图形化程序

结果

打开串口监视器,将波特率调整到9600,可以接收到传感器周围的具体温度。

行空板Python模式

  • 行空板ADC是12位,范围4096,电压3.3V,因此使用公式转换为:温度值=模拟输入值*3.3/4096,如下:

注意:引脚需要使用带A的模拟输入口

  • 屏幕显示:

温控灯项目

当环境温度高于一定温度时(我们这里以28°为例),实现灯亮的效果,否则灯一直处于熄灭状态。

疑难解答

更多问题及有趣的应用,请访问论坛

更多

DFshopping_car1.png Link DFRobot商城购买链接

category: Product_Manual category: DFR_Series category: Sensors category:source category:Diagram