自制热电偶

一个波兰发烧友做了一个感温LED杯垫,如图8.1所示。这个杯垫可以感应杯中饮料的温度,并根据温度驱动板上的LED发出暖光或冷光。这个设计思路吸引了很多电子爱好者的关注。但个人认为在原设计上有一些改进。比如温度测量不需要很精确,温度传感器不需要使用独立的芯片,片内二极管就可以测量温度。另外,原设计中的LED采用并联结构,不能独立控制颜色,还有改进的空间,所以我设计了这款改进的感温彩虹杯垫。

自制热电偶插图

图8.1 波兰爱好者制作的感温杯垫图8.1波兰爱好者制作的感温杯垫。

为了尽可能的减少元器件的数量,我使用了一个ATTINY24单片机来完成温度测量和LED灯的控制。为了减少LED驱动所需的元器件,简化布线,LED采用ST505042。这款LED内置了ST313控制器,可以用串行双极性信号直接驱动,可以直接串联,降低了PCB制图的难度。另外,由于这个控制器是恒流驱动,所以不会出现闪烁问题,在3 ~ 5V的任何电压下也能很好的工作,不会因为电阻限流而出现电压变化时的色偏问题。所以无论是干电池、锂电池还是5V、3.3V电源,电路都能很好的工作。

设计原理

用这种方法制作的电路结构相对简单。电路原理图如图8.2所示,PCB图如图8.3所示。在设计中,在电源通路中串联一个肖特基二极管,避免电源反接造成的电路烧毁。然后,使用去耦电容来滤除电源上的干扰。

该电路利用单片机内部的PN结来测量温度,温度值可以通过软件读取。单片机用一个I/O口连接两个阻值相同的分压电阻,这样当I/O口输出电平时,两个电阻的中点电平为高/低,当I/O口转为高阻态时,电阻的中点电平可以输出1/2VCC,可以产生驱动LED所需的双极性信号。

LED内置的ST313控制器使用1.2MHz以下的信号传输信息,1/2VCC后接低电平指示逻辑0,1/2VCC后接高电平指示逻辑1,以表示每个LED所需的18位颜色信号。当数据线空闲超过60秒时,ST313将移位寄存器中的数据锁存到LED的电流控制器中,以改变LED的颜色。因为我们的连接距离很短,所以不需要考虑电磁干扰对数据正确性的影响。但远距离传输时,由于1/2VCC的存在,LED颜色可能会混淆,所以要采取措施减少干扰的影响。将led串联起来,将第一个LED与单片机信号相连,这样就可以根据单片机输出的电平信号独立控制任意一个LED的RGB颜色。

编程调试

为了对单片机进行编程,一般使用ISP(在线编程)功能下载程序。但是这个功能通常需要6根线,除了电源线之外至少4根线。这对于自己做的单面电路板的布线来说比较困难,会部分破坏电路的美观。解决这个问题的一个办法是利用单片机的烧插座进行编程。这种方法的缺点是烧插座价格昂贵,芯片焊接后很难再次编程。

我采用的解决方案是用AVR的debugWIRE修改程序。DebugWIRE是一个使用单线双向接口的片上调试系统。除了电源线,修改调试程序只需要一根线。但是为了开启debugWIRE功能,还是需要焊接飞线来修改芯片的熔丝位。在设置熔丝位之后,可以移除飞线,并且仅使用复位线来控制芯片的程序。这种方法唯一的要求就是你需要一个原装的调试工具,比如AVR Dragon或者MKII。之后可以直接在AVR Studio中模拟程序,根据需要插入断点,实时检查变量的值,调试程序的正确性。

需要注意的是,每个断点的使用都会缩短Flash的寿命,所以同一个芯片最好不要调试太多程序,但是调试完直接使用是没有问题的。正常完成调试后,芯片上电时不会执行程序,调试时拔掉调试线就可以正常运行程序。使用debugWIRE时,reset线上不应有其他组件。但是debugWIRE会稍微增加睡眠功耗,所以高功耗的应用最后需要关闭。

温度标定

用单片机测量温度时,需要考虑传感器的误差。由于单片机测温采用片上二极管,误差比较大。如果没有校准,精度可能只有10℃,所以需要校准方法来提高精度。对于电子测量,我们用电信号来表示另一个物理量,即电压来表示温度,ADC将其转换成数字量。所以我们需要电压和温度之间的函数关系,这样才能用电压值来推导温度值。显然,我们需要知道单片机测量的真实温度。我们可以使用高精度温度计来获得温度值,如玻璃水银温度计、指针式温度计或远程温度计,或者我们可以使用配备万用表的热电偶或激光校准传感器,如18B20。如果极客精力足够,可以用冰水混合等非主流方式。

知道温度后,下一步就是建立电压和温度的函数关系。因为我们最终会通过ADC转换成数字量,所以数字量输出和温度的函数关系也是等价的。理想情况下,我们应该获得尽可能多的温度点,以便覆盖任何输出值,我们可以使用查找表从输出值中推导出温度值。但是,覆盖这么多温度点往往不现实。我们只能收集有限的数据点,拟合函数曲线。一般来说,函数个数低于采样数据点个数,可以用最小二乘法拟合曲线。如果只需要结果,excel可以做到这一点。另外,如果想知道通过所有点的曲线形状,可以尝试用拉格朗日插值多项式来获得函数。在一般工程中,等距离采集多个数据点,然后分段拟合,可以得到很好的结果。

因为这种制作对精度要求不高,追求简单,所以我们假设数字输出与温度的函数关系是线性的,每变化1℃对应1个数字输出的变化。我们只需要一个点来定位函数。当然,待测区间的这个点会让精度更高。在这种情况下,只要计算待测点的输出值和校准点的输出值之间的差,并将该差加到校准点的实际温度值上,就可以获得待测点的实际温度值。虽然精度还是不高,但是对于这个制作来说绰绰有余了。

此外,传感器测得的温度可能会有一点抖动,这会导致系统在临界温度时在两种模式之间来回切换。所以在判断温度时,我采用了迟滞算法,即当温度上升到40℃时,我切换到高温模式,当温度下降到35℃时,我可以切换回正常模式。类似的算法适用于低温。这样系统就不会受到传感器抖动的干扰,工作比较稳定。

制作方法

为了组装整个杯垫,需要将PCB切割成六边形,并切割出一个同样形状的有机玻璃板,切割线确定后,可以在钢尺的帮助下用钩刀切割。之后在有机玻璃板的中心钻一个孔,但要注意钻头速度不能太快,进给速度不能太大,避免孔的边缘因温度过高而熔化。在有机玻璃的中心钻孔。如果有机玻璃板有划痕,可以用热风枪加热受损部分,有机玻璃上的小划痕在高温下就会消失。之后在PCB上涂上热熔胶,将有机玻璃粘合在PCB上。最后从有机玻璃板的开口处注入热脂,开口的上表面与单片机连为一体。这样,单片机就可以测量杯垫表面的温度。制造的物体如图8.4所示。此时,杯垫接通电源,整个杯垫就会亮起来,发出彩色的光,如图8.5所示,可以根据杯垫上饮料的温度变化不同的颜色。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。

本文来自网络,若有侵权,请联系删除,作者:青岛热电,如若转载,请注明出处:https://cnautoinfo.com/3271.html

发表回复

登录后才能评论