描述
<div class="document"> </div>
<div class="document">
<h3 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"><span style="font-size: 14pt;">1、项目功能介绍</span></h3>
<hr class="horizontal-splitline normal-bold-2">
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"><span style="color: #000000; font-size: 14px;">本设计使用STM32G0作为主控MCU,采用盛思锐的SHT40温湿度传感器进行环境中温度以及湿度的数据采集,通过两个三位数码管进行数据展示。</span></p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"><span style="color: #000000; font-size: 14px;">电源方面为了设计简单,采用的是两节干电池进行供电,MCU多数情况工作于休眠状态,通过按键唤醒后依次显示两次当前温度以及湿度。</span></p>
<h3 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"> </h3>
<h3 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"><span style="font-size: 14pt;">2、项目属性</span></h3>
<hr class="horizontal-splitline normal-bold-2">
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"><span style="color: #000000; font-size: 14px;">该项目用于参加第九届立创电,项目参考官方温湿度计的设计进行复刻。</span></p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"> </p>
<h3 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"><span style="font-size: 14pt;">3、开源协议</span></h3>
<hr class="horizontal-splitline normal-bold-2">
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"><span class="ql-size-13">Public Domain</span></p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"> </p>
<h3 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"><span style="font-size: 14pt;">4、硬件部分</span></h3>
<hr class="horizontal-splitline normal-bold-2">
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"><strong><span style="font-size: 12pt;">4.1、STM32G0最小系统</span></strong></p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"><img src="//image.lceda.cn/oshwhub/007b9335b58145428ce49b372002fcb5.png" alt="" width="794" height="395"></p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;">对于STM32G0而言仅仅需要一个外部的复位电路+电源即可进行运行,复位电路使用的是一个10K的电阻+100nF的电容构成。</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"> </p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"><strong><span style="font-size: 12pt;">4.2、SHT40温湿度模块</span></strong></p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"><img src="//image.lceda.cn/oshwhub/da3de16c00604b5da0aa4c0dfcb256ab.png" alt="" width="418" height="402"></p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;">本次设计中,为了减小焊接难度,使用的是立创商城中的一款焊接好的SHT40模块,需要注意的是,如果想要温湿度传感器正面向外,需要将1管教设置为SDA</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"> </p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"><span style="font-size: 12pt;"><strong>4.3、数码管驱动</strong></span></p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"><img src="//image.lceda.cn/oshwhub/f309237640b04fceb3802bd444cd2cfb.png" alt="" width="1115" height="173"></p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;">由于单片机管教的输出能力有限,本设计中使用的三片74HC595进行数码管驱动;</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;">U3、U4分别控制两个数码管的段选,U5用于控制数码管位选;同时三个595的使能引脚连接到单片机的管脚上,便于进一步降低功耗。</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"> </p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"><span style="font-size: 12pt;"><strong>4.4、数码管</strong></span></p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"><img src="//image.lceda.cn/oshwhub/226e438f79b2424eaa3bfc587c2b743b.png" alt="" width="1133" height="321"></p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;">本设计中选择数码管是两片三位共阴极数码管,因此在驱动的时候需要将段选设置为高电平,位选设置位低电平即可点亮。</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt pap-left-indent-1.6em" style="line-height: 1.8;"> </p>
<h3 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"><strong><span style="font-size: 14pt;">5、软件部分</span></strong></h3>
<hr class="horizontal-splitline normal-bold-2">
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt pap-left-indent-1.6em" style="line-height: 1.8;">软件方面,使用STM32CubeMX + Keil v5进行开发,通过STM32CubeMX进行硬件配置以及代码生成,Keil V5进行逻辑代码开发。</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt pap-left-indent-1.6em" style="line-height: 1.8;"> </p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt pap-left-indent-1.6em" style="line-height: 1.8;"><span style="font-size: 12pt;"><strong>需要注意的是</strong></span>:本设计使用的是Keil V5的AC5编译器进行开发,对于高版本默认不带AC5,需要手动安装,然后进行选择。</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt pap-left-indent-1.6em" style="line-height: 1.8;"><img src="//image.lceda.cn/oshwhub/7c72cbeb6cb044ca9946fcd8c97e2fc9.png" alt="" width="778" height="587"></p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt pap-left-indent-1.6em" style="line-height: 1.8;"> </p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt pap-left-indent-1.6em" style="line-height: 1.8;"><span style="font-size: 12pt;"><strong>5.1、74HC595驱动</strong></span></p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt pap-left-indent-1.6em" style="line-height: 1.8;"><img src="//image.lceda.cn/oshwhub/13a2913c373e4b3384e86903ba517220.png" alt="" width="998" height="341"></p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt pap-left-indent-1.6em" style="line-height: 1.8;">74HC595的操作逻辑比较简单,依照数据手册的时序进行发送即可,总结如下:</p>
<ol>
<li class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt pap-left-indent-1.6em" style="line-height: 1.8;">开启当前74HC595的使能管脚(拉低);</li>
<li class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt pap-left-indent-1.6em" style="line-height: 1.8;">依次通过SER管脚发送8个数据,电平稳定后,通过SCLK管脚触发一个上升沿即可完成一位数据写入;</li>
<li class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt pap-left-indent-1.6em" style="line-height: 1.8;">所有数据写入完成后,通过RCLK管脚触发一个上升沿即可完成数据锁存,此时74HC595依照输入的数据进行输出;</li>
</ol>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt pap-left-indent-1.6em" style="line-height: 1.8;"> </p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt pap-left-indent-1.6em" style="line-height: 1.8;"><strong><span style="font-size: 12pt;">5.2、数码管显示段码表</span></strong></p>
<table style="border-collapse: collapse; width: 19.152%; height: 327px;">
<tr>
<td style="width: 49.9952%;">0</td>
<td style="width: 49.9952%;">0x3F</td>
</tr>
<tr>
<td style="width: 49.9952%;">1</td>
<td style="width: 49.9952%;">0x06</td>
</tr>
<tr>
<td style="width: 49.9952%;">2</td>
<td style="width: 49.9952%;">0x5B</td>
</tr>
<tr>
<td style="width: 49.9952%;">3</td>
<td style="width: 49.9952%;">0x4F</td>
</tr>
<tr>
<td style="width: 49.9952%;">4</td>
<td style="width: 49.9952%;">0x66</td>
</tr>
<tr>
<td style="width: 49.9952%;">5</td>
<td style="width: 49.9952%;">0x6D</td>
</tr>
<tr>
<td style="width: 49.9952%;">6</td>
<td style="width: 49.9952%;">0x7D</td>
</tr>
<tr>
<td style="width: 49.9952%;">7</td>
<td style="width: 49.9952%;">0x07</td>
</tr>
<tr>
<td style="width: 49.9952%;">8</td>
<td style="width: 49.9952%;">0x7F</td>
</tr>
<tr>
<td style="width: 49.9952%;">9</td>
<td style="width: 49.9952%;">,0x6F</td>
</tr>
</table>
依照段码表中的数据发送,即可在在数码管上显示对应的字符。
<p> </p>
<p><span style="font-size: 12pt;"><strong>5.3、温湿度读取</strong></span></p>
<p><img src="//image.lceda.cn/oshwhub/aa72dc5dcaa344a3be16b5d37ee5b1d5.png" alt="" width="1161" height="269"></p>
<span style="font-size: 12pt;">SHT40传感器通过I2C1和STM32连接,在读取的时候参照SHT40的数据手册即可,首先发送传感器地址,然后读取6个字节。</span>
<p><span style="font-size: 12pt;">其中第一、第二个字节表示温度;第四个、第五个字节表示湿度,通过数据手册给出的计算方式即可换算成对应的温湿度。</span></p>
<p> </p>
<p><span style="font-size: 12pt;"><strong>5.4、主程序逻辑</strong></span></p>
<p><strong><span style="font-size: 14pt;"><img src="//image.lceda.cn/oshwhub/2eb47d7ccd55414a8754ffeb6d8ce1f4.png" alt="" width="1055" height="532"></span></strong></p>
<span style="font-size: 12pt;">在main函数中,完成各类外设的初始化(GPIO、数码管、I2C、定时器等)之后,进入主循环。</span></div>
<div class="document"><span style="font-size: 12pt;">MCU正常情况下工作在睡眠模式下,当按键被按下时,触发中断唤醒MCU,MCU读取SHT40的温度、湿度,然后依次在数码管1和2上显示出来。</span><span style="font-size: 12pt;">在循环显示两次之后,修改当前状态,再次触发进入休眠模式。</span>
<p> </p>
<h3 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"><strong><span style="font-size: 14pt;">6、BOM清单</span></strong></h3>
<hr class="horizontal-splitline normal-bold-2">
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;">BOM清单详见后文,所有元器件从立创商城采购。</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"> </p>
<h3 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"><strong><span style="font-size: 14pt;">7、大赛LOGO验证</span></strong></h3>
<hr class="horizontal-splitline normal-bold-2">
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;">完整实物图如下所示:</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"><img src="//image.lceda.cn/oshwhub/5cba976ae0d0479fb0c43fd22d79d5e3.jpg" alt="实物图" width="497" height="382"></p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;">PCB图如下所示</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"><img src="//image.lceda.cn/oshwhub/0e05d8edf977471382b850ad2c4159ad.jpg" alt="PCB图" width="496" height="381"></p>
<h3 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"> </h3>
<h3 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"><span style="font-size: 14pt;">8、演示您的项目并录制成视频上传</span></h3>
<hr class="horizontal-splitline normal-bold-2">
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"> </p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"> </p>
</div>
评论(0)