发作品签到
专业版

#第九届立创电赛#SHT40_8167989A

工程标签

192
0
0
0

简介

2024暑假班“电路设计手把手教你学”线上训练营

简介:2024暑假班“电路设计手把手教你学”线上训练营

开源协议

Public Domain

创建时间:2024-07-05 11:34:10更新时间:2024-08-05 05:45:21

描述

目录

一、总体方案设计 1

二、硬件电路设计 1

(一)主控及晶振电路 1

(二)传感器模块 2

(三)测试LED 5

(四)74HC595 5

(五)唤醒按键 5

(六)数码管 6

(七)电源系统 6

(八)SWD下载调试接口 6

三、软件设计 7

(1)总体设计 7

(2)数码管模块 7

(3)定时器模块 9

(4)传感器模块 10

四、电路制作与调试 12

(1)电路制作 12

(二)代码编写 13

(3)PCB焊接 14

(四)程序烧录 15

(五)故障排除 16

(六)项目成品 16

附录 17

(一)项目原理图 17

(二)项目PCB图 18

一、总体方案设计

本设计目的是实现便捷与直观的获取当前环境的温度与湿度,整个系统采用一枚STM32G030K6T6作为主控芯片,该芯片使用Arm Cortex-M0+内核,最大主频64Mhz,具有32KB的Flash以及8K的SRAM,供电电压在2.0V~3.6V之间。使用I2C协议与SHT40传感器进行通信,读取温度与湿度;通过主控芯片进行数据处理后将数据发送至3个74HC595驱动两个共阴极三位数码管进行显示;由预留SWD下载调试接口完成程序的烧录,通过两个LED灯进行初步测试。

本设计采用两节7号电池进行供电,考虑到功耗问题,默认不开机,进入睡眠模式;当有按键按下时,触发中断,此时结束睡眠模式,执行按键判断,获取温湿度并启动数码管进行显示;同时启动定时器中断,显示数据1s后再次进入睡眠,等待下次唤醒。

图1 系统框图

二、硬件电路设计

(一)主控及晶振电路

图2 主控及晶振电路原理图

1. 主控及晶振电路

(1)主控电路:使用一片STM32G030K6T6完成数据的输入、处理与输出,在芯片的电源输入端使用一枚磁珠与滤波电容并联,滤除杂波、防止串扰,稳定电源的输入;。

(2)晶振电路:芯片虽然内置时钟,但精度上存在一定误差,使用一枚32.768KHz的无源晶振,外接两个18pF电容,构成外部时钟源。

(二)传感器模块

1. SHT40传感器工作原理与特点

(1)工作原理:

图3 SHT40传感器功能框图

温湿度传感器获取模拟量数据后,通过模数转换器将其转变为数字信号,并在校准后将数据放在寄存器中进行存储;通过I2C同信协议完成指令的写入与读取数据的操作。

(2)特点: ‌它能够在测量范围内提供高精度和高稳定性的测量结果。‌SHT40的主要特点和优势包括:

高精度测量:‌SHT40能够测量相对湿度从0至100%,‌温度范围从-40℃至125℃,‌并且具有±1.8%的湿度精度和±0.2℃的温度精度。‌这些精度指标在同类产品中属于领先水平,‌能够满足大多数应用的需求。‌

优异的稳定性:‌通过内部增加的自校准功能,‌SHT40具有更好的长期稳定性,‌能够有效地补偿传感器老化和温度漂移,‌确保测量数据的准确性和一致性。‌快速响应:‌SHT40在灵敏度和响应速度上也进行了优化,‌尤其在湿度测量方面,‌其响应时间更快,‌能够更迅速地捕捉到环境变化。‌这种特性使其在需要快速响应的应用场景中非常适用。‌

低功耗设计:‌SHT40在继承了前代产品低功耗和紧凑封装的基础上,‌进一步优化了功耗控制,‌更适合于低功耗应用,‌如物联网(IoT)设备和能源敏感的系统。‌其电源电压范围从1.08 V扩展到3.6 V,‌非常适合移动和电池驱动应用。‌

增强抗干扰能力:‌SHT40还增强了抗干扰能力,‌能够更好地抵抗电磁干扰(EMI)和其他环境因素的影响,‌确保在复杂环境中也能提供可靠的测量结果。‌

