廉价的:USB热电偶温度计/温控器
novakon2013/08/24电子技术 IP:广东
DSC_5130.jpg

先讲讲热电偶的测温原理。热电偶测量温度的一端(也就是那根金属棒子所在)叫做热端,导线接出的一端叫做冷端。热端引出两条导线通向冷端。当两端温度不等时,两条导线之间会产生一个电压差,这个电压差和两端的温度差近似地成正比。比如上图所看到的是K型热电偶,K型热电偶可测量超过摄氏1000度的高温,用来熬KNDX(130度)那是相当够用的。其电压差和温差的关系大约是41微伏每摄氏度。

41微伏每摄氏度怎么理解呢?比如,某一时刻测得两条线之间的电压差是410微伏(0.41毫伏,或者0.00041伏),代表温度差是10度。冷端的温度是室温28度,则可知热端温度是38度。但是,怎样才能在充满电磁干扰的环境中精确地测量如此微弱的电压呢?怎样精确的测量冷端温度?

解决方案是一片叫做MAX6675的IC(由猴子同学提供样片,科创人民感谢你)。片子内部解决了差分信号放大和冷端温度测量的问题,只要将热电偶连上去,接通电源,另一边接上单片机,就可以直读温度了。12bit数据,从0度到1023.75度以0.25度步进,精度为1度。

QQ截图20130824013322.png

从6675读取数据的方式非常简单,有arduino基础的同学直接看pdf就知道了。我花30分钟完成了焊接与stm8程序的编写,把从6675得到的数据用单片机串口发出,再通过一条USB转串口线将数据传回电脑。

介绍一下全套装备:最常用的K型热电偶各种价位都有,普遍十几元一条,当然也有很便宜的。MAX6675比较贵,淘宝最低也要20大洋。USB串口线和单片机,加起来成本十多元。

下面是全套装备工作中的照片(由猴子同学拍摄),数值的单位是百分之一度。屏幕上的2975,就是室温29.75度(也许没那么热,考虑到1度左右的误差)

20130821_171428.jpg
attachment icon max6675.pdf 405.18KB PDF 82次下载 预览
+10  科创币    发热门诊    2013/08/30 高质量发帖
+25  科创币    四次    2013/09/23 尝试用STC +max6675制作中,望指导
来自:电子信息 / 电子技术
5
已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也
novakon 作者
11年5个月前 IP:未同步
563200
stmduino代码,供参考。
该段代码实际上模仿了spi时序(具体搞法,请看max6675的pdf)。也可直接用单片机的spi功能从6675获得数据(对于arduino用户来说,这意味着需要引用一些库)。

//max6675.c
#include <stmduino.h>

void read6675()
{
  uint result=0;
  pinlow(A1);//ask for converted data
  pinlow(A2);
  for(uchar i=0;i<16;i++)
  {
    pinhigh(A2);
    
    result <<= 1; //right shift all bits
    if(pinread(A3))//if this bit is 1
    {
      result |= 0x0001;//set LSB of result to 1
    }
    else
    {
      //do nothing
    }
    pinlow(A2);
  }
  pinhigh(A1);//end
  result>>=3;//skip the useless bits
  result*=25;//output unit: 1/100 degree
  
  printf("%u",result);
  endl();
}

uint cnt=0;
void t4()
{
  cnt++;
  if(cnt==200) //every 200ms
  {
    cnt=0;
    read6675();
  }
}

void main()
{
  clock(4M);
  
  pinmode(A1,OUTPUT); //CS
  pinhigh(A1);
  pinmode(A2,OUTPUT); //sck
  pinlow(A2);
  pinmode(A3,INPUTFL); //SO
  
  attach(t4,timer4);
  timer4clock(16,249);//1ms interrupt
  
  serial(115200);
  
  interrupts();
  while(1)
  {
    sleep();
  }
}
+100
科创币
sukeytang
2013-08-24
能够说说怎样利用arduino的库来写此类芯片的驱动就更好了。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
BG8KIH
11年5个月前 IP:未同步
563815
据说MAX6675的输出精度受环境温度的影响比较大。
+10
科创币
虎哥
2013-08-27
支持分享经验。希望下次将据说变成“经试验”。欢迎多发arduino话题。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
justinpiggy
11年5个月前 IP:未同步
563862
我用MAX31855。。。。。。
attachment icon MAX31855_CN.pdf 1.36MB PDF 58次下载 预览
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
novakon作者
11年5个月前 IP:未同步
566095
回 3楼(justinpiggy) 的帖子
请问是在哪里买的,多少钱?淘宝搜了一次,价格惨不忍睹啊。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
justinpiggy
11年5个月前 IP:未同步
566245
回 4楼(novakon) 的帖子
MAXIM样片。。。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

所属专业
所属分类
上级专业
同级专业
novakon
学者 机友 笔友
文章
1256
回复
8386
学术分
16
2008/03/29注册,2年11个月前活动

已走,勿送

主体类型:个人
所属领域:无
认证方式:手机号
IP归属地:未同步
插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
收藏
取消收藏
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
管理提醒
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}