完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
描述
使用 Arduino 的非接触式红外温度传感器 大家好,我想做我自己最准确的温度计。在高温测量方面,PT1000、PT100和K型热电偶可以成为解决方案。但问题是微控制器和传感器之间的电线又大又乱。这些电线不防水和耐热。模拟传感器不太准确,并且需要很长的加热和冷却时间。 因此,请牢记所有因素和要求。我决定使用 MLX90614 红外非接触式温度传感器。这种红外传感器可以通过接收从物体或物体表面发出的红外热量来测量外部体温。然后我们将把这个PCB项目中的项目转换为商用项目。PCBWAY是最好的PCB原型服务提供公司。如果您使用我的链接注册,您将获得免费优惠券和新人礼物。 MLX90614: MLX90614 温度传感器能够在不接触特定物体或表面的情况下测量其温度。传感器的工作原理是测量它所指向的物体发出的红外光量,它使用斯蒂芬-玻尔兹曼定律的原理,该定律指出,包括生物在内的所有物体都会根据物体的温度或物体的温度发射红外能量。存在。因此,通过测量发射的红外能量,我们可以计算出物体的温度。 特征: · 工作电压:3.6V 至 5V · 工作电流:1.5mA · 温度范围:-70°C 至 382.2°C · 精度:0.02°C · 包装:TO-39 · 测量温度时,请保持1厘米的测量距离 · 体积小,成本低 · 在很宽的温度范围内进行工厂校准:传感器温度为 -40 至 125 C,物体温度为 -70 至 380 C。 · 可定制的 PWM 输出,用于连续读取 红外线温度计的工作原理: 与可见光类似,也可以聚焦、反射或吸收红外光。红外温度计采用透镜将物体发出的红外光聚焦到称为热电堆的探测器上。 热电堆只不过是串联或并联的热电偶。当红外辐射落在热电堆表面时,它会被吸收并转化为热量。电压输出与入射红外能量成正比。检测器使用此输出来确定温度,并显示在屏幕上。 虽然整个过程听起来可能很复杂,但红外线温度计只需几秒钟即可记录温度并以您所需的单位显示。 发射率: 发射率显示温度计一次可以发出多少红外能量。发射率接近 1.00 的红外测温仪比发射率值较低的红外测温仪可以读取更多的材料。选择一个带有可调节发射率水平的温度计,以调整发射的红外能量并补偿材料反射的能量,以考虑温度测量。 所需组件: 1) MLX90614 温度传感器 2)阿杜诺乌诺 3) SH1306 奥莱德 4) 面包板或定制 PCB 5) 电线和焊接设备的 电路原理图: 在电路中,我们使用非常少的组件、打印读数的屏幕、MLX 传感器和 Arduino 作为该项目的大脑。Arduino 分别有 SDA 和 SCL 引脚 A4 和 A5。我们可以使用 I2C 协议将 Led 和传感器连接到 SDA(DATA PIN)和 SCL(CLOCK PIN)。I2C 最多可以支持 127 个设备,这里我们只有两个。所有电路均由 5 伏直流电供电。 PCB布局: 考虑到项目的大小,我设计了一个 PCB。在这里,我们使用 Arduino Nano 芯片和 type c 端口为整个系统供电。您还可以放置一个带 3.7 伏电池的升压转换器。从这里下载 PCB 文件、Gerber 和原理图。 PCBWAY 是电子爱好者和项目制造商(学生)的领先 PCB 制造公司。PCBWAY 提供 5 块原型 PCB 只需 5 美元,SMT 组装服务只需 12 美元。您可以查看更多、PCB、SMT 组装、模板和 3-D 打印零件。 将其添加到购物车 > 上传 Gerber 文件 > 结帐并在 7 天内收到您的包裹。 代码: #include #include #include #include #define SCREEN_WIDTH 128 // OLED 显示宽度,以像素为单位 #define SCREEN_HEIGHT 64 // OLED 显示高度,以像素为单位 #define OLED_RESET -1 // 重置引脚#(如果共享 Arduino 重置引脚,则为 -1) Adafruit_SSD1306 显示器(SCREEN_WIDTH、SCREEN_HEIGHT、&Wire、OLED_RESET); #定义激光 12 Adafruit_MLX90614 mlx = Adafruit_MLX90614(); 双 temp_amb; 双 temp_obj; 无效设置() { 序列号.开始(9600); mlx.开始();//初始化MLX90614 display.begin(SSD1306_SWITCHCAPVCC,0x3C);//使用 I2C 地址初始化 0x3C (128x64) Serial.println("温度传感器 MLX90614"); pinMode(激光,输出);// 连接激光 数字写入(激光,低); display.clearDisplay(); display.setCursor(25,15); display.setTextSize(1); display.setTextColor(白色); display.println("温度计"); display.setCursor(25,35); display.setTextSize(1); display.print("正在初始化"); 显示.显示(); 延迟(5000); } 无效循环() { //读取室温和物体温度 //为了读取华氏值,使用 //mlx.readAmbientTempF() , mlx.readObjectTempF() ) temp_amb = mlx.readAmbientTempC(); temp_obj = mlx.readObjectTempC(); 数字写入(激光,高); //串口监视器 Serial.print("室温 = "); Serial.println(temp_amb); Serial.print("对象温度 = "); Serial.println(temp_obj); display.clearDisplay(); display.setCursor(25,10); display.setTextSize(1); display.setTextColor(白色); display.println("温度"); display.setCursor(25,30); display.setTextSize(2); display.print(temp_obj); display.print((char)247); display.print("C"); 显示.显示(); 延迟(1000); } 设置发射率: 下载 MLX90614 库并从库的示例部分获取发射率设置代码。或者你可以复制下面给定的草图。只需更改值并使用您的读数进行测试。 发射率代码: /* * 1. 将 0x0000 写入地址 0x04(擦除 EEPROM 单元) * 2. 将新值写入地址 0x04 * 3. 读取地址 0x04 中的值,以检查是否存储了正确的值 * 4.重启模块 * */ #include //== 改变这个 ============ 双新发射率 = 0.95; //============================ Adafruit_MLX90614 mlx = Adafruit_MLX90614(); 无效设置(){ 序列号.开始(9600); 而(!串行); Serial.println("Adafruit MLX90614 发射率设置器。 "); // 初始化传感器 如果(!mlx.begin()){ Serial.println("连接到 MLX 传感器时出错。检查接线。"); 而(1); }; // 读取当前发射率 Serial.print("当前发射率 = "); Serial.println(mlx.readEmissivity()); // 设置新的发射率 Serial.print("设置发射率 = "); Serial.println(new_emissivity); mlx.writeEmissivity(new_emissivity); // 这会执行 0x0000 擦除写入 // 回过头再读 Serial.print("新发射率 = "); Serial.println(mlx.readEmissivity()); // 完毕 Serial.print("完成。重启模块。"); } 无效循环(){ } 测量: 正如我所说,这是测量外体温度的最佳和最快的温度计。它适用于所有库并且完全准确。 我还将摄氏度读数与我的实时温度监测 DHT 和 NTC 相匹配。这次用 LED 显示屏给出了最好的结果。再次非常感谢 PCBWAY 赞助这个项目。使用此链接注册并获得奖励积分和优惠券。
|
|
【高手问答】电路的功能是为了0.6v到40v之间调压,运放发热严重
2267 浏览 8 评论
USB3.0 工业相机的传输速率是否受到电脑主板某些硬件的限制?
1008 浏览 0 评论
2206 浏览 1 评论
1254 浏览 0 评论
2746 浏览 0 评论
浏览过的版块 |
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-18 10:04 , Processed in 0.541958 second(s), Total 40, Slave 29 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号