版主: wanchong , wangyu , eepwwp , firedom

分享到:
共1条 1/1 1   

简单几步用Intel Edsion控制低压温度传感器打造热量表

    [您是本帖的第1370位阅读者]
a6251356
我是MM
普通会员

最后登陆时间:2015-10-30 11:06:06

直达楼层
1# 发表于 2015-07-22 23:24:36

作品中使用到的低压温度传感器(TMP36)额定温度范围是-40 °C至+125 °C,但是上图只显示+40 °C至+100 °C。

这是为什么呢?

这是因为笔者只需要测量这个范围的温度,代码就是量身定做,只显示这个温度范围。

现在就让我们开始动作制作吧。

第一步:组装

组装部分比较简单。判断仪表线的正负极,笔者的仪表线是黑色和绿色,我们只需要将仪表线连接到5V电源上,从指针的转动方向即可判断仪表线的正负。

将仪表的正极接到开发板的9号针脚,负极接入GND针脚。

然后就是连接TMP36(低压温度传感器)。您可以从数据表里了解更多信息。

我们需要连接的是地线(GND)、“数据线”(data)和电源线(Vcc)引脚。

将GND连接开发板的GND针脚,“data”连接A0针脚,Vcc连接开发板的5V电源。

连接完成后,我们开始编程。

第二步:编译

开始之前,您需要知道Trisco仪表的工作原理,这里的测试代码可以帮您更好的了解仪表,请放心使用代码,测量结果不会超出仪表的最大工作范围。

搞清楚仪表的工作原理后,我们就可以开始编写主代码了。或许你的测量范围和我的会有所不同,不过这都没有关系。

首先是全局变量:

// www.instructables.com/member/mkarvonen//code by Miska Karvonen.//mizka90@hotmail.com

//TMP36 Pin analog inputint temperaturePin = 0;

  int meter = 9;          int level = 0;   int meterMovement = 5;

然后创建函数:

void setup(){  Serial.begin(9600);    pinMode(meter, OUTPUT);

 }

接着就是主程序了。您可以看到下面的代码里有很多if语句,这些语句里面包含的所有信息可以使仪表显示当前测量的温度。所以尽可能多的使用if语句,从而保证测量结果的准确性。

void loop()                     { float temperature = getVoltage(temperaturePin);   temperature = (temperature - .6) * 100;      

  Serial.println(temperature);    

if (temperature <40) {    analogWrite(meter, level);     level = 0;

}

if (temperature >45){analogWrite(meter, level);   level = level + meterMovement;level = 40;meterMovement = -meterMovement;delay(10);}  

if (temperature >50){analogWrite(meter, level);   level = level + meterMovement;level = 50;meterMovement = -meterMovement;delay(10);}

if (temperature >55){analogWrite(meter, level);   level = level + meterMovement;level = 60;meterMovement = -meterMovement;delay(10);}

if (temperature >60){analogWrite(meter, level);   level = level + meterMovement;level = 70;meterMovement = -meterMovement;delay(10);}

if (temperature >65){analogWrite(meter, level);   level = level + meterMovement;level = 100;meterMovement = -meterMovement;delay(10);

if (temperature >70){analogWrite(meter, level);   level = level + meterMovement;level = 130;meterMovement = -meterMovement;delay(10);}

if (temperature >75){analogWrite(meter, level);   level = level + meterMovement;level = 150;meterMovement = -meterMovement;delay(10);}

if (temperature >80){analogWrite(meter, level);   level = level + meterMovement;level = 180;meterMovement = -meterMovement;delay(10);}

if (temperature >85){analogWrite(meter, level);   level = level + meterMovement;level = 210;meterMovement = -meterMovement;delay(10);}if (temperature >90){analogWrite(meter, level);   level = level + meterMovement;level = 235;meterMovement = -meterMovement;delay(10);}

if (temperature >95){analogWrite(meter, level);   level = level + meterMovement;level = 250;meterMovement = -meterMovement;delay(10);}if (temperature <120){analogWrite(meter, level);   level = level + meterMovement;level = 255;meterMovement = -meterMovement;delay(10);}  }   delay(100);

}

// for the TMP36float getVoltage(int pin){ return (analogRead(pin) * .004882814);

 }

第三步:低压温度传感器(TMP36)

焊接好TMP36.

然后用热熔胶将焊接点粘好。

第四步:制作一个简易的外壳

这个外壳就是开发板的包装盒。

为什么是它?

因为就地取材,使用简单,而且它可以完美的装下我们的开发板。

在包装盒上挖一个洞,方便USB数据线,低压温度传感器和仪表线穿过包装盒。

将Edison放进盒子,接好所有的线,并将USB数据线接入Edison。

将盒子的盖子盖好,仪表放在盒子上方,启动Edsion。

第五步:热量表的使用领域

作品做好了不知道用它做什么?

不要着急,我先抛砖引玉,展示几个例子,第一张图片是我的笔记本电脑在高负荷工作后,电脑排出热气的温度。

第二个例子中,我测量了热熔枪的温度。

仪表的工作性能很好,如果您觉得+40 °C至+100 °C不够用,您可以根据自己的需要调整温度测量范围。快拿着您的热量表探索这个美好的世界吧。


共1条 1/1 1   
快速回复主题
  • 匿名不能发帖!请先 [ 登陆 注册 ]