专业版
#第九届立创电赛#桌面温湿度仪

创建时间:1年前

描述

<div> <p style="line-height:1.8;"><span style="color:#000000;font-size:14pt;"><strong>B站视频链接:【#第九届立创电赛#桌面温湿度摆件】<a href="https://www.bilibili.com/video/BV1SEiceKEeq/?vd_source=58565dc3f3ad6555fb99aa7ab634a5fb" target="_blank">#第九届立创电赛#桌面温湿度摆件_哔哩哔哩_bilibili</a></strong></span></p> <p style="line-height:1.8;"><span style="color:#000000;font-size:14pt;"><strong>B站视频链接:【#第九届立创电赛#桌面温湿度摆件】<a href="https://www.bilibili.com/video/BV1SEiceKEeq/?vd_source=58565dc3f3ad6555fb99aa7ab634a5fb" target="_blank">#第九届立创电赛#桌面温湿度摆件_哔哩哔哩_bilibili</a></strong></span></p> <p style="line-height:1.8;"><span style="color:#000000;font-size:14pt;"><strong>B站视频链接:【#第九届立创电赛#桌面温湿度摆件】<a href="https://www.bilibili.com/video/BV1SEiceKEeq/?vd_source=58565dc3f3ad6555fb99aa7ab634a5fb" target="_blank">#第九届立创电赛#桌面温湿度摆件_哔哩哔哩_bilibili</a></strong></span></p> <p style="line-height:1.8;"><span style="color:#e03e2d;"><strong><span style="font-size:24pt;">本人为初二学生,水平有限,难免有部分疏漏,请谅解</span></strong></span></p> <p style="line-height:1.8;"><span style="color:#e03e2d;"><strong><span style="font-size:24pt;">如有错误欢迎各位佬们指正</span></strong></span></p> <p style="line-height:1.8;"><span style="color:#e03e2d;"><strong><span style="font-size:24pt;">我只有烙铁,所以封装都是0805</span></strong></span></p> <p style="line-height:1.8;"><span style="color:#000000;font-size:18pt;"><strong>训练营收获:</strong></span></p> <p style="line-height:1.8;"><span style="font-size:18pt;">1.学会使用CubeMX+HAL库,以前都是直接用标准库(这样是真方便)</span></p> <p style="line-height:1.8;"><span style="font-size:18pt;">2.加深对stm32系列的理解(以前只用过51,还没用32做过项目)</span></p> <p style="line-height:1.8;"><span style="font-size:18pt;">3.学会器件选型</span></p> <p style="line-height:1.8;"><span style="font-size:18pt;">4.对模电有了进一步的理解</span></p> <p style="line-height:1.8;"><span style="text-decoration:underline;"><span style="text-decoration:line-through;"><span style="font-size:18pt;">5.白嫖了很多元器件()</span></span></span></p> <p style="line-height:1.8;"> </p> <p><strong><span style="font-size:18pt;">过程中遇到的坑:</span></strong></p> <p><span style="font-size:18pt;">1.3D外壳按键的地方开孔小了,手指根本伸不进去,只能用纸筒加长</span></p> <p><span style="font-size:18pt;">2.传感器接反了,烧了一个</span></p> <p><span style="font-size:18pt;">3.传感器的孔被锡堵死了,敲也敲不出来,只能漆包线+热缩管</span></p> <p><span style="font-size:18pt;">4.按键太靠近螺丝柱,磨短螺柱后螺丝拧不紧</span></p> <p><span style="font-size:18pt;">5.每次唤醒后都会卡一会,想破脑筋也想不出为什么</span></p> <p><span style="font-size:18pt;">6.有时会出现清屏不完整的情况,目前仍未解决</span></p> <p> </p> <p><span style="font-size:18pt;">焊接没啥说的,我用黄花刀头+松香都能焊成这样,没什么难的……吧</span></p> <p><span style="font-size:18pt;"><img src="//image.lceda.cn/oshwhub/b88c4329cd6047feb3287cd42fc25f3c.png" width="363" height="248" alt="b88c4329cd6047feb3287cd42fc25f3c.png"></span></p> <p> </p> <p><span style="font-size:18pt;"><img src="//image.lceda.cn/oshwhub/44ee291c697e4eee96b2141118c779b9.png" width="390" height="281" alt="44ee291c697e4eee96b2141118c779b9.png"></span></p> <p> </p> <p><span style="font-size:18pt;"><img src="//image.lceda.cn/oshwhub/a5274133dacf4e9aa3e12e5705d99d5b.jpg" width="375" height="260" alt="a5274133dacf4e9aa3e12e5705d99d5b.jpg"></span></p> <p> </p> <h3 style="line-height:1.8;">* 1、项目功能介绍</h3> <hr> <p style="line-height:1.8;"><span style="color:#000000;font-size:14px;">桌面小摆件,具有温湿度显示和时钟功能</span></p> <p style="line-height:1.8;"><span style="color:#000000;font-size:14px;">时钟可设置时间,有越界检测、平闰年检测功能,保证设置数据的合法性</span></p> <p style="line-height:1.8;"><span style="color:#000000;font-size:14px;"><img src="//image.lceda.cn/oshwhub/508c627b9a294917ad120ac5397d2089.jpg" width="527" height="404" alt="508c627b9a294917ad120ac5397d2089.jpg"></span></p> <h3 style="line-height:1.8;">*2、项目属性</h3> <hr> <p style="line-height:1.8;"><span style="color:#000000;">本项目为首次公开,原创,未曾在其它比赛中获奖</span></p> <h3 style="line-height:1.8;">* 3、开源协议</h3> <hr> <p style="line-height:1.8;"><span style="color:#000000;font-size:14px;">GPL 3.0</span></p> <h3 style="line-height:1.8;">*4、硬件部分</h3> <hr> <p style="line-height:1.8;"><img src="//image.lceda.cn/oshwhub/7d2bc1c5e5b24fd8b7381f030610d60c.png" width="471" height="224" alt="7d2bc1c5e5b24fd8b7381f030610d60c.png"></p> <p style="line-height:1.8;">Q1为PMOS,当5V(外部USB)有电,PMOS管截止,即便有体二极管电流流过,但是因为5V会比 Vbat 电压高,PMOS的Vgs(MOS的开启电压)>0 ,所以PMOS体二极管截止,单片机由5V(外部USB) 供电;当5V没电(USB未插入),PMOS导通,单片机由 VBat 供电;</p> <p style="line-height:1.8;"> </p> <p style="line-height:1.8;"> </p> <p style="line-height:1.8;"><img src="//image.lceda.cn/oshwhub/1b77bed9ec0c4e0189f52c568da20e7c.png" width="473" height="210" alt="1b77bed9ec0c4e0189f52c568da20e7c.png"></p> <p style="line-height:1.8;">当R7为2kΩ时,查阅数据手册可知,充电电流为500mA</p> <p style="line-height:1.8;">锂电池为1000mAh,这个电流足够。指示灯充电时亮起,充满后熄灭。</p> <p style="line-height:1.8;"><img src="//image.lceda.cn/oshwhub/991fd318b2524d3780d9c9330d8e3ed5.png" width="636" height="95" alt="991fd318b2524d3780d9c9330d8e3ed5.png"></p> <p style="line-height:1.8;"> </p> <p style="line-height:1.8;"> </p> <p style="line-height:1.8;"><img src="//image.lceda.cn/oshwhub/f2bef2dc057d4c309ebbbe03a892d72c.png" width="468" height="243" alt="f2bef2dc057d4c309ebbbe03a892d72c.png"></p> <p style="line-height:1.8;">之所以不用AMS1117是因为其输入输出电压差过大,足足有1.4V,对于最小电压为3.7V的锂电池显然不行,所以选用这颗输入输出电压差小的LDO</p> <p style="line-height:1.8;"><img src="//image.lceda.cn/oshwhub/3c841f05791a4396afec5d024d302d37.png" width="609" height="518" alt="3c841f05791a4396afec5d024d302d37.png"></p> <p style="line-height:1.8;"><img src="//image.lceda.cn/oshwhub/4a2d7edda3524ddd88454981738b8693.png" width="657" height="363" alt="4a2d7edda3524ddd88454981738b8693.png"></p> <p style="line-height:1.8;"> </p> <p style="line-height:1.8;"> </p> <p style="line-height:1.8;"><img src="//image.lceda.cn/oshwhub/3ea708c3fa174e7ea0622fbe0de21862.png" width="328" height="581" alt="3ea708c3fa174e7ea0622fbe0de21862.png"></p> <p style="line-height:1.8;">电池电量检测采用两颗精度千一的10k电阻分压测量,考虑到锂电池最大电压为4.2V,1/2的分压比足够</p> <p style="line-height:1.8;">但是效果一言难尽,测量结果总是会飘(都飘到姥姥家去了),不知道是供电电压不稳还是程序有问题</p> <p style="line-height:1.8;">我还考虑到了未接入电池的情况,这时会显示电池+问号(如图)</p> <p style="line-height:1.8;"><img src="//image.lceda.cn/oshwhub/cc306626af684de1900f07663da0ff49.jpg" width="175" height="141" alt="cc306626af684de1900f07663da0ff49.jpg"></p> <p style="line-height:1.8;">不同电量时的电池图标:</p> <p style="line-height:1.8;"><img src="//image.lceda.cn/oshwhub/c9f6f3016ca946fab2fec4a0c23152fd.jpg" width="163" height="133" alt="c9f6f3016ca946fab2fec4a0c23152fd.jpg"></p> <p style="line-height:1.8;"><img src="//image.lceda.cn/oshwhub/a7552b9eebd142ff97d6c3eecc35dbd1.jpg" width="171" height="110" alt="a7552b9eebd142ff97d6c3eecc35dbd1.jpg"></p> <p style="line-height:1.8;"> </p> <p style="line-height:1.8;"><img src="//image.lceda.cn/oshwhub/cd58d69c8eaa45c7871ced54a968a7db.png" width="382" height="334" alt="cd58d69c8eaa45c7871ced54a968a7db.png"></p> <p style="line-height:1.8;">插模块的时候一定要注意正反,我已经烧了一个了(我的优惠卷啊!!!)</p> <p style="line-height:1.8;"> </p> <p style="line-height:1.8;"> </p> <p style="line-height:1.8;"><img src="//image.lceda.cn/oshwhub/cf47c1edb83e41ffbf01193721108515.png" width="308" height="231" alt="cf47c1edb83e41ffbf01193721108515.png"></p> <p style="line-height:1.8;">这个磁珠没啥用,一坨锡也行</p> <p style="line-height:1.8;"> </p> <p style="line-height:1.8;"> </p> <p style="line-height:1.8;"><img src="//image.lceda.cn/oshwhub/e58240d80304477aaca4028c015bc98e.png" width="469" height="259" alt="e58240d80304477aaca4028c015bc98e.png"></p> <p style="line-height:1.8;">这个也没啥用,本来想试试串口下载,想了想还是用STLink吧</p> <h3 style="line-height:1.8;">*5、软件部分</h3> <hr> <p style="line-height:1.8;">功能框图:</p> <p style="line-height:1.8;"><img src="//image.lceda.cn/oshwhub/d1a3951039cc406d9f12e7477004a91f.png" width="904" height="1200" alt="d1a3951039cc406d9f12e7477004a91f.png"></p> <p style="line-height:1.8;"> </p> <p style="line-height:1.8;">程序在附件,注释非常清楚,随便放上一点</p> <p style="line-height:1.8;"><img src="//image.lceda.cn/oshwhub/62c06e4631ad45189dab6383f6742d75.png" width="501" height="187" alt="62c06e4631ad45189dab6383f6742d75.png"></p> <p style="line-height:1.8;"><img src="//image.lceda.cn/oshwhub/15e5f6dd1e724f27a94d7c16a668b18c.png" width="618" height="179" alt="15e5f6dd1e724f27a94d7c16a668b18c.png"></p> <p style="line-height:1.8;"><img src="//image.lceda.cn/oshwhub/8acd502bed214ec99c2bd93f3f304cd9.png" width="878" height="41" alt="8acd502bed214ec99c2bd93f3f304cd9.png"></p> <p style="line-height:1.8;"><strong><span style="font-size:18pt;">注释非常清楚!!!源码在附件</span></strong></p> <p style="line-height:1.8;">简单说点重要的部分</p> <h4 style="line-height:1.8;">1.按键扫描</h4> <p>使用定时器实现按键的扫描及去抖</p> <p>每隔一段时间记录按键状态,(具体多少我也不知道,10ms级的),如果上个时间点按键按下,这个时间点按键未按下,则说明这时是按键松手瞬间,以此避免消抖和松手检测。</p> <p> </p> <h4>2.越界判断</h4> <p>所有情况均已考虑,包括大月小月天数不同、平年闰年的2月天数不同、年月日时分秒的上限下限不同、</p> <p>若在大月设置为31日,切换为小月时自动变成1日(如当前时间为3月31日,切换为4月后,31日自动变为1日)</p> <p>鲁棒性超强!!!</p> <p> </p> <h4>3.RTC时间设置</h4> <p>RTC的时间是16进制,<strong>比如0x24代表24</strong></p> <p>那就需要对输入的时间做一些调整</p> <p>24转换为0x24有两步</p> <p>1)取出十位和个位(/和%实现)</p> <p>2)将取出的个位和十位设置为16进制的个位和十位(十位*16+个位)</p> <p>完整逻辑如下(x代表10进制下的时间):</p> <p><code>x/10*16+x%10</code></p> <p> </p> <h4>4.OLED驱动</h4> <p>移植江协科技开源的驱动代码,将标准库改为HAL库</p> <h3 style="line-height:1.8;">*6、BOM清单</h3> <hr> <p style="line-height:1.8;">编辑器打开后自行导出即可</p> <h3 style="line-height:1.8;">*7、大赛LOGO验证</h3> <hr> <p style="line-height:1.8;"><img src="//image.lceda.cn/oshwhub/01791ce554fe4c2494ac49995887c025.jpg" width="201" height="334" alt="01791ce554fe4c2494ac49995887c025.jpg"></p> <p style="line-height:1.8;"> </p> <p style="line-height:1.8;"> </p> <h3 style="line-height:1.8;">* 8、演示您的项目并录制成视频上传</h3> <hr> <p style="line-height:1.8;"><span style="color:#000000;">见附件</span></p> <p style="line-height:1.8;"> </p> <p style="line-height:1.8;"><strong><span style="font-size:18pt;">写在最后:</span></strong></p> <p style="line-height:1.8;"><span style="font-size:24px;">感谢嘉立创提供的机会,之前的电赛和训练营要么是时间冲突,要么是不知道。趁着放暑假,做一做项目挺好的,学到了不少东西。主要是狠狠地薅了一把(嘻嘻)</span></p> <p style="line-height:1.8;"> </p> </div>
  • 立创电赛-桌面温湿度仪-显示时间及设置时间展示.mp4

  • 立创电赛-桌面温湿度仪-充电展示.mp4

文档

BOM

暂无

附件

附件名 下载
立创电赛-桌面温湿度仪-显示时间及设置时间展示.mp4
立创电赛-桌面温湿度仪-充电展示.mp4
Project.rar

评论(0)

  • 表情
    emoji
    小嘉工作篇
    小嘉日常篇
  • 图片
成功
工程所有者当前已关闭评论
goToTop
svg-battery svg-battery-wifi svg-books svg-more svg-paste svg-pencil svg-plant svg-ruler svg-share svg-user svg-logo-cn svg-double-arrow