0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

怎样用MLX90614和Arduino构建红外测温仪

454398 来源:工程师吴畏 2019-07-26 11:35 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

在本文中,我将解释如何通过红外线测量表面温度。使用这项技术,我们可以简单地通过向表面发送红外波并分析返回传感器的波来收集温度信息。

有许多不同类型的传感器可用于测量温度。 LM35或DS18B20温度传感器根据直接施加在传感器设备表面的热量提供输出。但是,对于极热的情况(例如明火),您无法使用基于接触的传感器来检测准确的温度。

如果你想用非接触式方法(我们为这个项目做)检测温度,红外线温度计传感器是最好的解决方案。因此,我们将使用Melexis的MLX90614红外测温仪进行此项目。 MLX90614传感器使用非接触式温度传感来收集温度信息,而不会触及任何特定表面。

红外线温度计的工作原理

虽然人眼看不到,但所有物体都会发出红外光线,浓度会因温度而异。通过检测红外线,我们可以感知温度范围。 MLX90614温度计传感器使用这一原理。

MLX90614是一款功能强大的红外传感器件,具有极低噪声放大器和17位ADC。它可以为温度计提供高精度和高分辨率。关于MLX90614的最佳部分是它使用工厂的数字SMBus进行校准。这意味着它将提供0.02°C的高分辨率输出,并可连续传输-20至120°C的测量温度。

现在我们了解传感器的工作原理,让我们深入了解项目!

必需材料

Arduino

字符LCD 16x2

MLX90614

LCD屏蔽(可选)

接线

MLX 90614温度计具有I2C通信线路,因此我们可以将此传感器与Arduino连接,无需任何额外电路。如下图所示连接所有内容。您可以使用LCD 16X2屏蔽或连接独立LCD,如Fritzing图中所述。

适用于Arduino LCD Shield

上传源代码

将以下源代码复制并粘贴到Arduino IDE。仔细检查连接后,上传代码。

/*

* Non-contact Thermometer with GY - 906 module

* Support for the MLX90614 sensor on the I2C bus

* SDA line = A4

* SCL line = A5

* Sensor supply with 5V

*/

#include

#include

LiquidCrystal lcd (8, 9, 4, 5, 6, 7);

int address = 0xb4; // Sensor address MLX90614

int erc = 0; // Variable holding the PEC value

int dataH = 0; // The second byte of data

int dataL = 0; // The first byte of data

double tempnalsb = 0.02; // Variable by which the digital value will be multiplied

double temperature = 0; // Variable holding the temperature

void setup () {

i2c_init (); // Initialization of the I2C bus

lcd.begin (16, 2); // Initialize the display

}

void loop () {

i2c_start_wait (address + I2C_WRITE); // Start I2C communication in write mode

i2c_write (0x07); // Write the value 0x07 (select the register Tobj1)

i2c_rep_start (address + I2C_READ); // Restart I2C communication at the read address

dataL = i2c_readAck (); // Read the first byte of data

dataH = i2c_readAck (); // Read the second byte of data

erc = i2c_readNak (); // Read the third (unimportant) data byte

i2c_stop (); // End of I2C transmission

temperature = (double) (((dataH & 0x007F) 《《 8) + dataL); // Create a 16-bit variable consisting of two one-byte variables

temperature = temperature * tempnalsb; // For one bit 0.02 K, the result of this operation is the temperature in Kelvin

temperature = temperature - 273.15; // Conversion to Celsius degrees

lcd.setCursor (0,0); // Display (first LCD line)

lcd.print (“Object =”);

lcd.print (temperature);

lcd.print (“”);

lcd.write (0xDF); // Degree sign

lcd.print (“C”);

i2c_start_wait (address + I2C_WRITE);

i2c_write (0x06); // Select the ambient temperature register

i2c_rep_start (address + I2C_READ);

dataL = i2c_readAck ();

dataH = i2c_readAck ();

erc = i2c_readNak ();

i2c_stop ();

temperature = (double) (((dataH & 0x007F) 《《 8) + dataL);

temperature = temperature * tempnalsb;

temperature = temperature - 273.15;

lcd.setCursor(0,1); // Display (second LCD line)

lcd.print (“Ambient =”);

lcd.print (temperature);

lcd.print (“”);

lcd.write (0xDF);

lcd.print (“C”);

delay (200); // Delay 200ms

}

