查看: 930|回复: 0
打印 上一主题 下一主题

【开源】一个基于STM8触摸库的触摸调光台灯控制器

[复制链接]
跳转到指定楼层
沙发
发表于 2016-4-7 21:21:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
新人首次正式发帖,如有不足,还请指正。

WARNING:本人废话很多,请见谅。
WARNING:本人原本是做硬件的,软件纯属于自己瞎折腾,代码风格一塌糊涂,还请见谅。

本贴所做的触摸台灯控制器本来是给老板家用的,试用下来自我感觉良好,就是STM8S103F3的那8KB FLASH又写爆了,最后开了最高等级优化了体积勉强写进去,反应速度慢了不是一点点。目前正在做STM8S105版本,而且带电流反馈调节,PCB已经在JLC打样了,做完后会更新到本贴某楼层的,敬请期待。
触摸原理,其实很早之前就和@qwe2231695在51单片机上实现过,但是没有ST优化的那么好,也没有滑动条,用起来挺费劲的。

----------------------------废话开始的分割线-----------------------------------

在我本科大二的时候,做过一个放大台灯的改装,将原装的荧光灯管换成了交错布置的两组LED,用纯模拟电路来进行冷暖色调光,使用电位器和恒流芯片PT4115做的,效果不错,实验室也有兄弟拿去做了个STM8加编码开关旋钮的普通台灯。毕业后这两个灯都送给下一届学弟了。这会儿的老板打算给他儿子弄个护眼台灯,功能要求基本一致,但是希望有触摸,所以做了这个小东西。

功能:
基于STM8触摸库(RC模式)实现触摸冷暖色调光,可以单独控制冷色和暖色亮度,达到一个比较舒服的光色。12V2A电源供电,需要有较好的对大地通路。

操作:
开机时,蓝色黄色指示灯全亮,触摸蓝灯部分,蓝灯熄灭,点亮冷色灯管,再次触摸则关闭。触摸黄灯同理,只是控制暖色灯管。
蓝灯黄灯熄灭状态时,滑动条控制总亮度,双击/长按一个指示灯,能够使该指示灯进入闪烁模式,这时滑动条控制对应灯管的分亮度,达到色度调光的目的。
同时双击/长按是会自动屏蔽其中一个操作,但同时短按时可以操作的。
本程序自己写的部分,大部分都是按键处理状态机里的,而且是可以移植到机械按键上用的。多按键输入的话还是需要优化这部分代码。

不足:
控制部分:本来设想是串并联LED,然后用BOOST拓扑,单片机采集电流信号做PID恒流,实验证明STM32F3才够做到比较好的软件恒流效果,成本高开发周期长,而且触摸库似乎不支持F3,后来干脆就买带限流电阻的灯条,10块钱一条也不贵,不改变结构,直接上PWM占空比调光,样机就没管线性度的问题,下个版本已经改进。
触摸部分:触摸按键画小了,其中一个触摸按键灵敏度不够;滑动条按照他手册的设置了0.5+4+0.5的极板,发现并不适合,在滑动到最右端会从0跳回一个中间值,亮度突变。下个版本已经改进。
供电部分:我测试用的是明纬LRS系列12V3A开关电源,触摸没有问题。换到某宝买的12V2A塑料壳电源,按键正常,滑动条就不能操作了,怀疑由于塑料壳电源是两线的,与大地存在干扰信号,影响到触摸RC采集。检查该开关电源电路结构和用料都没有问题,示波器直接取输出地对大地信号,与明纬电源接近,并无明显毛刺。
解决思路目前有两个:1,重新买一个,或者改装成三线的电源,输出地通过222高压电容与大地相连,2,去掉电源里的3个二极管,把全桥变为半波整流,保证电源热地与零线一致,不知道是否可行。还有请各位大大们提供讨论和帮助!

-----------------------------来自图片的分割线-----------------------------------
干巴巴的文字总是令人厌烦,上图:



空板和塑料壳,板子大小按着80*50*21的塑料盒子设计的,刚好可以卡进塑料边框里,只要把板子完全按进去就能用了。
JLC打样回来发现丝印字符有问题,反正看不见,这次将就一下,需要准确字符还是要发gerber文件。



焊接好以后调试。贴片LED指示灯是反焊的,所有排针都不能穿过过孔,要保证板子另一面没有任何突起,否则贴进盒子就会把自己顶起来,增加的气隙会导致触摸结果不稳定以及灵敏度变差。这里反面应该全部force tenting的,新版本已经修复。



在盒子正面打两个孔,侧边挖槽,板子全部按进去。



某宝买的LED硬灯条和问题电源,LED灯条自带了限流电阻。



STM Studio是个不错的工具,这次20脚的STM8根本没法引出串口来观察波形,这个软件利用了它本身的SWIM调试口进行通信,直达内存,不占用CPU时间。如图是滑动条的位置数据波形。

以下视频是功能测试效果,手机渣拍轻喷。视频地址
http://v.youku.com/v_show/id_XMTUyMTk2ODYyMA==.html


-----------------------------废话结束的分割线-----------------------------------
参考贴:http://www.amobbs.com/forum.php?mod=viewthread&tid=4554348

参考资料:(基本是英文)
触摸设计提要(最新英文版)
触摸设计提要(坛里找到的中文版)
RC触摸方式工作原理
STM8开发板用户手册
ST触摸库开发手册


开源STM8F103F3版本的
原理图和PCB包:
代码包(IAR环境):


禁止商用!
还请多多交流!

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入中科因仑

本版积分规则

快速回复 返回顶部 返回列表