文学起点网
当前位置: 首页 文学百科

如何自己做温度计简单(巧手DIY热电偶温度计)

时间:2023-07-26 作者: 小编 阅读量: 3 栏目名: 文学百科

去了趟宜家,他们家的食品内部温度计居然要将近两百块一个。下一步就是供电。相比于宜家的食品温度计,我自己做一个省了一半的钱,还多了一个USB支持。电路中对电源开关的处理值得一提。MAX31855有采样频率限制,因此我不能高频率访问之。同时设置一个DMA,减少读取数据时CPU的干预程度。这个函数配置好SPI硬件和DMA,启动一笔4字节的DMA读访问。spitemp_end_capture函数则是在DMA中断中执行,将读入的数据整理,并清理SPI和DMA硬件。

老妈需要个食品内部温度计

市面上竟要200块一个

巧手的工程师儿子一用力

竟给老妈亲手做了一台

这样的儿子~~~

哎哟喂,来一打如何

~~~

别光羡慕啦

先来看看这位DIY高手的作品吧

以下内容摘自21ic论坛,作者为21ic网友xcvista。

这是我今年年初做的一个项目。之前老妈说想要买一个食品内部温度计烤牛排用。去了趟宜家,他们家的食品内部温度计居然要将近两百块一个。记得说某板厂样板五片 30 包邮?食品用 304 不锈钢铠装 K 型热电偶淘宝价 12 一支?看来自己 DIY 一个恐怕比买一个要便宜得多,赶紧动手。

一:选型

铂金热电偶虽然说性能稳定,但太贵了。K 型热电偶价格便宜,又能满足我的需求,下单。热电偶需要一个放大器,不过找了一圈参考设计好像对电路匹配要求都比较高,而且冷端补偿和校准我不会做。转向去找集成式热电偶 ADC,找到 MAX31855。这个芯片 20 元左右,有点小贵,但是内部集成了高精度仪表放大器、冷端温度补偿和 ADC,用起来很省事。

这个项目显示输出用 1602 似乎大材小用,LED 的话我有点担心电池续航。正好手里有两片上海正金 YE004 STN 公模四位半段码液晶屏样品,当年 5 元一片买的,可以拿来尝试一下。这个液晶屏是 1/3 占空比的,略奇葩……本来想用 HT16C21 来驱动液晶面板梦碎。那个时候我还不熟悉国内厂家的 LCD 单片机,顶着 25 一片的价格选了 STM32L433CBT6。这颗 STM32 有内置段码液晶控制器、内置液晶对比度控制,也支持 1/3 占空比,可以直接驱动 YE004。

下一步就是供电。液晶屏和低功耗单片机的选用保证了电池消耗不会很高。这里的的选项是内置小体积锂离子充电电池 vs 七号电池。我没有单节七号电池电池盒,但是我有一些项目剩余的小锂离子聚合物电池,体积比 CR2032 都要小。电池管理我用了一颗 TP4057 锂离子充电芯片和 TPS63000 升降压芯片。这片升降压芯片可以在电池电压范围在 2.4V(保护电路自动切断)~4.2V(充满电)的任何时刻输出稳定的 3.3V。这个设计比锂电池接 LP2980 LDO 可以更充分的给电池放电,电池续航几乎翻倍。STM32 单片机对于电源其实没那么大所谓,但是热电偶 ADC 对电源电压要求就很高了。既然用了充电电池需要充电口,STM32L433 单片机又有 USB 支持,充电口索性就把数据线也接上,几乎免费增加了一个 USB 通信功能。

整个 BOM 下来,这个设备成本都没有破百。相比于宜家的食品温度计,我自己做一个省了一半的钱,还多了一个 USB 支持。

二:电路设计

这个电路的设计基本可以说是中规中矩。充电芯片、升降压芯片、热电偶 ADC 直接照着数据手册里面的参考电路画。STM32L4 的 USB 有自带上拉电阻,不用外接。液晶面板的管脚对应到单片机执行的是就近原则,具体管脚和段码之间的对应关系,到驱动层去解决。另外,对于支持四线 JTAG 的 ARM 单片机,我一般尽量不用 SWD。SWD 虽然节约管脚,但不支持多芯片共用调试接口。这一点在这块板上虽然体现不出来,但在我曾设计过的另几款板上是实现了 ARM、FPGA、外设芯片等共用一个调试接口,相比于每一块芯片一个调试接口来说节省了不少空间。