SHT40因其高精度、‌低功耗和快速响应等特性,‌被广泛应用于智能楼宇、‌天气站、‌仓库存储、‌养殖、‌孵化等场景

2. SHT40传感器电路原理

该传感器共4个引脚,分别为:见表1。

引脚名称

SDA

SCL

VDD

GND

定义

数据线

时钟

电源

接地

表1 SHT40引脚定义表

图4 SHT40传感器典型应用电路图

在管脚SDA与SCL上都需要一个10KΩ的上拉电阻,且正极与接地之间存在一个100nF的电容;通过观察传感器的实物图可以发现,厂家出厂时配备了100nF的电容,但上拉电阻需要在使用中自行布置。

图5 SHT40传感器实物图

传感器上关于管脚定义无任何标识,需要注意的是在插入传感器之前要确定管脚方向,因为传感器插反将会电源反接,瞬间烧毁传感器。

图6 传感器模块电路原理图

在实际电路使用时,使用一个4Pin排母,这样方便传感器的拆装与检查;同时,在排母的1、4脚处增加上拉电阻,2、3脚接入3V直流电路,从而完成传感器模块的硬件电路搭建。

(三)测试LED

图7 测试LED电路原理图

两个测试LED灯是为了方便调试程序对出现的问题进行测试,将问题具体现象直观展示所设计,LED负极接入单片机,正极通过4.7KΩ电阻接入3V电源,当单片机对应引脚输出为低电平时,LED灯点亮。

(四)74HC595

图8 74HC595驱动电路原理图

通过使用3个74HC595芯片进行驱动2个3位共阴数码管,U2与U3分别负责LED1与LED2的段码输送,U4负责实现数码管的位选。C23、C24、C25三个滤波电容在PCB板处要靠近三个595芯片,进行电源滤波。

(五)唤醒按键

图9 按键电路原理图

将按键的一端与单片机管脚相连,另一端与地线相连,通过读取单片机该管脚的高低电平即可识别按键是否按下。

(六)数码管

图10 数码管显示电路原理图

使用两个三位的共阴数码管,每个元件上单片机驱动595芯片输出高电平时就能点亮对应的数码管

(七)电源系统

图11 电源系统电路原理图

在电源处设置两颗精度为±0.1%的分压电阻,用于检测电池电压,通过单片机的ADC进行电压读取;同时考虑到电池可能装反等情况,在电池电压的输入端加入一个场效应管,防止电池反接。

(八)SWD下载调试接口

图12 SWD下载调试接口电路原理图

使用4Pin的排针作为信号引脚,方便用杜邦线连接,实现MCU的程序烧录。

三、软件设计

(1)总体设计

图13 软件整体流程图

当有按键按下时,触发中断,此时结束睡眠模式,执行按键判断,获取温湿度并启动数码管进行显示;同时启动定时器中断,显示1S数据后再次进入睡眠,等待下次唤醒。若想检测电池电压,可增加ADC相关代码;若想进行定时读取,可以增加RTC实时时钟代码;

(2)数码管模块

在gpio.c文件的用户区编写测试代码,SN74HC595的引脚初始化已经生成好了,现在要做的是编写相关的驱动函数与显示函数;

SN74HC595驱动时序相对简单,首先输入高电平或低电平到SER引脚中,随后产生一个SCLK的上升沿,将数据发送出去,这里是8位数据移位寄存器,所以循环8次,最后一个RCLK的上升沿将数据锁存住,保持不变,直到下一次发送;

这里模拟一下发送时序;假如的数据是0xFE(1111 1110)

此时先发送最高位,也就是0xFE&0x80,判断高低电平;随后数据被送入QA;

然后继续,发送次高位,也就是(0xFE<<1)&0x80,判断高低电平,随后之前的数据被挤到QB,这个数据移位到QA。

依次类推,根据前面的原理图可知,这两个数码管的阴极总共是6个阴极,全部连接在SN74HC595-U6上,通过这一个595芯片,可以指定某一个位导通,同时,两个数码管的阳极,又分别连接在另外两个595芯片上,通过这两个芯片配合,就可以实现单个位显示数据;并根据数码管中LED导通的顺序,从而使数码管显示不一样的值;

图14 数码管显示模块流程图

(3)定时器模块

图15 定时器执行模块流程图

通过定时器完成数码管的动态显示与计数功能,两行数码管轮流显示,但因人眼的视觉暂留效果影响,所以两行数码管看上去为同时显示;当sleep_flag到达1000,即1S时间到达时,结束数码管显示,并使系统进入休眠模式。

(4)传感器模块

图16 传感器型号与地址对应图

图17 传感器通信时序图

图18 传感器指令概述图

传感器使用I2C协议进行通信,完成指令的输入与数据的传输;打开SHT40的相关数据手册,重点查看IIC地址与数据传输协议。

由数据手册可知,0x44是IIC地址;当地址最低位是0,表示写入,最低位是1,表示读取;当发送0xFD指令时,代表高精度测量温湿度;并且数据手册提供了相关温湿度的计算公式如下。

(1)

(2)

通过调用HAL库中关于I2C通信函数,可以很便捷的将数据读取出来。具体通信流程如下图所示。

图19 传感器通信流程图

四、电路制作与调试

(1)电路制作

1.原理图绘制:使用嘉立创EDA(专业版)绘制本次项目原理图,绘制时将电路按功能模块进行区分,便于后续查找与PCB的绘制。

图20 项目原理图

2.PCB绘制与制作:将原理图元件导入PCB后按功能进行分区,合理排布元器件位置,设置好导线规则进行走线、补泪滴、铺铜、优化(删除空岛、修剪铺铜形状、删除传感器下方铺铜、删除晶振下方铺铜);DRC检查无误后提交嘉立创打板订单,同时根据生成的BOOM元件清单进行元件购买,对订货周期过长的器件进行替换。

图21 PCB顶层图

(二)代码编写

1.创建工程:使用STM32CubeMX软件进行基础代码生成与配置

2.设置参数:根据原理图,设置所有外设引脚

将SN74HC595引脚设置为推挽输出、快速模式,同时依据原理图对其进行重命名,方便后续代码编写;将按键引脚设置为上拉输入模式并对其进行重命名;将测试LED灯设置为推挽输出模式并对其进行重命名;打开ADC、定时器、IIC功能;配置时钟树;填写输出工程的名称,选择工程输出路径以及适配的IDE;生成相关文件的.c与.h文件;选择HAL库创建工程。

图22 芯片引脚定义图

3.使用Keil5 MDK软件进行程序的编写与测试

工程源码见附录。

(3)PCB焊接

在PCB板与元件到货后进行焊接。

图23 PCB板正面图

图24 PCB板背面图

图25 项目成品正面图

图26 项目成品背面图

(四)程序烧录

1.打开keil工程文件;

2.将DP-LINK针脚与PCB板上的调试口相连接;

3.点击编译(Build),点击下载(Download);

图27 编译、下载按钮位置图

4.断开DP-LINK,放入电池。

(五)故障排除

故障1:程序烧录故障。

故障描述:连接下载器后烧录程序报错,Keil提示invalid rom table。

解决过程:由于有让MCU进入休眠模式的代码,在上电后它会立即进入休眠模式,以保持低功耗运行。此时可以先插好ST-LINK,在Keil程序编译好,然后按下唤醒按钮,在数码管仍在显示数值的过程中,手快速地点击Keil的下载按钮即可。

故障原因:MCU进入休眠模式。

故障2:数码管不显示。

故障描述:烧录程序后第一行用于显示温度的数码管不显示,湿度数码管工作正常。

解决过程:因为湿度数据正常显示,能够读取传感器数据,且数码管显示正常无乱码,这说明软件有正常运行;所以问题大致出现在硬件上,通过分析电路原理图判断,因为第二行数码管工作正常,所以U3-595芯片无异常,问题大致出在主控芯片与U2-595芯片或主控芯片与U4-595芯片的连接上,使用万用表测量各线路通断,检查是否存在虚焊;若不存在虚焊则可能U2-595芯片损坏。

故障原因:U2-595芯片13脚虚焊,OE使能未接地,输出 QA - QH 被禁用。

(六)项目成品

图28运行结果图

演示视频

附录

(一)项目原理图

(二)项目PCB图

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

附件

序号文件名称下载次数
1
SHT40_Project.7z
4
克隆工程
添加到专辑
0
0
分享
侵权投诉

工程成员

评论

全部评论(1)
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航