加入交流群  

扫一扫,添加管理员微信
备注:参考设计,即可被拉入群
和也在搞设计小伙伴们碰一碰

收藏 

评论 

super_star 发布

【训练营_进阶班】物联网无限空间床头灯

 
设计简介

前景

家里有个以前做的挺漂亮的床头灯,这次想通过本次竞赛培训活动,学习知识,将这个以前的作品改造成物联网设备。

折腾记录

快速跳转

  • 电路板与外壳的制作装配:博客链接
  • 代码:Gitee链接

    选型篇

左选右选,最终还是选用了stc15f104w 这款单片机。

本来不太想用stc15f104w,感觉io口不太够用,但根据功能数了一下,跟esp-01s用串口传输数据,占用俩io;连接触摸感应芯片BS801B,占用一个;ws2812使用esp-01s的那一个io口控制,这样一来甚至还多出几个io呢。

-3acacb048b3f3b07

下面说说我整理出使用stc15f104w的优势

  • IO口数量适合
  • 以前写过stc15f104w的程序,对它也比较熟悉。
  • 它有sop-8的封装,引脚少,体积小。
  • 它内置晶振,上电就能用,不需要外围电路(这一点我很喜欢)。
  • 宽电压范围供电:5.5-3.8V

也考虑过stm32f103c8t6,80c51这样的老牌单片机,但前者的io浪费得厉害,后者还得配外围电路,晶振啊电容啊什么的,占地方。经过上边的比较分析,终于打定主意就用stc15f104w了。

大概需要用到的是 STC15F104w、ESP-01s、AMS1117、BS801B、NCE3401AY等

这些元器件的电压参数如下

名称 工作电压(V) 备注
STC15F104w 3.8-5.5
ESP-01s 3.0-3.6
BS801B 2.2~5.5

绘制电路结构逻辑图篇

这,是一个让人头秃的步骤

image-20200806184355537

但是做好了之后可以为整个开发过程提供极好的指导作用。

  • 功能思维导图
床头灯功能
  • 电路原理与总体结构框图

电路与原理结构框图

  • 电源结构框图

电源结构

绘制原理图篇

我的灯的外壳的骨架是木条,存放电路的地方长这个样子:

image-20200806144921324

可以看到,左边留有type-c接口位置的木框厚度为5mm。

这意味着我必须选一个比较长一点的type-c母座,不然公头插进去够不着。

我把立创商城的所有母座都翻了一遍后,只找到了几个比较符合要求的:

  • 立式的-1
image-20200806145219037

不用它的原因:用这个的话,焊好口朝上,位置不对。虽然说可以给他单独搞个小板,但是呢......麻烦啊,还得给小板连线啊什么的,这样太麻烦了。

  • 立式的-2
image-20200806150020512

不用它的原因:同上 ,而且我焊工太渣,但引脚太多还是贴片的(焊这样的type-c有过惨痛教训), and ......

image-20200806150033981image-20200806150246766
  • 卧式-直插
image-20200806145620528

采用原因:引脚较少,画板子的时候把封装重新编辑一下,把引脚那一端移到板子边缘就好了。

BUT...

正当我开开心心的去画原理图的时候,发现一个问题

image-20200806150644587

(左图来自商城规格书)

TIM图片20200806182907

image-20200809123442792

??????这都是啥 这都是干啥的? 哪个是哪个??????

image-20200806151121824

短暂的思索了一会儿,我觉得这应该可能在type-c的引脚定义里面有,浏览器走一波~

image-20200806150918511

不出所料

image-20200806150943044image-20200806151856061

OK了,终于可以愉快的画电源部分了~img

  • TYPE-C电源接口
image-20200806152357724

note: 那四个 “0” 是母座金属外壳的四个孔位,可以接地处理也可以不接。我选择不接地是因为,我感觉的烙铁功率不太够,接地的话散热太快了不好焊(指大面积铺铜接地处理的情况下)。

  • 3.3V电源
