MAX31855热电偶的使用

电子说

1.3w人已加入

描述

概述

热电偶是一种温度传感器。

与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型热电偶,其引线标记不正确,因此如果您发现热电偶温度下降而不是加热时上升,尝试交换红色和黄色电线

MAX31855

Arduino代码

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

MAX31855

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

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

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

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

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

MAX31855

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

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

Arduino库

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

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

打开Arduino库管理器:

MAX31855

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

MAX31855

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

MAX31855

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

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

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

MAX31855

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

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

MAX31855

为此接线,我们将 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连接到传感器的示例:

MAX31855

板3V 至 sensorVdd

板GND 至传感器GND

板卡SCK 到 sensorCLK

板卡MISO sensorDO

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

Python计算机接线

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

以下是连接SPI的Raspberry Pi:

MAX31855

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

使用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的电容器(即,将电容器放入蓝色接线盒中,或焊接到底部,如下所示。

MAX31855

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

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);

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

热电偶线性化

项目示例

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

MAX31855

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

MAX31855

Terran的PI控制的咖啡烘焙机

MAX31855

RocketNumberNine的回流焊机项目

下载

数据表和文件 strong》

MAX31855数据表

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

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

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

示意图

点击以嵌入

MAX31855

Fabric Print

责任编辑:wv

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
评论(0)
发评论
junyunlai1 2020-07-05
0 回复 举报
MAX6675ISA    -20°C to +85°C     8 SOMAX31855KASA+T    -200°C to +1350°C     8SO 芯片源代码原理图技术支持 收起回复

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分