所有关于电路
项目

如何用镐头来造一个恒温器

2015年10月14日通过查尔斯·r·汉普顿

便宜的PICAXE微控制器使它很容易读取温度传感器,比较温度到设定值,并打开或关闭加热器或冷却器电路。

介绍

无论是用来加热爬行动物围栏还是鸟类孵卵器,冷却电脑或视频游戏控制器,打开或关闭阁楼风扇,或完全用于其他东西,恒温器在家庭和商店中有很多应用,而且制作起来非常容易。恒温器的三个主要部分是温度传感器,带有可调设定值的温度比较器,以及用于连接加热器、冷却器或风扇的控制电路。本文将提供关于温度传感器和比较器的详细信息,但由于被控制的外部设备(加热器、冷却器、风扇等)决定了控制器电路的参数,因此本文不包括这些内容。

恒温器可以是机械,电气,电子或三种组合的。电子恒温器可以使用离散元件,运算放大器或微控制器构建,而是作为标题状态,本文是关于将恒温器与惊人的Picaxeμc作为温度比较器构建。这DS18B20采用集成电路作为温度传感器。

建立和编程这个电路需要一个适当的背景涉及PICAXE微控制器,如果你发现自己的装备不足,回顾一些这些文章也许是合适的。

DS18B20

与PICAXE一起使用的温度传感器是DS18B20从Maxim集成,并完全描述数据表。这个项目将使用TO-92包,但如果您的需求是表面安装设备,DS18B20也可在8针SO和µSOP包。只需对pin号码进行调整,因为所有三种变体的能力是相同的,你应该没有问题。

DS18B20通常以摄氏温度读出,其范围从-55ºC到+125ºC,其精度从-10ºC到+85ºC指定为+/-0.5ºC。它可以提供9位或12位的分辨率,运行在3.0V到5.5V。多个DS18B20设备可以在一个单一的3线总线上操作,但是这个项目将只使用一个传感器。

电路

该项目电路电路示意图如下所示;它相对简单,与作者在PICAXE的其他文章和项目中使用的设计非常相似。单击该图像可获得示意图的放大版本。

下面的照片显示了无焊锡电路板组装的电路,并是相同的电气原理图上面。点击图片查看照片的大图。

给出了原理图和无焊锡电路板照片,你应该有很少的麻烦,复制组装。下面的注释将为你可能有的大多数问题提供答案。

  • DS18B20的TO-92版本的引脚图如图所示。请确保您理解,pinout关系图显示了设备的底部视图,但在面包板组件中显示了顶部视图。
  • LED1将与外部加热器/冷却器控制电路上电信号同时发光。注意,PICAXE上单个引脚的最大可用电流为20mA,流过R4和LED1的电流约为5mA。因此,外部加热器/冷却器控制电路不能超过15mA。
  • 原理图上的所有导线颜色与面包板照片中显示的实际导线颜色一致。
  • 所有电阻都是。25瓦,5%的公差。
  • 需要一个稳压+5VDC电源;三节AA碱性电池串联就足够了。
  • 说明了PICAXE编程接口在这里
  • 对串行LCD进行了说明在这里

与往常一样,在继续之前,您应该重新检查所有连接。到目前为止,新制作的电路板的大多数问题都是由于布线错误造成的。

代码

操作恒温器电路的代码如下所示。

如您所见,代码注释得很好(绿色文本),并且只提供了几个新命令,超出了作者在以前文章中使用的命令。

  • 第19行和第20行用于在串行控制器中为LCD创建一个新的自定义字符:度符号(º)。包含如何逐像素创建自定义符号的说明在这里,但更简单的方法是使用Paul Badger创建的聪明的程序,在“资源”下面的最后一颗子弹中可用。在这里
  • 第32行是PICAXE从DS18B20读取温度的实际命令。如果你读了很多DS18B20数据表,你可能会期待一些更复杂的东西,但革命教育的人,PICAXE系统的制造者,为你做了工作。beplay网页版本在pic斧中讨论了readtemp12命令手册2

下载代码,在pic斧编辑器6或您选择的IDE中打开它,打开面包板电路(您检查了所有的连接,对吗?)并对08M2进行编程。

picaxe_08m2_lcd_tmithostat.zip.

运行代码

编译代码并编程到PICAXE 08M2后,LCD配置和启动时会出现延迟,之后应该与下图类似。如果您所在的地方的温度不是78.5ºF,您应该看到显示的本地环境温度。

“等等,”你可能会说。“我以为DS18B20的读数是摄氏度,不是华氏温度!”你是对的。然而,第34到39行将C转换为F;如果您需要Celcius,只需修改代码以消除这种转换。

“开和关的设定值呢?我该如何改变这一点?”同样,答案就在代码中;只需将第27和29行更改为您想要的温度,并重新编程PICAXE。

你注意到每个温度读数后的那个漂亮的度数符号了吗?这是在第19行和第20行中创建的新的自定义字符。要查看串行适配器中的其他自定义字符,关闭电源和打开电源,这将导致LCD重新启动,并显示下面的引导屏幕。

这8个自定义字符位于显示的第二行:度符号(º)后面是7个竖条。所有这八个都在串行控制器的非易失性存储器部分,并将保持在那里,直到他们被重新编程。

最终的想法

将设定值调整到刚好低于或刚好高于您所在的环境温度。然后,对着DS18B20吹口气,看着显示屏显示更高的温度,关闭黄色LED。继续观看DS18B20返回环境温度,黄色LED继续发光。

研究代码,对其进行更改,并测试您的更改。没有比……更好的方法来学习写代码。编写代码。

玩得开心!

自己尝试一下这个项目吧!BOM。

2的评论
  • D
    dpresley58 2016年5月20日

    查尔斯,你知道传感器可以安装在离电路多远的地方吗?我看到了3-5英尺的扭曲电缆。谢谢你在这个项目上的努力。

    喜欢的。 回复
    • 查尔斯·r·汉普顿 2016年5月20日
      虽然有一些关于DS18B20在很长的电缆(50到60英尺)上的问题的报告,我相信你在10英尺或更少的地方不会有问题。祝你好运。
      喜欢的。 回复