用于 Arduino 真空低温烹调法项目的温度传感器

电器工程 Arduino 温度 pid控制器 热敏电阻 热电偶
2022-02-01 02:27:46

我正在为真空低温烹调法创建一个 PID 控制器,比如这个,并试图决定要获得哪个温度传感器。

优先事项:

  • 成本:< 25 英镑在英国交付
  • 精度:+/- 0.5C
  • 范围:0 - 100℃
  • 输出:Arduino 可以通过最少的附加电路读取的东西(例如 0-5VDC、易于测量的电阻或数字输出,如 OneWire 等)
  • 物理:防水、食品安全(理想情况下)和至少一米长的引线——理想情况下,创建这种外形尺寸不需要太多工作(我没有车间)
  • 故障模式:如果故障导致温度过高而不是温度过低,这将是理想的

如果需要,很乐意在上述任何一项上妥协,但这是我的理想。也对我应该妥协的其他建议持开放态度。我对有关传感器的想法特别感兴趣,例如 k 型、pt100、TMP36 芯片和“标准”10K 热敏电阻(尽管如果这些名称不够具体,请让我知道我应该是什么而是寻找)。

4个回答

获取精密温度传感器 IC,例如LM35CAZ

LM35CAZ

你用一个好的 5v 给它供电,输出是一个简单的电压,它是温度的线性函数。它们在室温下具有相当好的精度,为 ±1⁄4˚C。

添加:

有几个人谈到这个传感器的“温度范围内的精度”为 ±1ºC。这是错误的范围。“烹饪温度的准确性”是谈论的正确范围。在大约 60ºC 时,精度为 ±0.7,并且可能比这更好。“典型”线在您的烹饪范围内变化约 0.1ºC。

LM35CAZ的精度

您可能只需要一到两个校准点即可轻松获得足够准确的传感器以满足您的需求。但是,当然,这需要一个精确的温度计来校准它。为此,您有几个选择:

选项 1:您可以使用水。正在结冰的水的温度是 0ºC。所以把它粘在冰箱里的一小杯水里,仔细观察输出电压。它会不断下降,直到水开始结冰。此时,温度将停止下降并保持平稳一段时间。一旦冻结完成,温度将再次开始下降。记下平坦区域的电压以用作 0ºC 校准点。

冷冻水温图

对沸水做同样的事情。最好在海平面上进行。如果您不在海平面上,请检查您所在海拔高度的水沸腾温度。

校准温度计。

使用 0ºC 和 100ºC 不如使用 50ºC 和 80ºC,但要容易得多。如果您确实有一个非常准确的温度计,那么您应该使用更接近烹饪温度的校准点。

选项 2:使用甲醇。(感谢 stevenvh)这在 64.7ºC 时沸腾。这与您的烹饪温度非常接近,您只需要一个校准点即可获得非常准确的烹饪温度。显然要小心不要使自己陶醉或被烟雾炸毁。不要用明火加热酒精!

添加 - 放大

由于您在狭窄的温度范围内工作,并且您需要良好的控制精度,因此可能还值得放大传感器的输出。这将在 Arduino 上提供更高的 ADC 分辨率,这将转化为 PID 控制算法的更好稳定性。请参阅模拟电压电平转换(电平转换)问题,该问题讨论了模拟电压的放大和电平转换。

假设您在 40ºC - 100ºC 范围内工作 (0.4v - 1.0v)。您需要从信号中减去 0.4v,得到 0.0v - 0.6v,然后以 8 倍的增益放大结果,得到 0.0v - 4.8v。这将提供出色的分辨率。

首先,同意其他人的观点:追求 1.0C 的精度会让你的生活轻松很多。

您似乎设置在模拟传感器上,但我建议使用带有数字接口的传感器。模拟传感器要么是(使用的)辐射测量的(提供与温度相关的 Vcc 百分比),它会产生非线性响应,您必须对其进行转换。另一种类型(LM35 等)是绝对的,这要求您针对必须(远)比您所需精度更准确的参考电压进行 A/D。除非您想测量数字接口传感器无法测量的东西(例如 >> 100C),否则这似乎是很多不必要的麻烦。

编辑:让我们试试 LM35。10mV/C,即使假设 LM35 本身没有误差,典型的参考(LM431 等)也是 1% 的准确度,这会在温度读数中引入 1% 的误差!典型的微控制器 A/D 为 10 位,假设满量程为 2.5V 参考电压(检查您的 uC 是否允许这样做!)。1 位 A/D 误差(让我们保持乐观!最好检查你的 uC 数据表)是 2.5mV = 1/4C 误差。因此,即使没有传感器本身,我们也会有 +/- 1.25 C 的误差(充其量是..)。

得到一个数字接口传感器,例如好的旧 DS1820 / 18S20 / 18B20,都是 TO92。或者 Microchip 在 TO220 中制造的 I2C 或 SPI 传感器之一。如果您在托盘或其他东西中加热,您可以将标签连接到托盘。

