总结——调试STM32F103ZET6及外围传感器_电路图设计问题+SHT10温湿度传感器http://blog.csdn.net/gsh_hello_world/article/details/53048446

1.电路图设计问题

(1)2016-11-02:SHT10温湿度传感器的DATA引脚未接10K上拉电阻到VCC3.3,造成数据读不出。

(2)2016-11-02:电路图中的USB转USART模块中CH340G芯片的2脚为TXD,应该接STM32F103ZET6的US1_RX,3脚为RXD,应该接STM32F103ZET6的US1_TX,原电路图中正好画反了。

(3)2016-11-13:P5的6脚和P5的7脚接反了,实际板子上6脚->US2_TX  7脚->US2_RX

(4)2016-11-06:添加RTC_Init()函数,RTC初始化,必须初始化RTC外部32.678K晶振才能起震工作;此电路板32.678K晶振并联的电阻为10M才正常起震。

(5)示波器看传感器时序时有两种方法:1.看某个固定的函数时序时可以采用程序中写while(1)的方式;2.看整个时序时可以采用示波器上的trigger功能,调整触发值为3.3V以下,然后触发方式为单次,点击RUN后便停在有波形的位置。

(6)学习到AutoFlowchart和Source Insight 3的使用,可以更直观的查阅代码和跟踪代码。

开发代码地址

2.SHT10温湿度传感器

以下为SHT10的参考资料:STM32 SHT10温湿度传感器的信号采集  SHT20技术手册

首先讲讲SHT10这款温室度传感器。SHT1x(包括SHT10,SHT11和SHT15)属于Sersirion温湿度传感器家族中的贴片封装系列。更之前我讲过的DHT11这款温湿度传感器相比,体积小了许多,特别适合用于产品中。SHT10温湿度传感器包括一个电容性聚合体测湿敏感元件、一个用能隙材料制成的测温元件(文绉绉的),传感器内部有一个精度高达14为位的A/D转换器,适应串行接口电路实现无缝连接。该产品具有品质卓越、响应速度速度快,抗干扰能力强、性价比高等优点。
     1、接口定义:
  SHT10的接口定义如下图所示:
                                                             
           如上图所示,1脚为GND,4脚为VDD。它的供电电压范围为2.4~5.5V,建议的电压为3.3V,在电源引脚(VDD、GND)之间必须加上一个0.1uf的电容,应于去耦滤波用。它的2脚DATA为数据引脚,3脚SCK为时钟控制引脚,没有发现这两个引脚很像IIC所使用的引脚功能?没错,这个传感器确实可以认为是IIC接口,但是又有却别。该传感器不能按照IIC的协议编址,但是,如果IIC总线上没有挂接别的元件,传感器可以直接连到IIC总线上,但是单片机必须按照传感器的协议工作。传感器与单片机的接线如下图所示:
                                    

2、传感器的通讯
      
     2.1、“启动传输”时序
用一组“启动传输”时序来完成数据传输的初始化。它包括:当SCK时钟高电平时DATA翻转为低电平,紧接着SCK变成低电平,随后是在SCK时钟高电平,随后是在SCK时钟高电平DATA翻转位高电平。时序如下:

2.2、复位时序
如果与SHT1x 通讯中断,可通过下列信号时序复位:当DATA 保持高电平时,触发SCK 时钟9 次或更多。时序图如下:
                    
    2.3、命令集
传感器的命令包含三个地址位(目前只支持000,这就是他只能挂接在空闲的IIC总线上的原因)和五个命令位。。SHT1x 会以下述方式表示已正确地接收到指令:在第8 个SCK 时钟的下降沿之后,将DATA 下拉为低电平(ACK 位)。在第9 个SCK 时钟的下降沿之后,释放DATA(恢复高电平)。命令集如下:
                            

2.4、温湿度测量
发布一组测量命令(‘00000101’表示相对湿度RH,‘00000011’表示温度T)后,控制器要等待测量结束。这个过程需要大约20/80/320ms,分别对应8/12/14bit 测量。确切的时间随内部晶振速度,最多可能有-30%的变化。。SHT1x 通过下拉DATA 至低电平并进入空闲模式,表示测量的结束。控制器在再次触发SCK 时钟前,必须等待这个“数据备妥”信号来读出数据。检测数据可以先被存储,这样控制器可以继续执行其它任务在需要时再读出数据。
在收到CRC 的确认位之后,表明通讯结束。如果不使用CRC-8 校验,控制器可以在测量值LSB 后,通过保持ACK高电平终止通讯。在测量和通讯完成后,SHT1x 自动转入休眠模式。

