版主: wanchong , wangyu , eepwwp , firedom |
a6251356
最后登陆时间:2015-10-30 11:06:06 |
作品中使用到的低压温度传感器(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 |