今天,向大家介绍一款常用在智能楼宇上的调光开关面板的DIY过程,这是一款三位一体的面板, 其大小相当于3个普通家用86面板,包含3个调光开关。开关采用电容触摸感应方式,没有机械部分,便于清洗,没有强电,十分安全。 按(触摸)一下开,按一下关,按住不放可实现调光,每个开关有8个LED指示开关状态。开灯时8个LED作为亮度指示条,关灯时LED处在“呼吸”态, 很有科技感,夜间起床也不至于摸不到开关。 但这种开关面板不能用作一般家里常用的墙面开关,它其实是智能家居的一个组件, 需要采用专门的智能家居布线方案。如果你正在装修新房子,考虑采用智能家居方案,不妨自己动手来DIY一款属于自己的开关面板。 这款面板采用施耐德电气公司的Modbus标准协议,支持Modbus协议的产品有很多。该面板可同这些设备组网,构建智能家居系统。
图1 智能调光开关PCB实物
图2为该智能调光开关的原理图,其核心部件是型号为STM32F103C8T6的MCU,24个LED灯直接由MCU驱动。 一片SP3485提供RS485接口,通过Modbus(RCU)协议连接网络。右下方的D7~D12、R6~R11构成三路电容触摸感应电路。X1509将输入的6~30V电源 转换成系统所需要的3.3V。
图2 智能调光开关原理图
图3为该智能调光开关的一路电容感应电路的原理图。400Khz信号由MCU产生,信号正半周电平是VCC,负半周电平是 0V,不考虑触摸按钮和二级管正向压降影响。在信号正半周时,电流通过R10、D9对C12充电,充电电流:
I充 = (VCC - VC12)/R10 (1)
信号负半周时C12通过R11、D12放电,放电电流:
I放 = VC12/R11 (2)
VC12稳定时,I充=I放,又因为R11 = R10,故 VC12=VCC/2
如果手指靠近触摸按钮,相当于增加了一个旁路电容C'。在400Khz信号的负半周,C'上的电荷通过D12泄放,C'上的 电压归0,在400Khz信号的正半周,原先对C12充电的一部分电流通过C'旁路,这将导致C12上的电压下降。这个电压被送到MCU的ADC 转换成数字信号,就能检出“触摸”操作。
图3 电容感应开关原理图
表1 智能调光面板元件清单
器件 | 封装 | 规格 | 数量 |
---|---|---|---|
电解电容 | SYF8 | 1000uF 10V | 1 |
电容 | 0805 | 22pF 50V COG 5% | 2 |
电容 | 0805 | 100nF 50V Y5V 20% | 9 |
电解电容 | SYF8 | 330uF/35V 10*10mm | 1 |
电容 | 0805 | 1uF 50V X7R 10% | 1 |
电阻 | 0805 | 330ohm 5% | 24 |
电阻 | 0805 | 5.1K 5% | 2 |
电阻 | 0805 | 10K 5% | 1 |
电阻 | 0805 | 1M 5% | 6 |
电感 | L_1210 | 1uH | 1 |
电感 | NL70 | 150uH | 1 |
二极管 | DO-S1 | 1N4148 (SMT 玻璃) | 6 |
TVS | DO-214AA | SMBJ28A | 1 |
TVS | DO-214AA | SMBJ6.5CA | 1 |
IC | SOP-8 | SP3485 | 1 |
二极管 | DO-214AC | SR240 | 1 |
TVS | DO-214AA | SMBJ6.5A(KK) | 2 |
二极管 | DO-S1 | 1N4007 | 1 |
发光二极管 | 0805D | 白发蓝 | 24 |
IC | SOP-8 | XL1509-3.3 | 1 |
IC | LQFP48 | STM32F103C8T6 | 1 |
PPTC | 1206 | 100mA | 2 |
PPTC | 1812 | 500mA | 1 |
接插件 | XH4-L | KF15EDG3.81x4 卧式 | 1 |
晶振 | 5032 | 8M | 1 |
图4为该智能调光开关PCB图,尺寸为86x258mm。红层器件全部集中在中央区域,这样,只需要一个预埋的86盒就 可安装。左右两边的两个感应片引线比较长,注意走线同地层的距离不要过近,否则,相当于已有一个寄生的旁路电容,影响触摸灵敏度。 也不要过远,否则,导线相当于一个天线,易受空间电磁干扰。
图4 智能调光开PCB图
首先,下载程序镜像存盘备用。
然后,你需要一个Jlink下载器(某宝上有卖)。将Jlink一端通过4芯排线连接到目标板上,另一端通过USB线连接电脑主机。
图5 JJlink下载器
最后,我们需要使用J-Flash Lite工具软件。可以从官网下载完整的J-Link工具包。 安装过程不表。打开J-Flash Lite,在设备选项中选择我们的目标芯片型号(STM32F103C8),接口选择SWD/4000Khz。Data File中选择刚才我们下载解压的镜像文件i-panel.sres, 点击“Program divice”完成编程下载。
图5 J-Flash Lite器件选择
接通设备电源(6~30V均可),面板开关应处于“关”态,此时每路8个LED灯应处在“呼吸”模式,即渐亮→渐暗→渐亮交替 进行,节奏类似人的呼吸。用手指靠近中心的金属感应圆盘(不必接触),然后马上离开,面板反转成“开”态,此时每路8个LED灯全部点亮, 表示调光到100%。当手指再次靠近感应圆盘时,面板再次反转成“关”态。如果,手指放在感应圆盘附近不离开,则进入调光模式,LED灯点亮的 个数在1到8之间来回变化,对应调光亮度在0%~100%之间变化,此时拿开手指,亮度就定在某一值(例如亮5个LED)。以后再切换“开关”状态,“开” 态的亮度就定在这个值上。
该智能开关面板实际仅仅是一个输入设备,真正执行“调光开关”功能的是其他Modbus设备(如Modbus数字量开关)。 只要本智能开关面板符合Modbus协议,就可同这些设备实现组网。为了验证本设备的Modbus功能,可以借助“Modbus Poll”小软件。本设备的Modbus 寄存器表如下。
如果忘记通讯参数。可将4Pin调试信号的CLK和GND短接后上电,就可以以默认参数启动设备。
表2 智能调光面板Modbus点表
保持寄存器 | 地址 | 类型 | 说明 |
---|---|---|---|
40001 | 0 | word | 解锁开关,写入非0解锁后允许写40002~40003。10秒后自动锁定(回0) |
40002 | 1 | word | Modbus地址,缺省置254是永久有效的,实际应用可另配一个地址。 |
40003 | 2 | word | 波特率,0:600,1:1200,2:2400,3:4800:4:9600(缺省),5:19200,6:38400,7:57600,8:115200 |
40004 | 3 | word | 开关1状态,高半字节:开关状态(1/0),低半字节:开度百分比(0~100) |
40005 | 4 | word | 开关2状态。 |
40006 | 5 | word | 开关3状态。 |