温度传感器调试(HDC1080,TMP275)

您所在的位置:网站首页 松导温度传感器如何 温度传感器调试(HDC1080,TMP275)

温度传感器调试(HDC1080,TMP275)

2024-07-18 03:50:23| 来源: 网络整理| 查看: 265

我们需要对100°C高温的金属进行温度测量。选择的传感器芯片是 HDC1080 和 TMP275。 HDC1080可以同时采集温湿度信息,但他主要是湿度传感器,老板说不用这个。于是最后我选择了单独的温度传感器 TMP275。

整个调试过程太辛苦了,在网上没能找到驱动代码,于是只能自己写。幸运的是,这个传感器芯片的驱动程序编写起来还算简单,最终成功的显示出了温度数值。内附 TMP275 I2C 驱动代码。

文章目录 1. 设计1.1 选择温度传感器芯片1.2 绘制驱动电路板 2. 调试2.1 STM32 工程文件建立2.2 TMP275 驱动思路2.3 TMP275 核心驱动代码2.4 TMP275 温度显示实验

1. 设计 1.1 选择温度传感器芯片

我在 TI公司官网 选择的数字温度传感器。本来想选择官网推荐的 TMP117,但是国内在线商城没卖的。于是,只能在在线商城(嘉立创商城)选择差不多的 现货温度传感器 ,最后选择了 TMP275. 在这里插入图片描述

1.2 绘制驱动电路板

参考 TMP275 的数据手册,获得驱动电路图。驱动电路图采用了 3 个 5KΩ 电阻和 1 个 0.01uF 电容。之后绘制 PCB 原理图和板子即可。 在这里插入图片描述 在这里插入图片描述

2. 调试 2.1 STM32 工程文件建立

找一个 STM32 的工程模板,确保里面涵盖了 I2C 的驱动程序即可。 在这里插入图片描述

2.2 TMP275 驱动思路

由于网上找不到驱动文件,或者要么就是要积分,要出钱的。被逼无奈,只能自己看 TMP275 的数据手册自己编写驱动程序。参考 数据手册 得到的驱动编写思路如下:

初始化 I2C 接口配置 TM275 的 ConfigRegister 为 0x60配置 TM275 的 UpperLimit(温度上限寄存器)为 0x7FF0配置 TM275 的 LowerLimit(温度下限寄存器)为 0xC900读取 TM275 的 TempRegister 获取原始温度(16位值)温度换算 2.3 TMP275 核心驱动代码

不开源,对不起自己找不到驱动代码的心痛!

TMP275.c 如下:

#include "tmp275.h" #include "sys.h" #include "i2c.h" void TMP275_Init(void){ I2C_InitTypeDef I2C_InitStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C2, ENABLE); GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = TMP275_SCL | TMP275_SDA; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_OD; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(TMP275_PORT, &GPIO_InitStructure); I2C_InitStructure.I2C_Mode = I2C_Mode_I2C; I2C_InitStructure.I2C_DutyCycle = I2C_DutyCycle_2; I2C_InitStructure.I2C_OwnAddress1 = TMP275_HostAddress; I2C_InitStructure.I2C_Ack = I2C_Ack_Enable; I2C_InitStructure.I2C_AcknowledgedAddress = I2C_AcknowledgedAddress_7bit; I2C_InitStructure.I2C_ClockSpeed = TMP275_BusSpeed; I2C_Init(I2C2,&I2C_InitStructure); I2C_Cmd(I2C2,ENABLE); TMP275_Config(); } void TMP275_Config(void) { uint8_t buf[1]; buf[0] = 0x60; // R1:1 R2:1 --> 12 Bits (0.0625°C) 220ms I2C2_SAND_BYTE(TMP275_WriteAddress,TMP275_ConfigRegister,buf[0]); uint8_t buf_UpperLimit[2]; buf_UpperLimit[0] = 0x7F; //128°C --> 0111 1111 1111 0000 buf_UpperLimit[1] = 0xF0; I2C2_SAND_BUFFER(TMP275_WriteAddress,TMP275_UpperLimit,buf_UpperLimit,2); uint8_t buf_LowerLimit[2]; buf_LowerLimit[0] = 0xC9; //-55°C --> 1100 1001 0000 0000 buf_LowerLimit[1] = 0x00; I2C2_SAND_BUFFER(TMP275_WriteAddress,TMP275_LowerLimit,buf_LowerLimit,2); } float TMP275_ReadTemp(void) { float Temp; float Fraction; uint8_t tmp; uint8_t buf[2]; I2C2_READ_BUFFER(TMP275_ReadAddress,TMP275_TempRegister,buf,2); Temp = buf[0]; //参考:https://blog.csdn.net/zhangA/article/details/104137265?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164144519616781685371726%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=164144519616781685371726&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-7-104137265.nonecase&utm_term=%E6%B8%A9%E5%BA%A6%E6%8D%A2%E7%AE%97%E5%85%AC%E5%BC%8F&spm=1018.2226.3001.4450 tmp = buf[1] >> 4; Fraction = tmp & 0x0F; Fraction = Fraction * 0.0625; //精度:0.5 0.25 0.125 0.0625 Temp = Temp + Fraction; return Temp; }

TMP275.h 如下:

#ifndef _TMP275_H #define _TMP275_H #include "sys.h" #define TMP275_PORT GPIOB // #define TMP275_SCL GPIO_Pin_10 // #define TMP275_SDA GPIO_Pin_11 // #define TMP275_HostAddress 0xd0 //0xc0 -> 0xd0. define which you like. #define TMP275_BusSpeed 100000 // // get data address #define TMP275_TempRegister 0x00 #define TMP275_ConfigRegister 0x01 #define TMP275_UpperLimit 0x02 #define TMP275_LowerLimit 0x03 #define TMP275_WriteAddress 0x90 #define TMP275_ReadAddress 0x91 //A0 A1 A2 all connect to GND(0) void TMP275_Init(void); void TMP275_Config(void); float TMP275_ReadTemp(void); #endif 2.4 TMP275 温度显示实验

用 OLED 进行温度显示,效果还不错。但是由于芯片内部需要进行14bit的数据转换,数据手册上说至少需要220ms的时间,于是算上延时的时间,温度数据的更新相对较慢。最终显示效果如下: 我的大拇指温度在 31.625 度。

在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


    图片新闻

    实验室药品柜的特性有哪些
    实验室药品柜是实验室家具的重要组成部分之一,主要
    小学科学实验中有哪些教学
    计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
    实验室各种仪器原理动图讲
    1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
    高中化学常见仪器及实验装
    1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
    微生物操作主要设备和器具
    今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
    浅谈通风柜使用基本常识
     众所周知,通风柜功能中最主要的就是排气功能。在

    专题文章

      CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