电路中对电源开关的处理值得一提。按照 USB 充电的规范,受电设备需要完成 USB 枚举才能全负荷充电,也是为了偷懒,我在这里设计了强制开机充电。这个设计靠的是升降压芯片的 EN 管脚来实现的:如果开关打开,或者如果 USB 连接,EN 管脚的电压会高于 2V,电路会自动开机。

三:电路板设计

这个电路板的设计其实是有缺陷的:电源部分非常拥挤。

四:软件设计

我也算是延续一贯风格,不用 Keil,不用 STM32CubeMX 或固件库,用开源的原装 Eclipse IDE 和 GCC 编译环境来开发。不用固件库,一方面来说所有外设都需要自己编码操作寄存器,开发比较累;另一方面,又因为没有了库的负荷,程序的体积和执行时间可以大幅缩短。

MAX31855 有采样频率限制,因此我不能高频率访问之。同时这个芯片是只读 SPI,我只要给它时钟他就会自己传送数据,我就想到了一种办法:设置一个定时器,定时器中断频率决定访问 31855 的频率。同时设置一个 DMA,减少读取数据时 CPU 的干预程度。

static void spitemp_begin_capture(void)

{

GPIOA->BRR = 1UL << 4;

RCC->APB2RSTR &= ~RCC_APB2RSTR_SPI1RST;

RCC->APB2ENR |= RCC_APB2ENR_SPI1EN;

SPI1->CR1 =

SPI_CR1_CPHA |

SPI_CR1_MSTR |

(5 << SPI_CR1_BR_Pos) |

SPI_CR1_RXONLY;

SPI1->CR2 =

SPI_CR2_SSOE |

(7 << SPI_CR2_DS_Pos) |

SPI_CR2_FRXTH;

SPI1->CR2 |= SPI_CR2_RXDMAEN;

DMA1_Channel2->CMAR = (uint32_t)(&temp_buffer);

DMA1_Channel2->CNDTR = sizeof(temp_buffer);

DMA1_Channel2->CCR |= DMA_CCR_EN;

SPI1->CR1 |= SPI_CR1_SPE;

}

static void spitemp_end_capture(void)

{

DMA1_Channel2->CCR &= ~DMA_CCR_EN;

SPI1->CR1 &= ~SPI_CR1_SPE;

SPI1->CR2 &= ~SPI_CR2_RXDMAEN;

while (SPI1->SR & SPI_SR_FRLVL_Msk)

discard = SPI1->DR;

GPIOA->BSRR = 1UL << 4;

temp_reading =

(temp_buffer[0] << 24) |

(temp_buffer[1] << 16) |

(temp_buffer[2] << 8) |

(temp_buffer[3] << 0);

RCC->APB2RSTR |= RCC_APB2RSTR_SPI1RST;

}

spitemp_begin_capture 函数在时钟中断中执行。这个函数配置好 SPI 硬件和 DMA,启动一笔 4 字节的 DMA 读访问。31855 芯片的报文长 4 字节,因此这一笔 DMA 可以将 31855 的报文完全读回来。spitemp_end_capture 函数则是在 DMA 中断中执行,将读入的数据整理,并清理 SPI 和 DMA 硬件。我这里偷懒了,直接复位 SPI 控制器了事。理想情况下,应该是不用涉及到 RCC->APB2RSTR 的。

更多内容请移步21ic论坛查看。

看了上面这位网友的DIY作品,你是不是也跃跃欲试了!

快来参加二姨家的DIY活动吧!还有大奖等你拿!

秀出你的DIY,show me the freestyle

大家可以尽情发挥自己的脑洞,本次DIY分享活动不限主题,只要你想得到,只要你做得到,期待你的freestyle~~

活动时间:

即日起至3月31日

在论坛DIY讨论区以【21ic DIY秀】 标题的形式发帖。

具体要求请点击文末“了解更多”查看。

重点在这里呀!

活动奖励:

一等奖 2名 GP9家用投影仪

二等奖 5名 小米智能音箱

三等奖 10名 苏泊尔榨汁机

参与奖 5名 公牛插排

    推荐阅读
  • 苏州旅游攻略景点必去(苏州旅游必去景点有哪些)

    位于苏州市东北街一百七十八号,始建于明朝正德年间。虎丘是AAAAA级景区及全国文明单位,首批十佳文明风景旅游区示范点。中午,周庄最为欢闹,游人穿梭熙熙攘攘,船儿来回摇摇荡荡,各地的游客与热情的商铺融为一体,热闹非凡,安静的古镇着实多了些欢闹的气息。狮子林为苏州四大名园之一,位于苏州市市城东北园林路。

  • 买的玉米种子是瘪的(去年买的玉米种子剩了很多)

    去年买的陈玉米种子建议不要用针对去年的陈玉米种子,大多情况下不建议再次使用,会影响到玉米后期的生长和产量情况。陈年的因为保管的问题,可能会出现很多因素影响玉米的出苗率或者后期的生长。陈玉米种子隔了一年后再种植,种子自身水分含量降低,水分降低严重的情况下,影响播种的效率和玉米的后期生长,由于活性降低,即使能出芽,也不一定能出苗。

  • 173.2亿!国庆消费火爆 国庆消费市场

    今年国庆、重阳两节叠加,全省消费市场呈现平衡较快增长态势,服装、家电、汽车等商品消费亮点突出,大众餐饮、旅行休闲、文体娱乐等主要服务消费备受青睐。根据商务部业务统一平台生存必需品监测系统显示,国庆黄金周期间,全省生存必需品市场供应充沛,价格总体平衡。除了买买买,国庆还是婚庆、团圆、会友高峰,各地亲友聚餐、婚寿宴等大众化餐饮生意兴隆。

  • 吴承恩是怎么写出的西游记(吴承恩怎么写出的西游记)

    吴承恩怎么写出的西游记诸葛长青:吴承恩写西游记诸葛长青:吴承恩怎么写出的《西游记》西游记,广泛流传西游记,作者吴承恩西游记,包含了儒释道大智慧那么,吴承恩是怎么写出的《西游记》呢?诸葛长青把自己对吴承恩写《西游记》,研究成。

  • 李逵扮演者(大家一起来看看吧)

    我们一起去了解并探讨一下这个问题吧!李逵扮演者赵小锐的李逵应该算是很多人印象当中的经典所在了,他的李逵也是很粗犷,但是这种粗犷当中却带着细腻,也是因为这个角色,他开始受到了不少的观众的关注和喜爱。其实之前的他也有出演过一些电视剧的,但是可惜的是一直都没能够真正的红起来,是李逵这个角色,让他一夜成名爆火了。

  • 汽车空间大小怎么看轴距(什么因素会影响车内空间)

    大众速腾,长度4655mm,轴距2651mm。看外观就明白了,因为宝马320i是后驱车,发动机采用纵置布局;而大众速腾是前驱车,发动机采用横置布局。而且由于发动机纵置,后驱设计,对于车内空间侵占较为严重,所以宝马320的长轴距实际上对于空间的帮助是“虚高”的。前面我们就提到了,宝马3系采用了后驱,大众速腾采用了前驱。回到我们的主题,通常来说,麦弗逊与扭力梁对于车辆空间的侵占是最小的,而多连杆和双叉臂对于车辆空间侵占是要更大的。

  • 湖南省医保局2015年工作思路与安排 湖南省医疗保障局领导班子组成人员

    督促指导各统筹地区核实提高缴费基数,强化保险费足额征收。继续加强工伤认定参与,把好工伤入口关。认真核实、积极处理群众举报问题,始终保持高压态势。加强生育医疗服务管理,规范生育津贴发放。二是启动实施工伤保险信息系统改造升级,改进工伤职工异地就医联网结算,方便工伤职工救治。三是加强财务、业务数据清理,提高数据质量;通报全省“三险”基金运行分析,指导市州加强基金运行风险管控。

  • 民国最渣四大渣男(民国著名4大渣男)

    当时很多文人在接受自由恋爱的思想时,家中已经有了父母为之安排的妻子。郁达夫一生有过三位妻子,一位同居情人。郁达夫后来还是和王映霞离婚,1940年在新加坡认识了比他小20岁的播音员李莜英,两人很快就同居了。第二任妻子佐藤富子,是个日本女人,为了和郭沫若在一起,不仅改名为“郭安娜”,还和父母断绝了关系。1937年,郭沫若抛弃妻子回国,和女明星于立群同居,两人于2年后再重庆结婚。

  • 电脑怎么连打印机教程(教会你快速学会电脑如何连接打印机的安装使用方法)

    最近很多网友都在私信给小编,小编也无法一一回复,有些问题也无法简约介绍,所以只能在头条文章内与大家共享。

  • 爱吃鸡蛋的注意了这3种鸡蛋不能买(这些鸡蛋没你想的那么好)

    营养均衡的孩子没必要补这种元素;真正缺乏硒,靠富硒蛋补,根本起不了多大作用。这类蛋再好,也别给孩子吃那就是全生或半熟的蛋,比如溏心蛋。一般溏心蛋的加热时间短,不能完全杀死细菌,生蛋液根本没有处理细菌,对于抵抗力低、易感染的宝宝来说,非常容易被细菌感染。