做个温度计放家里

自从电子万年历坏掉以后,家里就没有测量室温的设备了。买条温度计当然可以,但是那种又不精准又容易碎的玩意显然不在我的考虑范围之内。这回又可以用手头的 ATTINY24A 单片机做点东西了,一同出场的还有 DS18B20 数字温度传感器。

board

先上电路图。除了 ATTINY24A 、DS18B20 和数码管以外,为了简化电路( aka. 偷懒)以及节省单片机的引脚,这里用了 CD4511 BCD to segment 译码器以及 ULN2003 达林顿管堆。这样省下来不少分立器件。为了显示小数点,我把数码管的 dp 和第二位的位驱动信号相连(达林顿管这种共射放大有反相器的作用)。另外由于 CD4511 只支持 0-9 十个数字,因此我们需要一个额外的 LED 来显示负号。

现在单片机还剩两个空闲的引脚。不用把 Reset 分配出去真是太好了。

再说说传感器的部分。DS18B20 加电之后自身会有一个温升,由于这货常温下的精度可达 ±0.1℃ ,如果不想办法控制这部分温升的话这精度可就浪费了。一般来讲可以通过两个方面控制 DS18B20 自身的温升:一方面可以将其输入电压控制在 3.0V 附近,减少其内部 LDO 的热耗散;另一方面可以给它加装散热片,使其管壳温度和气温尽量保持一致。由于手上的 DS18B20 是半圆柱形的 TO-92 封装,散热片比较难搞,所以唯一能做文章的地方就在输入电压上了。这里我用了一只 HT7133 ,这是一种古老的 TO-92 封装 3.3V 30mA 的 LDO ,精度一般,用在这里足够了,而且比较方便安装。电阻加上齐纳管也是个不错的主意。

固件的源码已经上传至:https://github.com/dword1511/AVR-Thermometer

P1110587

成品。比较遗憾的是数码管的耗电量比较大,完全靠电池跑有点不靠谱。

DSC_0413

最后一步就是带回家里找个地方挂起来了。不要担心冰箱会影响到它,这个冰箱早就坏掉了……

《做个温度计放家里》有6个想法

发表评论

电子邮件地址不会被公开。 必填项已用*标注