本帖最后由 zsw3721 于 2022-2-18 23:28 编辑
2022年2月18日本次更新:
截至目前使用了半个多月,可以说是非常好用和方便的。电池很耐用,睡前使用一会再设置为声控触发模式,晚上带娃要经常点亮灯,充一次电基本上可以使用一个星期。这段时间进行了多处优化,程序升级为V1.6版。
1. 调整为5档PWM亮度调节,分别为20%、40%、60%、80%、100%亮度
2. 增加声控触发过滤,在1秒内需要3次及以上的外部中断才能触发亮灯(不会影响正常声控触发,因为一个声音比如一声咳嗽实际会有非常多个中断产生),消除了单个偶发的杂波干扰导致可能的意外亮灯或反复触发无法熄灯
3. 声控触发亮灯后60秒后才允许声控再触发,即每次声控亮灯3分钟的后两分钟完全平静即可自动熄灯
4. 声控触发亮灯后,距自动熄灯剩余10秒时亮度自动降低(至10%亮度)
5. 长按亮度调节按键2秒以上,亮度调整为10%亮度
6. 定时器T0(定时1mS)初值纠正为12MHz 1T的配置(之前程序为11.0592MHz下的配置)。程序下载时应选择12MHz时钟频率。
7. 增加MCU进掉电模式以降低功耗:声控亮灯3分钟自动熄灯后即控制MCU进入掉电模式,当有外部中断(即声音信号)时MCU唤醒并正常触发亮灯。
程序 V1.6 增加声控待触发状态下进掉电模式以降低功耗.rar
(45.88 KB, 下载次数: 73)
2022年1月28日更新一次:
试用了几天后,优化了两处地方,程序升级为V1.4版。
1. 声控触发亮灯后延时3分钟自动熄灯,修改为自动熄灯前如果又检测到声音,重新计时3分钟
2. 按键从常亮模式切换到声控待触发模式,默认熄灯,但是按键的声音会导致切到声控待触发模式后直接触发亮灯,现修改为按键切到声控待触发模式后等待1秒钟才允许被触发亮灯
以下为2022年1月27日原始帖:
最近,老婆大人提了一个需求,要一个声控的小夜灯。在某宝搜索一番无果,于是自己动手设计。
老规矩,先上最终完工的实物图。使用三天的效果:非常好,谁用谁知道。
下面简单介绍一下制作过程。
首先是理清需求。
1. 需要有内置电池供电,使用时可随意摆放位置
2. 有常亮模式和声控亮灯模式
3. 声控亮灯模式使用时,小声音不能触发,要一定强度的声音才能触发亮灯
4. 声控亮灯触发后,延时3分钟自动熄灭,熄灭前最后10秒亮度自动调至最低
5. 支持多档亮度调节,灯光无闪烁感
然后是硬件设计。
1. 电池好解决,以前网上购买的5V升压锂电池就很好用
2. 声音检测模块可以购买现成的,灵敏度可调节
3. 使用MCU外部中断处理声音检测模块的信号
4. 使用软件PWM方式进行亮度调节,PWM频率100Hz就足够了
5. 两个按键,分别控制亮灯模式和亮度调节
6. 一共只需要4个IO口,用我熟悉的STC15F104W绰绰有余
7. LED灯可以购买现成的USB LED灯,设计一个PMOS电路用于控制LED的供电
下面是设计好的原理图。
设计好的PCB。
嘉立创免费打样,焊好并准备好材料。
下面这个是购买的声控模块,有声音时输出低电平。直接焊在我的控制板上。以后如果有机会做升级版,会把这个声控模块画到我的电路中。
然后开始写程序。功能比较简单,两百多行代码就搞定。用了一个定时器,定时1mS,然后中断里每10mS扫一次按键;PWM功能也在定时器中实现。
下面是代码。附件有整套资料,如果你想做一个,按我的资料放心去做保证成功。如果你做出来了,欢迎贴个图分享。
后注:以下为原始程序,比V1.4版更早。
全部资料51hei下载地址:
声控小夜灯原理图PCB和程序全套资料.rar
(11.34 MB, 下载次数: 139)
|