image-20200806151241432
  • 绿波电龙(滤波电容
image-20200806151505333
  • 触摸芯片
image-20200806161136628

note: 查看手册,手册推荐的应用电路图中,Kout接了个上拉电阻

image-20200806161618186

关于拉电阻的问题我也搞不太明白,但我的理解是:

使用拉电阻,可以将这条信号线上的电平强制设置为一种稳定的状态,通过上拉/下拉来选择要配置为什么状态,即平时的时候是高是低。这条信号线上要检测的信号为高电平,就配置为下拉电阻;要检测的信号为低,那就配个上拉电阻。

以本设计为例,我电路图配置的是:有触摸输出低电平,那么就把拉电阻设为上拉电阻。当无触摸的时候,信号线一直为高电平,而当人触摸后,Kout输出低电平,这时上拉电阻那条电路产生向BS801B内部流动的电流,而Kout输出低电平相当于接地,这样一来,信号线就被拉低了,线路上就产生了单片机要检测到的低电平信号。

故将原理图修改,添加上拉电阻:

image-20200806163125941
  • WS2812灯带部分
image-20200806173331833

开关mos我直接照着手册画的,NCE3401AY的手册图:

image-20200806144546147

 又出大问题...

原理图画到STC15f104w单片机了,就在我 吃着火锅唱着歌 查着资料听着歌的时候,我发现

image-20200806163843785

它!没!有!串!口!!! 这咋办啊,虚拟串口我不见得会写啊!image-20200806164350545

咋办啊这~

老话说得好: 官网是个好东西

网上找太杂,便先去官网逛逛吧 ~_~

image-20200806164529991

一如既往的辣眼睛img,往下翻

卧槽我看见了什么 image-20200806164749020

库函数是个好东西!

image-20200806164901322

真是太棒了!!

image-20200806165013221

这是它的描述,真香

image-20200806165150731

模拟串口引脚的定义方法如下

image-20200806165338652

总结 : stc15f100系列没有硬件串口,所以想要使用串口,应该使用软件模拟串口来实现。单片机的P3.0(5脚) 为RXD,P3.1(6脚)为单片机TXD,下载时也是用这俩口,需要冷启动。

我不想把用P3.0、P3.1当做与ESP-01s通信的串口,因为调试程序时需要反复下载代码验证,如果用3.0、3.1口的话,还得一直拔插ESP-01s,这样是很麻烦的。而且由于高度限制(板子高度需要小于1cm)的原因,我应该不会用排针母座,而是直接把ESP-01s焊在板子上,所以我必须另找IO。

于是 原理图成了这样

image-20200806174241407

完美了,刚刚好把所有IO全部用上。开始的时候计算的还有盈余,现在刚刚好,不多也不少。

img

  • ESP-01s

在画这个的原理图的时候,我遇到一个问题:串口电平匹配问题。

以下是解决过程

note: 单片机的串口输出的高电平与其供电电压一致。

ESP-01s的串口电平是3.3V,最大耐受也是3.3V。

也就是说,它的RXD无法接收来自STC15f104w这款5V单片机的ttl串口电平,会导致ESP-01s的损坏。

但是呢,(3.3V)TXD --> RXD(5V) 是不需要做处理的,为什么呢?

通过查看手册

STC15系列单片机的手册,我们可以发现,只要输入电压大于2V,就会被判定为高电平。ESP-01s的高电平是3.3V,会被识别判定为1,高电平。

经过以上分析我们知道:只需要做(5V)TXD --> RXD(3.3V)这一路的电压匹配即可。

经过群里许多人的帮助,我最终选择了 74LVC1T45这款电平转换IC

image-20200806201518699

image-20200806201357169

将它布置在单片机的TXD上

image-20200806202455840

现在可以进行下一步操作了:画ESP-01s的电路。

有几点注意>

  • esp-01s我是要直接焊在板子上的,所以它的下载/运行模式切换电路是需要有的
  • 串口下载的时候,需要将esp-01s的串口与单片机的引脚断开连接,因为单片机的IO状态默认不是高阻态,会干扰下载。

原理图如下

image-20200809144436865

notes:  测试ws2812灯带的时候,我一开始是直接把灯带的输入端接引脚,结果发现现象很奇怪。莫名其妙的一会儿能用一会儿不能用,很不稳定,百思不得其解啊。

img

不过我很快发现一个被我忽略的点:又是电压匹配

esp-01s的io输出电压的高电平与其vdd一样,是3.3V。而3.3V,可能不会使ws2812芯片判定为高电平。

image-20200809120630745

这是ws2812的手册。从这里我查到,ws2812把高于0.7*VDD的信号电压认为是高电平。我的ws2812的VDD即供电电压是5V。所以,高于3.5V的信号才会被当作高电平;也就是说,我们的esp-01s的3.3V的高电平,是被当作低电平来处理的,ws2812的信号输入端一直都是低电平。

对esp-01s的输出做一次电压转换才可以使用。

7AF8DB40BAC79745FBBD4BFB71B0B607

我采用的是1N4148而不是1N4007,是因为4148的开关速度要比4007快,不会出现其他问题。

前面贴出来esp-01s的原理图,就是已经补全了的完整的电路图,带有io口的电平转换。

  • 外部调试下载接口
image-20200809122035173

上图包含调试下载接口以及esp-01s的启动模式(运行/下载)切换

  • CH340下载电路
image-20200809144646905

image-20200809144706549

至此,原理图部分顺利结束

img

绘制电路图篇

其实没啥说的,怎么画板子看官方教程就好,我就不班门弄斧了。

按照外壳空间大小设计板子尺寸

image-20200809125201072

image-20200809125314066

按这个尺寸设计布局,到时候把板子调试测试好,用热熔胶固定到壳子里。

因为我这板子不涉及到高速电路,所以布线在DRC规则下随便布,基本上就是个连连看游戏。

(自动布线功能可以用来验证当前布局是否可行,原理图我已经做好模块化,分模块手动布线即可。)

唯一要注意的是esp-01s的布置,其手册相关如下:

image-20200809125846613

好了,开始画板

img

大概是这个样子:

image-20200809150023547

在丝印上添加亿点注释:

image-20200809151627613

软件篇

软件开发信息

硬件 开发软件 使用的库
ESP-01s arduino FastLED库、Blinker库
STC15F104w keil STC15系列官方库

参考网址

blinker Arduino支持库

FastLED库说明文档-太极创客

  • ESP-01s部分 左选右选才选好要使用的物联网平台和要使用的led驱动库 blinker也支持像阿里云那样的自定义软件布局,也能支持天猫精灵,相当不错。

代码:还没写完

未完待续......

参考设计图片
×

!注意:请使用浏览器自带下载,迅雷等下载软件可能无法下载到有效资源。

 
相关器件
器件 类型 描述 数据手册
TYPE-C-31-M-17 USB连接器 公母:母座 连接器类型:USB - Type C 触点数量:6 标准:- TYPE-C母座 点击下载
CH340C USB芯片 驱动器/接收器数:- 协议类别:USB 2.0 类型:Transceiver 数据速率:2Mbps USB转UART串口,内置晶振,手册有提供将TTL 串口转换为RS232 串口的应用原理图 点击下载
STC15F104W-35I-SOP STC(宏晶) 工作电压:3.8V ~ 5.5V CPU位数:8-Bit CPU内核:8051 主频(MAX):35MHz ROM类型:FLASH 点击下载
Z-211-0611-0021-001 排针排母 针脚数:6 连接器类型:排针 排数:1 触头类型:公形引脚 间距:0.100"(2.54mm) 2.54mm排针 1*6 点击下载
ESP-01S WIFI模块 点击下载
RMC08054.7K5%N 贴片电阻 点击下载
TSM2A103 NTC热敏电阻 点击下载
SN74LVC1T45DBVR 74系列逻辑芯片 逻辑类型:转换器,电压电平 额外特性:- 点击下载
NCE3401AY MOS(场效应管) 漏源电压(Vdss):30V 连续漏极电流(Id)(25°C 时):4.4A 栅源极阈值电压:1.3V @ 250uA 漏源导通电阻:52mΩ @ 4.2A,10V 最大功率耗散(Ta=25°C):1.3W 类型:P沟道 PMOS 点击下载
77311-102-03LF 排针排母 针脚数:3 连接器类型:排针 排数:1 触头类型:公形引脚 间距:0.100"(2.54mm) 点击下载
77311-102-03LF 排针排母 针脚数:3 连接器类型:排针 排数:1 触头类型:公形引脚 间距:0.100"(2.54mm) 点击下载
CT41G-0805-2X1-50V-0.1μF-M(N) 贴片电容 精度:±20% 容值:100nF 额定电压:50V 温漂系数(介质材料):2F4 材质:2X1 点击下载
0805L110ULYR PTC自恢复保险丝 点击下载
CC0805DRNPO9BN8R0 贴片电容(MLCC) 点击下载
DL4148-TP 开关二极管 反向恢复时间(trr):4ns 直流反向耐压(Vr):75V 平均整流电流(Io):150mA 正向压降(Vf):1V @ 10mA 点击下载
群聊设计,与管理员及时沟通

欢迎加入EEWorld参考设计群,也许能碰到搞同一个设计的小伙伴,群聊设计经验和难点。 入群方式:微信搜索“helloeeworld”或者扫描二维码,备注:参考设计,即可被拉入群。 另外,如您在下载此设计遇到问题,也可以微信添加“helloeeworld”及时沟通。

 
查找数据手册?

EEWorld Datasheet 技术支持

论坛推荐 更多
更新时间2024-11-12 22:04:01

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版 版权声明

EEWORLD参考设计中心

站点相关: TI培训 德州仪器(TI)官方视频课程培训

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved