|
本帖最后由 2545889167 于 2021-1-17 22:44 编辑
这帖子的内容从20年3月份开始构思,4月份的时候焊了个原型样机,6月份吧样机的升压和PID调通了,画了PCB。结果一直拖延症,持续断断续续写了好久,弄到现在才弄完,都快一年了
很早之前有这个想法了,想改造一下宿舍神灯。
直接薅羊毛买来的宿舍神灯,里面的灯珠很垃圾,标称5V1A实际上因为usb线特别长且先细线路上损耗了1V多,再用两个电阻降压,灯珠上就3V1A的样子,如果插头松动灯的亮度还会变化,非常不爽,所以考虑改造必须要用恒流驱动。另一方面,控制上也很不爽,要不只有一个机械开关,要不就只能插拔usb。搞个触摸调光不香么。
这是买来的神灯 很简陋,也很垃圾
拆出来灯板还发现最右边还有个灯珠坏了
功能计划:
1、触摸调光,调光方法可任意编程
2、升压恒流控制,带过压保护
设计计划是尽量少用元件实现,每个功能用分离元件实现的方法就不考虑了
不然的话,实现各个功能至少要 升压恒流要一个芯片或者几个,触摸传感要一个芯片,还要个单片机控制触摸流程和亮度,实在是太麻烦了,小的PCB上也放不下那么多
计划用一颗单片机实现全部的触摸、PWM升压控制和电流检测
最后选择了一款比较小众的,但是手头刚好有的单片机,这个单片机是从拆机电子垃圾上来的,买的时候很便宜
型号是EFM32TG110F32 很省电,官方宣传是世界上最省电的处理器家族
功能框图如下:
主频可以到32MHz(晶振),实际上用内部RC的话可以到24MHz,这种应用晶振肯定就免了,ARM处理器,跑PID计算游刃有余
有电容触摸功能(很重要 可以省去外置触摸芯片)
有ADC和内置运放(内置运放非常重要,很多单片机都不满足这点被排除了 因为LED的电流取样是非常小的电压,额外用一个运放不值当)
内置比较器(比较重要,比起ADC,比较器可以高速的比较LED端的电压,防止因为LED灯板开路造成的升压部分过压烧毁)
定时器的PWM输出具有双边缘比较输出(相对于提高精度,24MHz的主频下相对于48MHz的PWM时钟,占空比精度提高一倍)
还有就是低功耗特性,关灯后可以不怎么费电
QFN24 体积很小
开始干!
首先是原型样机验证的阶段,当时用了单片机转接板,其他的在洞洞板上随手搭的
开始调试的时候因为控制问题、电感感量问题等一堆 烧了好几个mos管
一开始测试的是四串的 实际最后用的是三串,但是这个倒是没有实质性的区别,都是控制电流
验证升压控制和PID的部分是最难的,弄了好久
后续就比较轻松了
设计PCB 先画电路图 就比较简单了,一个MCU搞定大部分功能,比较缺憾的是这个单片机不能宽电压支持,不然可以连给单片机供电的LDO也省掉
其他的升压MOS管,电感,二极管,电容电阻这些是基本操作,用什么方案都要有的
设计的PCB
板子左边是供电和调试接口 (这个调试接口实际上也可以用usb线的d+和d-连接出来,这样以后升级就不需要拆开了)
板子右边是两路输出 主输出A路是升压输出,B路是电阻+PWM控制,可以用于点亮辅灯 算是个聊胜于无的功能
3D预览图 板子上 基本没什么东西
正面就是升压用的电感 开关mos管两个电容和一个电流检测电阻
背面有单片机、测量分压电阻、供电LDO和B路输出的控制
焊接完成图
为了节约空间,不通过功率的器件都选用了0402封装
然后是筹备LED部分
购买的高显色指数全光谱的灯珠
不过这个灯的电流有点小,单颗就60mA 考虑到散热条件,实际上也差不多,功率大了也要闷死灯珠
我特别喜欢自然白 就是介于暖白和冷白之间
冷白看着眼睛难受 暖白容易睡着
这个自然白就贼舒服
而且自热白在TB买灯根本不要想能买到 显色也别说 便宜灯有80就谢天谢地
因为自然白比另外两个颜色比起来光效差很多 也就是一样的驱动电流 显得不那么亮 所以没人做
光谱图 自然白是紫色
测量了神灯的灯管散热器长度是30cm
去掉控制板和两头的插头占用的长度,能用的发光长度大概25~26cm
打打样铝基板的地方限制了10cm*10cm,这就比较尴尬了
最后设计了灯条分三段 10cm+10cm+6cm
做回来的PCB 拼板狂魔表示10cm*10cm要给他安排的明明白白 一点都不能少
右下角的补光灯已经做好好久了 帖子见:DIY一个铝基板高显色拍照补光灯/简易手电筒(全开源)
https://www.mydigit.cn/forum.php?mod=viewthread&tid=173648
当然吧 拼版一时爽 切版火葬场 这个铝基板是在太难加工了
切下来的用得到部分
所有原料大合照
灯珠和板子合照
设计了 三串结构 三串7并
本来要是三串8并更好 但是受限于长度 最后子板A有两颗并联的 这也就是为什么控制板要设计B路输出的原因
废了九牛二虎之力 打磨掉拼版连接处
这玩意掰断简单,但是打磨实在是反人类
此处高呼,不敢了不敢了,以后有钱了再也不拼了(下次依旧手贱拼一堆)
现在摆进去看看 正好合适
控制板的高度和宽度控制的也不错
焊接就比较简单了 烤上去就行 掠过不提
电路部分焊接完成图 当时计算量灯间距 虽然存在接头处 但是基本能保证等排布是比较均匀的
连接好控制板
触摸点 找来一个弹簧片
安装上
高度效果是这样的 这样就可以解除到外壳
用点热熔胶固定好 我找这根线不带usb 就图他长度合适,且线芯比较粗
后来实测接触面有点小 不好控制 找了一点导电铜箔贴纸贴在外壳上
贴上 实际上这张贴歪了 后面又贴了次
组装完成图
替换下之前用了一段时间的 三段调光的 之前的没改LED板子 就用了个简单的三段调光IC
软件开发部分(其实这个工程就是因为软件难产拖了好久 终归还是懒233333)
控制循环功能就这样 有四个状态 这个可以很轻松容易的修改
1、关机-单击->低亮度
2、低亮度(设置电流100mA)-单击->最高亮度 长按->关机
3、最高亮度 (设置电流420mA 且开启B通道)-单击->自由调光 长按->关机
4、自由调光 -单击->关机 长按->调光 带记忆功能
(每个功能轻描淡写一句话 实际上每个功能也是弄了好几天的那种)
软件部分的保护功能:
1、LED侧的过压保护 使用单片机内置的比较器快速响应 过压阈值可根据LED串联数量修改(这个比较重要 响应不及时会导致烧毁MOS管)
输出过压保护用打嗝保护的方法实现
2、输入电压的过压保护 欠压保护 (其实这里如果加一个mos实现输入过压完全关断会更好,且功耗也会更低,但是电路又复杂了)
3、PID控制核心部分用时间很短 ms级别的独立看门狗保护
PID控制部分
亮度控制状态机
电容触摸控制状态机
灯亮的时候保证MCU的全速运行 因为此时的功耗大头的LED
灯熄灭的时候MCU进入休眠状态 整个相同的休眠电流 156uA 这里弄的比较粗糙,因为板子上其实耗电的部分有好几处,单纯的调MCU也不可能降低的很低
另一方面 对于USB应用目前这个也够了
用USB表测不出来
设置灯珠100mA
设置灯珠420mA(最大)
自由调光的最大最小电流
工作实拍
next
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
打赏
-
查看全部打赏
|