在本教程中,我们将学习如何将LM35与Arduino连接并实现一个简单的Arduino LM35温度传感器。为了演示输出,我将将LM35温度传感器连接到Arduino Uno,并在16×2 LCD显示模块上显示温度读数。
关于LM35温度传感器的简短说明
LM35是经典的温度传感器IC。这是一个精确的摄影温度传感器。它也是一个模拟传感器,其输出电压与摄氏温度线性成正比。
LM系列温度传感器中还有其他设备,例如LM34(校准华氏度)和LM335(kelvin校准),但LM35似乎是DIY项目的流行选择。
LM35温度传感器的一些重要特征是:
- 它可以测量的温度范围:-550C至+1500C(全范围)
- 精度:0.50C 250C(±1/40C在室温下)
- 电源电压:4 V至30 V
- 传输功能: +10mv/线性线性0C级系数
- 今
LM35系列中有5种不同的设备,具有不同的温度范围和包装。下表将有助于比较不同的LM35传感器。
LM35系列的设备 | 温度范围 | 软件包 |
LM35 | –550C至+1500C | 到 - 可以 |
LM35A | –550C至+1500C | 到 - 可以 |
LM35C | –400C至+1100C | 到92(塑料) |
LM35CA | –400C至+1100C | 到92(塑料) |
LM35D | 00C至+1000C | 到– 92,至220(塑料),SOIC(8针) |
我有LM35D型LM35传感器。因此,我可以构建一个温度传感器,范围为00C至+1000C.如果您想测量整个范围,即–550C至+1500c,然后您必须在金属包装包装中查看LM35或LM35。
LM35的常见包装之一是塑料至92包装。下图显示了LM35传感器在– 92软件包中的夹子。有关其他软件包的针线,请参阅数据表。
别针 | 描述 |
+vs | 电源阳性 |
v出去 | 模拟输出 |
gnd | 地面(电源负面) |
测量没有arduino的温度
由于LM35是一个模拟温度传感器,因此我们只能通过测量输出电压来测量温度。为此,您必须查看传输功能的LM35数据表。
根据数据表,输出电压与温度成正比,比例因子为 +10mV/0C.传输函数由以下方式给出:
在这里,v出去LM35和T的输出电压是温度0C.因此,如果我们测量LM35温度传感器的输出电压,那么我们可以通过简单的计算测量温度。
首先,将电源连接到传感器,即, +5V到 +Vs引脚和GND分别为GND引脚。现在,使用数字万用表并将其设置为测量直流电压。如果您有手动范围仪表,则将DMM设置为2000MV范围。
将红色探针连接到V出去LM35的销钉,并探测GND。从上图中可以看到,DMM显示MV中LM35的输出电压(Milli Volts)。在这里,输出电压为276mV。
为了获得温度,将该值与10mV分配,结果为27.60C。
Arduino LM35温度传感器
即使您只需使用LM35传感器和万用表即可轻松测量温度,但像Arduino这样的微控制器对于在LCD或OLED上显示结果非常有用。
您甚至可以使用ESP8266或ESP32构建Web服务器,以显示网页上LM35温度传感器的温度读数。
对于这个项目,我将坚持使用Arduino,并构建一个简单的Arduino LM35温度传感器,并在16×2 LCD显示屏上显示结果。为了保持简单,我将使用PCF8574 i2C模块将常规LCD转换为I2C LCD,因此您仅需要两根从Arduino到16×2 LCD的电线。
我已经撰写了一个专门的教程将I2C LCD与Arduino接口。在继续之前,请阅读该教程。
需要组件
- Arduino Uno
- LM35温度传感器
- 16×2 LCD
- PCF8574 i2LCD的C模块
- 连接电线
- 面包板
- 面包板电源
电路原理图
下图显示了Arduino LM35温度传感器的电路图。LM35的输出引脚连接到模拟输入0,即A0。对于I2C LCD,SDA和SCL引脚分别连接到A4和A5销钉的Arduino Uno。
代码
在编写项目的实际代码之前,我们必须确定PCF8574模块的I2C从地址。为此,请按照电路图进行连接,将Arduino插入计算机并上传以下测试代码。
打开串行监视器,如果设备正确连接并正在工作,则您将在串行监视器上打印的从地址。就我而言,是0x3f。在实际代码中使用此从地址。
以下是使用Arduino从LM35温度传感器测量温度并在I2C LCD上显示结果的代码。
从ADC计算温度
由于LM35是一个模拟传感器,因此其输出是一个模拟电压,与温度成正比,比例系数为10MV/0C.因此,我们必须使用Arduino测量模拟电压,并将结果与10MV分开以获得温度0C。
从该项目中获得准确结果的一种方法是使用ATMEGA328P微控制器所看到的实际AREF值,而不是盲目进入理论5V(5000mV),同时从ADC输出中计算模拟电压。
如果ADC_VAL是ADC的输出(为0到1023之间),AREF是ADC块的实际参考电压,而ADC_RES是ADC的分辨率,那么我们可以计算输入模拟电压ADC_IN为::
由于Arduino Uno中的ADC或ATMEGA328P微控制器具有10位分辨率,因此ADC_RES的值为210= 1024。
结果是MV中的输入模拟电压(假设您将MV用于AREF)。现在,将此模拟电压除以10mV以获得温度0C。
结论
这里建立了一个名为Arduino LM35温度传感器的简单项目。您了解了经典的LM35温度传感器,如何在没有任何微控制器的情况下测量LM35的温度,以及如何与Arduino接口LM35温度传感器并在I2C LCD上显示温度。