19595| 9
|
[3D+Arduino课程(中学生)] 3D+Arduino课程(面向中学生)——”非接触式红外温度计“ |
本帖最后由 hnyzcj 于 2016-9-11 21:29 编辑 温度测量通常可分为接触式和非接触式,接触式测温只能测量被测物体与测温传感器达到热平衡后的温度,所以响应时间长,且极易受环境温度的影响;而红外测温是根据被测物体的红外辐射能量来确定物体的温度,不与被测物体接触,不影响被测物体温度场,并且温度分辨率高、响应速度快、稳定性好等特点。近年来,非接触红外测温在医疗,环境监测、家庭自动化、汽车电子、航空和军事上得到越来越广泛的应用。这里我就来DIY一款非接触式温度计。 作品展示: 作品器材: DFRduino Nano 3.0(兼容Arduino Nano:(1块) Nano I/O Shield For Arduino Nano:(1块) 拨动开关2档3脚 SS-12F15G5(1块) I2C LCD1602液晶模块(1块) 非接触式红外温度传感器(1块) 7.4V 2500MA 锂电池 (1块) 7.4V锂电池充电器 杜邦线若干 3D打印机(Overlord pro) 灰色PLA、白色PLA 电路连接: 1. 将DFRduino Nano 3.0按对应针脚叠加在Nano I/O Shield For Arduino Nano拓展板上。 2. LCD1602液晶模块四根线分别对应插在Nano I/O Shield For Arduino Nano拓展板上I2C接口上,同理非接触式红外温度传感器接法与之相同。 3. 锂电池正极线剪开,分别连在拨动开关两根引脚上,如下图所示,并与Nano I/O Shield For Arduino Nano拓展板相连。 代码编写: 本次程序使用了两个库,请下载后,更新库后使用。 #include <Wire.h> #include <IR_Thermometer_Sensor_MLX90614.h> #include <LiquidCrystal_I2C.h> IR_Thermometer_Sensor_MLX90614 MLX90614 = IR_Thermometer_Sensor_MLX90614(); LiquidCrystal_I2C lcd(0x20,16,2); void setup() { Serial.begin(9600); MLX90614.begin(); lcd.init(); lcd.backlight(); lcd.home(); lcd.print("Hello world..."); lcd.setCursor(0, 1); lcd.print("dfrobot.com"); } void loop() { lcd.clear(); lcd.print("tempture:"); lcd.print(MLX90614.GetObjectTemp_Celsius()); Serial.print("Object = "); Serial.print(MLX90614.GetObjectTemp_Celsius()); Serial.println(" *C"); Serial.println(); delay(1000); } 结构建模: 模型打印: 测量方法 本作品使用红外测温模块,需要先引入一个概念——“视场 (FOV)”。 视场是由温差电堆接收到50%的辐射信号来确定的,并且和传感器的主轴线相关。如下图所示。标明视场角(FOV)大小。测量得到的温度其实是视场内被测物体的温度加权平均值,只有在被测物体完全覆盖红外传感器的FOV视场才能保证精度。所以在实际应用中必须保证测温点终端与被测母线之间的距离满足要求才能保障测温的精度要求,本模块的视场为35°FOV,tan35°=被测物体半径÷红外传感器与被测物体之间的距离,例:被测物体的半径为5cm,这测量距离为7cm(在此范围内测试的温度最准确)。下图为此传感器的FOV图: . *原创项目,未经允许谢绝转载! |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed