描述
<p><h3 style="line-height: 1.8;"><em> 1、项目功能介绍</h3>
<hr />
<p style="line-height: 1.8;"><span style="color: #95a5a6;">本次项目使用的是STM32G0系列芯片作为主控芯片,搭配盛思锐SHT40温湿度传感器模块,实现了对环境温湿度的测量。</span></p>
<p style="line-height: 1.8;"><span style="color: #95a5a6;">在数据显示方面,使用的是两个3位数码管,分别显示温度数值和湿度数值。</span></p>
<p style="line-height: 1.8;"><span style="color: #95a5a6;">软件设计上借助CubeMX图形化的界面,只需简单操作即可配置单片机资源,自动生成代码。</span></p>
<p style="line-height: 1.8;"><span style="color: #95a5a6;">通过Fusion360设计外壳,使用拓竹3D打印机打印出来,制作安装后形成最终的一个简约、小巧的成品。</span></p>
<h3 style="line-height: 1.8;"></em>2、硬件部分</h3>
<hr />
<p style="line-height: 1.8;">整体原理图设计:</p>
<p style="line-height: 1.8;"><img src="//image.lceda.cn/oshwhub/b69e446ec59d48b4a1f08035cd465cad.png" alt="温湿度检测仪原理图" width="1190" height="845" /></p>
<p style="line-height: 1.8;">2.1 主控电路</p>
<p style="line-height: 1.8;"><img src="//image.lceda.cn/oshwhub/064fd67005a545ff94364cebf7b1f962.png" /></p>
<p style="line-height: 1.8;">使用磁珠和电容进行滤波,提升主控芯片供电稳定性。设置上电复位电路,未设置手动复位电路。</p>
<p style="line-height: 1.8;">2.2 晶振电路</p>
<p style="line-height: 1.8;"><img src="//image.lceda.cn/oshwhub/73f6241d695a418783016e7952036d05.png" /></p>
<p style="line-height: 1.8;">外接32.768kHz的无源晶振,为后续拓展功能预留,本项目使用内部晶振。</p>
<p style="line-height: 1.8;">2.3 温湿度传感器电路</p>
<p style="line-height: 1.8;"><img src="//image.lceda.cn/oshwhub/aa39259abfb749fba41d2f5abaed6b32.png" /></p>
<p style="line-height: 1.8;">本项目使用的是盛思锐的SHT40温湿度传感器,具有精度高、功耗低的特点。SHT40本身非常小,对新手来说不好焊接,本次训练营项目提供SHT40模块,只需在板子上焊接4Pin的插座,将SHT40模块插上去就可使用,非常的方便。</p>
<p style="line-height: 1.8;">2.4 三态输出8位移位寄存器电路</p>
<p style="line-height: 1.8;"><img src="//image.lceda.cn/oshwhub/cdb136d9fb5e480a92b493eb164a8d16.png" /></p>
<p style="line-height: 1.8;">通过3个595移位寄存器控制两个数码管显示数值,这样只需很少的主控芯片IO口就可以控制多个数码管。这里的LED1X是控制第一个数码管显示的引脚,LED2X是控制第二个数码管显示的引脚,LEDX_DIG是控制数码管共极性侧的引脚。</p>
<p style="line-height: 1.8;">2.5 按键唤醒和测试LED电路</p>
<p style="line-height: 1.8;"><img src="//image.lceda.cn/oshwhub/b8bd07f517f6499c824b448830ab4e20.png" /></p>
<p style="line-height: 1.8;">测试LED电路是为了验证板子焊接后能否正常工作的测试电路,在板子焊接好以后,通过点灯程序控制FPIO_TEST引脚的电平变化,就可以控制LED灯的亮灭,如果能正常控制LED灯亮灭,说明你的硬件电路基本没问题(不代表完全没问题),软件环境也是基本搭建成功的。</p>
<p style="line-height: 1.8;">按键唤醒电路是为了主控芯片休眠时,提供一个中断信号,唤醒芯片开始工作的。</p>
<p style="line-height: 1.8;">2.6 共阴极3位数码管电路</p>
<p style="line-height: 1.8;"><img src="//image.lceda.cn/oshwhub/fcf79d27eb504fca994a47cf4bd95b7b.png" /></p>
<p style="line-height: 1.8;">两个三位数码管分别显示温度、湿度数值,两个数码管的直接控制是通过3个595移位寄存器控制的,3个595寄存器又是通过STM32G0主控芯片控制的,一级</p>
<p style="line-height: 1.8;">原理图上是共阴极的数码管,由于立创商城没货了,最后使用的是共阳极的数码管。使用共阳极数码管显示0-9和点号的二进制数值与共阴极得到是不一样的。</p>
<p style="line-height: 1.8;">这是共阳极显示数值与十六进制数据对应表:</p>
<p style="line-height: 1.8;"><img src="//image.lceda.cn/oshwhub/8ea1ef92a7c541c7bb53fbf5e7e043a1.png" /></p>
<p style="line-height: 1.8;">然后,使用共阳极的数码管,其软件设计里面的代码也不一样,具体的参考软件部分。</p>
<p style="line-height: 1.8;">2.7 电池供电电路</p>
<p style="line-height: 1.8;"><img src="//image.lceda.cn/oshwhub/994e3c6d07a1474dbf9f37008f3e6800.png" /></p>
<p style="line-height: 1.8;">温湿度检测仪使用两节5号电池供电,可通过主控芯片检测电池电压。</p>
<p style="line-height: 1.8;">使用MOS管做防反接保护。</p>
<p style="line-height: 1.8;">2.8 SWD下载调试接口</p>
<p style="line-height: 1.8;"><img src="//image.lceda.cn/oshwhub/f58d868f5f3d4192968517ffad064000.png" /></p>
<p style="line-height: 1.8;">下载调试程序使用。</p>
<h3 style="line-height: 1.8;"><em>3、PCB展示</h3>
<p>3.1 PCB整体布局走线</p>
<p><img src="//image.lceda.cn/oshwhub/e753e224451d473f832f06cf4dd426b8.png" /></p>
<p><img src="//image.lceda.cn/oshwhub/3a04ea9e8c6e4bb29be39fdaa3902a03.png" /></p>
<p>3.2 3D视图</p>
<p><img src="//image.lceda.cn/oshwhub/669a4b42aa8543f6af60005c12c74459.png" /></p>
<p><img src="//image.lceda.cn/oshwhub/a1500b79e59547c58a51b5e89ca690e7.png" /></p>
<p>3.3 焊接完成实物图</p>
<p><img src="//image.lceda.cn/oshwhub/e854a4ad70ec488cbc623501e7a0178e.png" /></p>
<h3 style="line-height: 1.8;"></em>4、软件部分</h3>
<hr />
<p style="line-height: 1.8;">本项目软件开发使用CubeMX配置引脚功能,生成基础代码。</p>
<p style="line-height: 1.8;"><span style="color: #e03e2d;">注意:</span></p>
<div class="lake-content">
<p id="u6358a6d9" class="ne-p"><span class="ne-text"><span style="color: #e03e2d;">TIM14定时器设置的时候,需要在CubeMX中多操作一个"NVIC Settings",将TIM14 global interrupt使能,这样定时器才能正常工作。</span></span></p>
</div>
<p style="line-height: 1.8;"><img src="//image.lceda.cn/oshwhub/a762949070f84461af327375db5594ee.png" /></p>
<p style="line-height: 1.8;">代码使用Keil5进行开发,特别注意共阳极数码管的显示数值和小数点的十六进制。</p>
<p style="line-height: 1.8;"><img src="//image.lceda.cn/oshwhub/44566cb7d350457b95c554791ed871bc.png" /></p>
<p style="line-height: 1.8;"><img src="//image.lceda.cn/oshwhub/fc78372a7fcd4f80b1e2ea83ea8ff46b.png" /></p>
<p style="line-height: 1.8;"><span style="color: #95a5a6; font-size: 14px;">程序烧录上,使用的是ST-Link,注意检测你的ST-Link能否正常工作,我第一次用了一个坏掉的ST-Link就没法烧录程序,重新买了一个新的才烧录成功。</span></p>
<p style="line-height: 1.8;"><span style="color: #95a5a6;">编程思路:</span></p>
<p style="line-height: 1.8;"><span style="color: #95a5a6;">1.主控芯片休眠,等待中断;</span></p>
<p style="line-height: 1.8;"><span style="color: #95a5a6;">2.按键按下,触发下降沿中断,调用中断服务函数,唤醒程序;</span></p>
<p style="line-height: 1.8;"><span style="color: #95a5a6;">3.程序正常工作,进入while循环;</span></p>
<p style="line-height: 1.8;"><span style="color: #95a5a6;">4.通过I2C程序获取温湿度传感器数据;</span></p>
<p style="line-height: 1.8;"><span style="color: #95a5a6;">5.通过GPIO将温湿度数据发送至595寄存器,再发送至数码管,数码管显示数据并定时;</span></p>
<p style="line-height: 1.8;"><span style="color: #95a5a6;">6.定时结束,程序重新进入休眠,等待下一次唤醒。</span></p>
<h3 style="line-height: 1.8;"><em>5、3D外壳制作、打印</h3>
<p>Fusion360设计3D外壳,需要测量数码管的位置和SWD下载排针的位置,预留好开槽,需要打印出来安装测试,尺寸对不上就继续改继续打印,最后备有3D打印机,这样可以多次修改验证。</p>
<p>底部盖板是通过过盈配合的方式直接摁进去的。</p>
<p>外部按键的部分也是需要预留开槽,然后打印一个小的按键,先把按键塞进去安装好,再将温湿度检测仪安装进去。</p>
<p>最后,在外壳的内部设置限位,这样安装配合的时候就不需要对位子了,方便安装。</p>
<p><img src="//image.lceda.cn/oshwhub/3633cdb378484d0b8fb8c2dcef9ab2fc.png" /></p>
<p><img src="//image.lceda.cn/oshwhub/f56f6bc0e5e2494eb3ee36e10ebc2fc5.png" width="803" height="516" /></p>
<p><img src="//image.lceda.cn/oshwhub/a71decfb5dc848a8b4ba01254349e24b.png" width="804" height="543" /></p>
<p> </p>
<p>3D外壳打印文件</p>
<p><img src="//image.lceda.cn/oshwhub/6246f41013a54b139d65ac72087063dc.png" width="812" height="473" /></p>
<h3 style="line-height: 1.8;"></em>6、BOM清单</h3>
<hr />
<p style="line-height: 1.8;"> </p>
<h3 style="line-height: 1.8;"><em>7、大赛LOGO验证</h3>
<hr />
<p style="line-height: 1.8;"><img src="//image.lceda.cn/oshwhub/aec803be510340fca688a89ab7ac9d25.png" width="931" height="588" /></p>
<p style="line-height: 1.8;">实物上印制嘉立创EDA的标识和盛思锐传感器的文字标识。</p>
<h3 style="line-height: 1.8;"></em> 8、演示您的项目并录制成视频上传</h3>
<hr />
<p style="line-height: 1.8;"> </p>
<p style="line-height: 1.8;"> </p></p>
评论(0)