听起来您只是在询问探头。显然你想要一些可以直接接触食物的东西。PID 控制器不仅包括反馈传感器,还包括很多内容,但听起来您并没有问这个问题。如果其中任何一个不正确,那么您应该更新您的问题。我也不知道什么是“真空低温烹调法”。任何与之相关的信息都应该在您的问题中。链接仅用于背景材料。

正如史蒂文所说,当你谈论食物时,1/2 摄氏度是非常雄心勃勃且不必要的。

最简单的温度传感器将是热敏电阻。他们可以处理这个范围,否则只需要一个负载电阻。结果也将与您的供应成比例,因此任何供应变化都会抵消。在固件中检测故障很容易,因为非常接近范围顶部或底部的读数表明温度不切实际。如果您在某个有效温度范围之外得到任何东西,那么您会假设硬件故障并进入您认为安全模式的任何内容。这实际上是一个固件问题,而不是带有热敏电阻和正确负载电阻的硬件问题。

至于使其食品安全,将探头封装在玻璃中应该是好的。将热敏电阻环氧树脂涂在一个小试管的底部怎么样,然后它就变成了探针?顶部可以用热胶或其他东西密封。它需要防水,但食物不应该在那里。只有两根绝缘线应从管的顶部伸出。玻璃在传热方面相当出色。探头的时间常数仍应远小于从加热器电源到食物温度变化的时间常数。

除非您花很多钱,否则热敏电阻不是很准确。对于一个一次性的爱好项目,我会得到任何可以在正确范围内的热敏电阻并手动校准。在从可靠的已知温度计确定的几个已知温度下进行校准,然后让固件在两者之间进行插值。对于额外的功劳,您甚至可以查找热敏电阻的标称方程,尽可能地将您的测量点拟合到它,然后从中导出连续函数。您可以使用校准函数中的许多段填充固件中的固定表,以便段之间的线性插值非常好。

再一次,1/2 摄氏度的要求太多了,但无论如何你并不需要那么多。一个可能有 4 个校准点、方程拟合和插值的热敏电阻应该可以很好地解决实际问题。

使用 LM335Z,您可以校准任何给定传感器的偏移和增益误差,在 0'C 到 100'C 下使用冰和沸水进行 2 个测试读数。

然后在中间范围内获得验证读数,例如 50'C。

您可以制作一个测试夹具并校准一个传感器作为您的银标准与另一个金标准温度计。然后,您保存预期的实际误差并计算线性级数或增益和偏移数以保存在 EEPROM 中,以便它们成为校准集。如果您获得一批,您可能会发现它们都具有相同的偏移和增益误差,您可以在软件中更正这些误差以显示更正后的读数。

使用 0.1'C 标准,您可以预期 0.2'deg 误差,并使用您选择的任何显示器来保证关键设定点的 0.5'C 误差。

见图 3

http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATASHEET/CD00000459.pdf

我会用一层薄薄的食品级环氧树脂涂层密封传感器,以保护设备免受水分泄漏,并使用双绞线或两根双绞线柔性线,使用 2 作为屏蔽,然后使用“铁氧体 CM 扼流圈”来吸收射频干扰。

然后,您需要一个 ADC,它可以保证精确到 +/- 0.5 位或 256 级中的 1 位,以读取 0.5/100% 的准确度。大多数 Arduino 无法保证这一点,因此您需要使用硬件 DAC 在 2 通道示波器上的输出减去输入中进行测试,并为 CH1 和 CH 2 选择 AC 耦合,然后显示 XY 模式 CH1 与 Ch2 以获得一个中心点最多遍历 +/- 1 位。ADC 中的任何 Vref 噪声都会在 01111 到 10000 等转换期间导致量化电平跳跃或滞后,并且从数字接地到输入模拟接地馈通的串扰将在单调性上失效。

查看 TI 网站以获取有关 ADC 错误的文献。

@Richard Russell << 我很欣赏有机烹饪方式在低温下需要控制 0.5 摄氏度,当细菌被杀死时,生物体开始在巴斯德温度以上迅速死亡。

如果是我,我会在它牢固地连接到绝缘良好的 Pot 后,使用 45 到 65 摄氏度之间的偏移增益校准温度校准 0.1 度精度。然后,您可以胜过市场上任何其他商用炊具……假设它在高 R 值电介质中绝缘良好。

然后为了外观,你可以收取 500 美元,将它包裹在精密的美国 SS 中,就像“圣路易斯精神”一样,被深深地划伤和高度抛光。;)

就我个人而言,我会让专业人士每天使用 50 美元的具有历史烹饪意义的艺术品来蚀刻 SS 外部酸,然后对带有个人徽标和公司名称的定制艺术品收取额外费用。只要问你是否需要一个好的参考。

感谢您让我帮助您实现目标。