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

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

3天内不再提示

MAX31855热电偶的使用

454398 来源:网络整理 作者:网络整理 2019-11-27 10:09 次阅读

概述

热电偶是一种温度传感器

与TMP36等半导体温度传感器不同,热电偶内部没有电子器件,它们只需将两条金属线焊接在一起即可。由于两种连接金属的物理作用,导线两端的电压会随着温度的升高而轻微但可测量。使用的金属类型会影响电压范围,成本和灵敏度,这就是为什么我们有几种不同类型的热电偶的原因。在半导体传感器或热敏电阻上使用热电偶的主要改进是温度范围大大增加。例如,TMP36的温度可从-50升至150°C,之后芯片本身可能会损坏。另一方面,普通的热电偶的温度范围可以从-200°C到1350°C(K型),有些可以超过2300°C!

MAX31855热电偶的使用

热电偶通常用于HVAC系统,加热器和锅炉,窑炉等。有几种不同的类型,但是本教程将讨论K类型,这是非常常见的,并且更易于与之交互。

使用它们的一个困难是被测电压很小,并且变化很大。每°C约50 uV(uV为1/1000000伏)。虽然可以使用干净的电源和良好的运算放大器来读取这些电压,但还有其他复杂性,例如非线性响应(并非总是50uV/°C)和冷温度补偿(仅测量到的影响)差分,并且必须有一个参考,就像接地是电压的参考一样)。因此,我们建议仅使用可以为您完成繁重工作的接口芯片,让您轻松集成传感器而不会带来太多麻烦。在本教程中,我们将使用一个甚至不需要ADC的MAX6675 K热电偶接口芯片,吐出一个很好的温度数字数据信号

一些基本统计信息

这是用于带有玻璃编织层的K型热电偶

尺寸: 24米长1米(

价格:在adafruit商店中的价格为10美元

温度范围: -100°C到500°C/-150到900°F(此后可能会损坏玻璃编织层)

输出范围: -6至+ 20mV

精度: +-2°C

需要一个放大器,例如MAX31855

接口: MAX6675(已停产)或AD595(模拟

K热电偶数据表

MAX6675数据表

MAX31855数据表

接线热电偶

正如我们之前提到的那样,对于大多数人来说,尝试实际测量导线上的电压将非常困难,因此我们强烈建议使用热电偶接口芯片。到目前为止,我们所见过的最好的是MAX6675(及其替代版本称为MAX31855),不幸的是,仅提供SOIC封装。尽管焊接起来不太困难,但我们在商店中仍准备好可以使用的分线板。

首先要确定哪根电线是哪根。您还记得,热电偶是通过将两根导线焊接在一起制成的,芯片读取两者之间的电压差。一个是负极(对于K型由Alumel制成),另一个是正极(同上,Chromel)。幸运的是,电线采用了颜色编码,几乎所有时间您都会发现Alumel为红色,Chromel为黄色。

根据需要将导线连接到放大器:

MAX6675和MAX31855热电偶放大器与接地的热电偶不兼容。

我们已经看到一些K型热电偶,其引线标记不正确,因此如果您发现热电偶温度下降而不是加热时上升,尝试交换红色和黄色电线

Arduino代码

如果您使用的是AD595接口芯片,则只需将电压输出连接到微控制器上的模拟输入,然后进行一些基本数学运算即可将将10 mV/°C输入到数字输出中。

如果您打算使用MAX6675/MAX31855,还有更多工作要做。首先,Vin和GND必须连接到3-5V电源。然后,三个数据引脚必须连接到数字IO引脚:

CLK (时钟)是MAX6675/MAX31855的输入(微控制器的输出),指示何时显示另一位数据

DO (数据输出)是MAX6675/MAX31855的输出(微控制器的输入),带有数据的每一位

CS (片选)是MAX6675/MAX31855的输入(微控制器的输出),它告诉芯片何时是时候读取热电偶并输出更多数据了。

在我们的草图的开头,我们定义了这些引脚。对于我们的示例, DO 连接到数字3 , CS 连接到数字4, CLK 连接到引脚5

在嘈杂的环境中,MAX31855 v1.0可能需要在热电偶引线之间添加一个0.01uF电容器

MAX31855不支持接地的热电偶-如果传感器接地,芯片将返回错误

Arduino库

如果您有较旧的MAX6675分支,请从Arduino库管理器中下载 Adafruit MAX6675 库。

如果您具有较新的MAX31855分支,请从以下位置下载 Adafruit MAX31855 库:

打开Arduino库管理器:

如果有MAX6675分组,请搜索 MAX6 675 库并安装

如果有MAX31855分组,请搜索 Adafruit MAX31855 库并安装它

打开文件 -》 示例-》 MAX6675/Adafruit_MAX31855 -》 serialthermocouple 草图并将其上传到Arduino。上传后,打开串行端口监视器以显示摄氏温度和华氏温度的当前温度。

我们还提供了有关Arduino库安装的出色教程,网址为:

http ://learn.adafruit.com/adafruit-all-about-arduino-libraries-install-use

readCelsius()或 readFahrenheit()以获取浮点结果。

添加显示 通常的要求是将温度输出到本教程中的“经典”字符LCD上。

为此接线,我们将 CLK 连接到数字 3 , CS 转换为数字 4 和 DO 转换为数字 5。一旦工作,就可以更改草图中的引脚连接

我们也有一个示例草图。首先按照我们的教程使LCD工作。现在加载新草图文件-》示例 -》 MAX31855 》 lcd热电偶并像在串行热电偶测试中一样插入热电偶模块,您会看到内部温度和热电偶温度以摄氏度显示。

Python和CircuitPython

将MAX31855传感器与Python和CircuitPython以及Adafruit CircuitPython MAX31855模块一起使用很容易。此模块使您可以轻松编写可从热电偶读取温度的Python代码。

您可以将此传感器与任何CircuitPython微控制器板或具有GPIO和Python的计算机一起使用,这要归功于我们的CircuitPython支持的Adafruit_Blinka -Python兼容性库。

CircuitPython微控制器接线

首先,按照与Arduino前几页完全相同的方式将aMAX31855连接到您的电路板上。下面是将Feather M0连接到传感器的示例:

板3V 至 sensorVdd

板GND 至传感器GND

板卡SCK 到 sensorCLK

板卡MISO sensorDO

D5板到传感器CS (或任何其他免费的数字I/O引脚)

Python计算机接线

由于您可以使用数十种Linux计算机/主板,因此我们将显示Raspberry Pi的接线。对于其他平台,请访问Linux上的CircuitPython指南,以了解您的平台是否受支持。

以下是连接SPI的Raspberry Pi:

Pi 3.3V 到传感器 Vin

Pi GND 到传感器 GND

Pi SCLK 到传感器 CLK

Pi MISO 到传感器 DO

Pi GPIO 5 至传感器 CS

MAX31855库的CircuitPython安装

接下来您需要在电路Python板上安装Adafruit CircuitPython MAX31855库

首先请确保您正在为板运行最新版本的Adafruit CircuitPython。

下一步,您需要安装必要的库才能使用硬件-认真按照以下步骤从Adafruit的CircuitPython库捆绑包中查找和安装这些库。例如,Circuit Playground Express指南上有一个很棒的页面,说明如何为快速和非表达板安装库包。

记住非表达板,例如Trinket M0,Gemma M0和Feather/Metro M0 basic,您需要从捆绑包中手动安装必要的库:

adafruit_max31855.mpy

adafruit_bus_device 》

在继续之前,请确保您开发板的lib文件夹或根文件系统具有 adafruit_max31855.mpy,和 adafruit_bus_device 。

下一步连接到开发板的串行REPL,这样您就可以在CircuitPython上得到》》》 提示。

MAX31855库的Python安装

您需要安装Adafruit_Blinka库,该库在Python中提供了CircuitPython支持。这可能还需要在您的平台上启用I2C并验证您正在运行Python3。由于每个平台都略有不同,并且Linux经常更改,请访问Linux上的CircuitPython指南以准备好您的计算机!

完成后,从命令行运行以下命令:

sudo pip3 install adafruit-circuitpython-max31855

如果您的默认Python是版本3,则可能需要改为运行“ pip”。只要确保您不尝试在Python 2.x上使用CircuitPython,就不支持它!

CircuitPython和Python的用法

为演示传感器的用法,我们将对其进行初始化并读取温度。首先通过运行以下命令初始化SPI连接和库:

下载:文件

复制代码

import board

import busio

import digitalio

import adafruit_max31855

spi = busio.SPI(board.SCK, MOSI=board.MOSI, MISO=board.MISO)

cs = digitalio.DigitalInOut(board.D5)

max31855 = adafruit_max31855.MAX31855(spi, cs) import board

import busio

import digitalio

import adafruit_max31855

spi = busio.SPI(board.SCK, MOSI=board.MOSI, MISO=board.MISO)

cs = digitalio.DigitalInOut(board.D5)

max31855 = adafruit_max31855.MAX31855(spi, cs)

现在,您可以读取温度属性,以从摄氏度中检索传感器的温度:

下载:文件

复制代码

print(‘Temperature: {} degrees C’.format(max31855.temperature)) print(‘Temperature: {} degrees C’.format(max31855.temperature))

使用MAX31855和CircuitPython代码读取温度就是全部!

完整示例代码

下载:Project Zip 或 max31855_simpletest.py | 在Github上查看

复制代码

import time

import board

import busio

import digitalio

import adafruit_max31855

spi = busio.SPI(board.SCK, MOSI=board.MOSI, MISO=board.MISO)

cs = digitalio.DigitalInOut(board.D5)

max31855 = adafruit_max31855.MAX31855(spi, cs)

while True:

tempC = max31855.temperature

tempF = tempC * 9 / 5 + 32

print(‘Temperature: {} C {} F ’.format(tempC, tempF))

time.sleep(2.0)

import time

import board

import busio

import digitalio

import adafruit_max31855

spi = busio.SPI(board.SCK, MOSI=board.MOSI, MISO=board.MISO)

cs = digitalio.DigitalInOut(board.D5)

max31855 = adafruit_max31855.MAX31855(spi, cs)

while True:

tempC = max31855.temperature

tempF = tempC * 9 / 5 + 32

print(‘Temperature: {} C {} F ’.format(tempC, tempF))

time.sleep(2.0)

常见问题解答

我的热电偶的温度似乎向后!如果我加热探头,则报告的温度会降低

由于热电偶线的标签不正确。尝试交换两条热电偶引线,即使黄色和红色的导线在正确的插槽中-我们也看到一些热电偶的导线颜色错误。

我的MAX31855输出确实不稳定且嘈杂-如果我触摸或移动探头,温度输出会发疯

MAX31855具有令人惊讶的灵敏性,我们发现一种解决此问题的好方法是在热电偶引线上放置一个0.01uF至0.1uF的电容器(即,将电容器放入蓝色接线盒中,或焊接到底部,如下所示。

我的热电偶输出有一个偏移量/我有多个热电偶,但它们在温度上“不同意”

K热电偶不是精确的温度测量设备!热电偶之间会有偏移和差异。我们建议,大多数热电偶温度计都通过软件校正了偏移量。有关校准的提示,请参见本指南:

传感器校准

对于精确的温度测量,我们建议使用1%的热敏电阻。

如何连接多个热电偶?

您最多可以连接MAX31855你有别针。只需共享所有分支的CLK和DO引脚,并且每个引脚都有一个唯一的CS引脚即可。然后,您可以使用以下样式创建新的热电偶:

Adafruit_MAX31855热电偶1(thermoCLK,thermoCS1, thermoDO);

Adafruit_MAX31855热电偶2(thermoCLK,thermoCS2,thermoDO);

Adafruit_MAX31855热电偶3(thermoCLK,thermoCS3,thermoDO);

您也可以尝试使用相同的CS和CLK引脚,但使用所有不同的DO引脚

Adafruit_MAX31855热电偶1(thermoCLK,thermoCS,thermoDO1);

Adafruit_MAX31855热电偶2 (thermoCLK,thermoCS,thermoDO2);

Adafruit_MAX31855热电偶3(thermoCLK,thermoCS,thermoDO3);

在极高或极低的温度下,测量结果不正确

热电偶线性化

项目示例

需要想法吗?看看这些项目!

Jeelabs详细介绍了回流控制器(使用AD595型芯片)

Terran的PI控制的咖啡烘焙机

RocketNumberNine的回流焊机项目

下载

数据表和文件 strong》

MAX31855数据表

MAX6675原理图和布局文件位于GitHub

MAX31855原理图和布局文件位于GitHub

在Adafruit Fritzing库中为两个对象都打褶

示意图

点击以嵌入

Fabric Print

责任编辑:wv

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

    关注

    5

    文章

    827

    浏览量

    74678
  • MAX31855
    +关注

    关注

    1

    文章

    7

    浏览量

    16171
收藏 人收藏

    评论

    相关推荐

    热电偶热电阻与测量强电时的方法要求?

    或者汇流排的温升时,需要将热电偶或者其他温升测量探头直接粘在这些强电流经的区域,那么热电偶是导体,它会把强电的电压引入到测量仪器内部,那么针对这种情况有什么解决办法?我想到两点如下: 1、在输入端粘点
    发表于 03-30 23:38

    stm32f401和max31855通过spi通讯,没有将spi的相关中断优先级置于最高级就会死机的原因?

    stm32f401和热电偶芯片max31855通过spi通讯,如果没有将spi的相关中断优先级置于最高优先级,程序运行几秒后就会死机,将spi中断设置为最高优先级,程序可正常运行
    发表于 03-28 09:14

    使用AD7705进行热电偶采集,使用两个通道对两个热电偶进行采集出现AD7705无法读出的情况怎么处理?

    大家好! 我一直使用AD7705进行热电偶采集, 原来只使用一个通道,没有什么问题,此次使用两个通道对两个热电偶进行采集, 原理图如下: 热电偶的负极都接于VREF. 热电偶
    发表于 12-22 06:06

    AD7124-8多路热电偶采样,每一路是否需要做隔离?

    AD7124-8 多路热电偶采样时,每一路是否需要做隔离,假设两个热电偶探头绝缘不好,搭在电源上,两路之间是否会形成环路电流?多谢
    发表于 12-08 07:54

    MAX31856在T型热电偶拔掉的时候会出现-199℃这个值是为什么?

    在使用MAX31856进行测温的过程中,拔掉T型热电偶,总会读到-199℃这个值。
    发表于 11-30 06:17

    求助,关于热电偶的信号调理电路的问题

    我要做多路的温度采集,用的是K型热电偶,电源用电荷泵转换模块,信号调理部分想用AD620和OP07做二级放大,现在有几个地方不太有把握,请做过的帮忙! 一是电源,我现在用12v电瓶供电,用电
    发表于 11-28 06:01

    AD8495热电偶放大器自身发热怎么解决?

    项目中用到AD8495热电偶放大器,使用±5V供电,由于设计需要,热电偶接入到PCB上的位置和AD8495的位置相距10cm。 测试发现测得温度偏高7度左右,经过分析应该是AD8495自身温度偏高
    发表于 11-21 07:26

    采用K型热电偶的温度测量信号如何采集?

    我们现在想咨询下采用K型热电偶的温度测量试验方案怎么设计。 我们现有LMS100KHz数据采集卡,但是采集卡无法直接采集毫伏级热电偶信号,我们想把热电偶信号放大成10伏以内的信号,采样频率不低于
    发表于 11-20 06:11

    k型热电偶的电流是什么?怎么测量?

    k型热电偶的电流是什么?怎么测量
    发表于 10-16 06:55

    怎么用STM32采集热电偶的信号?

    热电偶的输出信号是uv级别应该怎么采集
    发表于 10-15 10:59

    热电偶温度传感器的详细资料

    如果两种不同成分的均质导体形成回路,直接测温端叫测量端,接线端子端叫参比端,当两端存在温差时,就会在回路中产生电流,那么两端之间就会存在Seebeck热电势,即塞贝克效应。热电势的大小只与热电偶导体材质以及两端温差有关,与
    发表于 09-26 07:54

    热电偶温度计

    有没有工程师可以写高温热电偶的温度计。
    发表于 06-15 09:15

    无法使用Arduino IDE将MAX31855MAX6675用于我的NodeMCU V3?

    我无法使用 Arduino IDE 将 MAX31855MAX6675 用于我的 NodeMCU V3 (LoLin)。我已经使用 Arduino UNO 板进行了检查,并在该平台上获得了温度
    发表于 06-07 08:54

    max31855连接到wemos时,无法使用adafruit的示例代码serialtermocouple获得任何信号怎么解决?

    我已经将 max31855 与 arduino 一起使用了一段时间,我认为是时候将项目迁移到 esp 平台了。我没有找到适用于 Wemos D1 的任何 max31855 防护罩,所以我的计划是自己
    发表于 05-30 09:39

    什么GPIO引脚可以作为ESP8266 12E上的SPI CS引脚?

    6) GPIO 3 7) GPIO 1 现在有了这些选项,我们如何选择这些引脚中的哪些可以用作片选. 我使用的 SPI 设备是 MAX31855 热电偶放大器。
    发表于 05-30 07:59