有很多项目可以派上红外温度传感器,例如测量液体或热触摸表面。因为它不需要直接接触,所以在这些情况下MLX90614将是一个很好的选择。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 红外测温仪
    +关注

    关注

    3

    文章

    255

    浏览量

    28705
  • Arduino
    +关注

    关注

    190

    文章

    6515

    浏览量

    195974
  • MLX90614
    +关注

    关注

    3

    文章

    28

    浏览量

    18789
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    手持红外测温仪测温PDA手持终端的区别

    手持红外测温仪(NCIT / 非接触红外体温计)和集成了测温功能的 手持终端(PDA / 移动护理终端等)。两者表面相似,但用途、设计理念、准确性、校准和系统能力都不同。
    的头像 发表于 11-18 14:20 154次阅读
    手持<b class='flag-5'>红外</b><b class='flag-5'>测温仪</b>和<b class='flag-5'>测温</b>PDA手持终端的区别

    【RA-Eco-RA4M2开发板评测】 基于MLX90614红外测温(二)

    5 红外测温枪实现 5.1 MLX90614温度读取 MLX90614是基于I2C的,根据MLX90614的读写时序,其核心函数如下。 /*
    发表于 05-27 22:23

    【RA-Eco-RA4M2开发板评测】 基于MLX90614红外测温(一)

    量,视场的大小由测温仪的光学零件及其位置确定。红外能量聚焦在光电探测器上并转变为相应的电信号。该信号经过放大器和信号处理电路,并按照仪器内的算法和目标发射率校正后转变为被测目标的温度值。 MLX90614
    发表于 05-27 22:17

    【RA-Eco-RA4M2开发板评测】RA-Eco-RA4M2 使用 MLX90614测温

    广泛的应用。 本文以MLX90614DDA为例介绍其原理和应用。 MLX90614 系列模块是一组通用的红外测温模块。 在出厂前该模块已进行校验及线性化,具有非接触、体积小、精度高,成
    发表于 05-10 18:26

    红外线测温仪使用事项

    一、红外线测温仪的特点 1、非接触测量 在测量过程中不需要接触到被测量物体的表面和内部,不会干扰被测量物体的温度。 2、测量范围广 在正常工作和测温仪允许的条件下,测温仪的可测量范围一
    的头像 发表于 02-11 14:25 1056次阅读

    红外线测温仪如何校准

    红外线测温仪通过检测物体表面发射的红外辐射来测量温度。由于环境因素、设备老化和使用过程中的磨损,测温仪的准确性可能会受到影响。 校准前的准备工作 了解设备规格 :查阅
    的头像 发表于 01-03 15:29 4093次阅读

    红外线测温仪常见故障及解决办法

    红外线测温仪在使用过程中可能会遇到一些常见故障,以下是一些常见的故障及其解决办法: 一、输出无变化 故障现象 :被测介质温度升高或者降低时,红外线测温仪输出没有变化。 可能原因 :
    的头像 发表于 01-03 15:28 5288次阅读

    红外线测温仪使用注意事项

    红外线测温仪是一种非接触式温度测量设备,广泛应用于工业、医疗、科研等领域。使用红外线测温仪时,需要注意以下几个方面以确保测量的准确性和安全性: 1. 选择合适的
    的头像 发表于 01-03 15:25 1968次阅读

    红外线测温仪测温原理

    在工业生产、科学研究和日常生活中,温度测量是一项基本而重要的工作。传统的接触式温度测量方法存在诸多局限性,如测量速度慢、可能损坏被测物体、无法测量运动物体的温度等。 红外线测温仪的工作原理 红外
    的头像 发表于 01-03 15:22 2304次阅读

    如何选择红外线测温仪

    红外线测温仪是一种非接触式的温度测量工具,广泛应用于工业、医疗、科研等领域。它们能够快速、准确地测量物体表面的温度,而无需直接接触。选择合适的红外线测温仪对于确保测量结果的准确性和可靠
    的头像 发表于 01-03 15:20 1300次阅读

    红外线测温仪与传统测温仪比较

    在工业、医疗和日常生活中,温度测量是不可或缺的一环。随着技术的发展,测温技术也在不断进步。传统测温仪红外线测温仪是两种常见的温度测量工具。 一、工作原理 1.1 传统
    的头像 发表于 01-03 15:18 1416次阅读

    红外线测温仪适用范围

    红外线测温仪是一种非接触式的测温工具,因其非接触、快速、准确、方便等优点,在各个领域都有广泛应用。以下列举红外线测温仪的主要适用范围: 一、
    的头像 发表于 01-03 15:16 1703次阅读

    红外线测温仪精度怎么样

    在现代工业和科学研究中,温度测量是一项基础而重要的工作。传统的接触式测温方法虽然准确,但在某些场合下存在局限性,如无法测量运动物体或高温物体的温度。 红外线测温仪的工作原理 红外线
    的头像 发表于 01-03 15:12 1306次阅读

    红外线测温仪使用方法

    在工业、医疗、科研等领域,准确测量温度是至关重要的。红外线测温仪因其非接触、快速、安全的特点,被广泛应用于各种场合。 红外线测温仪的工作原理 红外
    的头像 发表于 01-03 15:07 2232次阅读

    高温红外测温仪原理及选型

      随着技术不断发展,红外测温仪功能和用途越来越多,加上仪器本身测量范围广、精度高、响应时间短、操作简便等特点,已广泛应用于工业生产、电力检测、建筑暖通以及消防等各大领域。其中,高温红外测温仪
    的头像 发表于 12-09 12:25 1653次阅读
    高温<b class='flag-5'>红外</b><b class='flag-5'>测温仪</b>原理及选型