2.5、状态寄存器
SHT1x 的某些高级功能可以通过给状态寄存器发送指令来实现,如选择测量分辨率,电量不足提醒,使用 OTP 加载或启动加热功能等。状态寄存器度、写如下:

状态寄存器写
状态寄存器读

状态寄存器的具体描述如下表所示:

测量分辨率:默认分辨率 14bit (温度) 和 12bit (湿度) 可以被降低为 12 和 8bit. 尤其适用于要求测量速度极高或者功耗极低的应用。
电量不足检测功能:在电压不足 2.47V 发出警告。精度为±0.05 V。
加热:可通过向状态寄存器内写入命令启动传感器内部加热器.。加热器可以使传感器的温度高于周围环境 5 – 10°C12 。功耗大约为 8mA @ 5V 。
OPT加载:开启此功能,标定数据将在每次测量前被上传到寄存器。如果不开启此功能,可减少大约 10ms的测量时间。
上面的寄存器如果没有什么特殊要求或应用于特定的场合,则无需配置,选择默认就可以了。

2.6、通讯过程
传感器的通讯过程为:发送”启动传输“时序,初始化传感器——>发送命令——>等待传感器应答,及测量结束——>接收传感器的16位数据值——>接收8为的CRC校验数据——>休眠,等待下一次传输开始。
传输的过程的测量时序可以由下图示意:

上图中 TS = 传输开始, MSB = 高有效字节,LSB =低有效字节, LSb = 低有效位。
下面举个实际测量时的相对湿度测量时序例子。时序如下:

这张图可以知道:我们接收到的数据数值为”0000 0100 0011 0001“ = 1073 = 35.50% RH (位含温度补偿),至于怎么计算的,请接着往下看。

2.7、信号转化   
       2.7.1 温度的转化
设T 2 1 SOt为从传感器上读出来的测量数值,我们需要用下面的公式将测量数值转换成整整的温度值。
T = d1 + d2 * SOt  (其中d1,d2的值根据实际情况选择,选项如下)

2.7.2 湿度的转换 
湿度的转换公式如下: 。其中湿度的转化参数如下选择:根据采样的精度不同而不同。

99%以上的湿度已经接近饱和必须经过处理显示100%RH13.请注意 湿度传感器对电压无依赖性。测量值与相对湿度的转化如下图所示:

相对湿度根据上面的参数与公式算出来之后,还需要考虑当前环境温度而进行适当的补偿。补偿的公式及其参数选择如下:

2.7.3、露点的计算
露点的定义:露点温度指空气在此温度下能保持最多的水汽,当温度冷却到露点,空气变得饱和,就会出现雾、露或霜。
SHT1x 并不直接进行露点测量,,但露点可以通过温度和湿度读数计算得到.。由于温度和湿度在同一块集成电路上测量,SHT1x 可测量露点。 一块集成电路上测量,SHT1x 可测量露点。 下面直接给出结论性的露点计算公式了。
LogEW=(0.66077+7.5*T/(237.3+T)+(log10(RH)-2)         
露点:Dp=((0.66077-logEW)*237.3/(logEW-8.16077)         
例如:RH=10% T=25C  ->EW=23.7465->露点=-8.69℃
  RH=90% T=50C  ->EW=92.4753->露点=47.89℃

总结——调试STM32F103ZET6及外围传感器_电路图设计问题+SHT10温湿度传感器相关推荐

  1. 树莓派dht11上云_树莓派使用 DHT11 / DHT22 温湿度传感器

    接线说明 从左到右 3.3V-6V 电源 GPIO接口 NO Connected 接地 依赖库 为了简化工作,我们基于Adafruit_Python_DHT的Python库进行实验 Clone下这个依 ...

  2. arduino 土壤温湿度传感器_怎样将Arduino与土壤湿度传感器FC-28连接起来

    步骤1:在模拟模式下连接传感器 模拟模式 - 连接土壤湿度传感器和Arduino 要在模拟模式下连接传感器,我们需要使用传感器的模拟输出.从土壤湿度传感器FC-28获取模拟输出时,传感器给出的值为0- ...

  3. iolink单片机_基于IO-Link接口的温湿度传感器设计

    基于 IO-Link 接口的温湿度传感器设计 石 磊 1,2, 孙凯明 1,2, 王 刚 2 [摘 要] 摘 要 : 简述具有能与 IO-Link 主机通讯的 IO-Link 接口的温度和湿度 传感器 ...

  4. 传感器自学笔记第八章——DHT11温湿度传感器(附带自己写的很好用的51单片机DHT11代码模板,参数列表只有一个字符数组指针)

    作者:GWD 时间:2019.06.26 DHT11温湿度传感器(单总线类) 一. 学习要点: 1.(重要)单总线类传感器检测高电平while(DHT11 == 1) temp |=0x01;出错,因 ...

  5. arduino红外热释电传感器_【Arduino】108种传感器系列实验(17)-热释电传感器模块-Arduino中文社区 - Powered by Discuz!...

    本帖最后由 eagler8 于 2019-8-24 22:13 编辑 37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器 ...

  6. python如何控制传感器_在Python中单行写入传感器数据

    我正在尝试使用Python将来自2个传感器节点的数据写入CSV文件.在AT模式下,通过Xbee Series 1进行通信,2个传感器节点上的Xbee终端设备将数据传递给连接到我的计算机的Xbee协调器 ...

  7. 时间序列 传感器_时间序列数据库如何帮助理解传感器

    时间序列 传感器 基础架构环境的需求和需求每年都在变化,并且系统变得越来越复杂和复杂. 但是,如果我们不了解基础架构以及环境中发生的一切,那么所有这些增长都是毫无意义的. 这是监视工具和软件出现的地方 ...

  8. 高通SDM450 Android9上调试RS485接口温湿度传感器调试介绍

    高通SDM450 Android9上调试RS485接口温湿度传感器调试介绍 1.初步确认硬件电路工作正常 2.确认主控端串口可以正常工作 3.调试主控串口经过RS485连接电脑可以正常收发 4.单独调 ...

  9. 小米登录协议分析_小米温湿度传感器协议分析

    博主喜欢玩智能家居的东西,智能家居确实能给家里带了不少的方便. 天气热了,博主想做一个:当屋子有人,并温度高于33度时,开空调.博主已有了一套自家的智能家居系统,有网关.人体红外传感器.红外转发器,就 ...

最新文章

  1. 05定制后台和修改模型
  2. 定档12月22日!《黑客帝国4》王者归来,再掀矩阵革命
  3. 《父亲家书》选:父亲的忙碌和欣喜
  4. 《构建之法》第三周阅读笔记
  5. 使用libsvm实现归一化
  6. QTableWidget去掉默认行号
  7. Jackson相关的一些注解
  8. Python静态类型解析工具简介和实践
  9. elasticsearch备份与恢复4_使用ES-Hadoop将ES中的索引数据写入HDFS中
  10. C#获取%AppData%路径的方法
  11. 来到深圳奋斗的这些年(不断更新!)
  12. 分布式NoSQL数据库的Spring整合实践
  13. 迭代重心法 matlab,重心法
  14. 机械革命Z2air实现 Wake On Lan 远程开机
  15. 给div添加蒙版(遮罩?)
  16. 秦岚微博之夜喜提热搜第一 优雅公主裙演绎真人版辛德瑞拉
  17. 量子计算机 儿童画,星汉璀璨只见你
  18. Android 更换壁纸 代码
  19. 蓝牙耳机什么牌子好_盘点千元内最好的蓝牙耳机
  20. pytorch程序调通

热门文章

  1. bzoj 1502月下柠檬树 Simpson积分
  2. 新神魔大陆服务器现在在维护吗,新神魔大陆4月23日合服维护详情介绍-4月23日更新公告...
  3. 【BZOJ】2160拉拉队排练-回文自动机
  4. 【IDE】Android Studio 工具栏完全自定义教程
  5. 3287亿!我用20行Python代码预测双十一成交额,猜中送红包哦
  6. 计算机进去是黑屏,电脑开机黑屏怎么办 黑屏无法进入系统的解决方法
  7. 《开心农场》成功背后
  8. Django REST framework 理解
  9. UFS3.0协议学习Note(一)-什么是UFS
  10. 基于Excel的母婴电商产品分析报告