
人体感应小夜灯-红警2苏军图标
简介
基于数字型红外热释电(PIR)传感器、光敏电阻和STC8G单片机设计的人体感应小夜灯。
简介:基于数字型红外热释电(PIR)传感器、光敏电阻和STC8G单片机设计的人体感应小夜灯。开源协议
:CC BY 4.0
描述
(工程主页正在施工中,部分内容临时借用了相似的开源工程介绍,配图与实物有少许差异,将尽快完善......)
原理图和PCB仅供参考,近期还会进行一些改动。
视频介绍:
====================================================================
感应小夜灯-红警2苏军图标 外观效果展示视频:
https://www.bilibili.com/video/BV1hfCqYgEix/
PIR人体感应小夜灯 操作功能介绍视频:
https://www.bilibili.com/video/BV1NT4he9ErL
相关视频介绍:
《星月夜》《罗纳河上的星夜》外观效果展示视频:
https://www.bilibili.com/video/BV1cj421o7Bd
PCB灯光画触摸调光小夜灯焊接和组装过程演示:
https://www.bilibili.com/video/BV1Ht421P7V8
PCB灯光画 复刻教程(第一期:如何复刻现有的开源工程):https://www.bilibili.com/video/BV1SC411B7Vx
PCB灯光画 复刻教程(第二期:简单 PCB灯光画 的设计方法):https://www.bilibili.com/video/BV1QU411d7Ph
使用EDA中的2D或3D预览功能前请先保存文件!
工程简介:
====================================================================
灯光画是一种以光线为媒介的绘画艺术形式,由艺术家Hwang Seontae原创。它融合了光影、色彩和空间,为观者营造出独特的视觉体验。在这种艺术形式下,灯光不仅是为了提供照明,更是成为了艺术的一部分。以下是几幅常见的灯光画图片:
本工程使用以FR-4为基材的双面PCB板来呈现灯光画的效果,同时基于集成在PCB板上的 数字型红外热释电(PIR)传感器、光敏电阻、STC8G单片机 以及 LED照明电路 尝试制作出一款实用且美观的 人体感应小夜灯 。
工作模式:
- 夜间人体感应
- 全天人体感应
- 手动触摸控制
基本功能:
- PIR人体感应
- 触摸无极调光
- 照明延时调节
- 感光阈值调节 (调节夜间人体感应模式下白天与黑夜的判断阈值)
- 照明灯亮度缓冲
- USB Type-C/锂电池供电
照明灯色温:(两种色温LED灯珠二选一焊接)
- 正白光(6500k)
- 暖白光(3000k)
实物图片:
====================================================================
PIR传感器需要配合菲涅尔透镜使用:
型号推荐:白色8120-3
可以在淘宝买到:https://item.taobao.com/item.htm?_u=q397p25aff23&id=717803123647
使用和操作说明:
====================================================================
这里仅介绍如何使用小夜灯,详细功能请查看下文【单片机和软件介绍】章节。
也可以查看视频教程:https://www.bilibili.com/video/BV1NT4he9ErL
下图中是各个指示灯和开关按键的外观(图片与实物开关的位置有差异):
1.开启和关闭:
连接电池或插入USB供电线后,将拨动开关的连杆拨动到标有"开"的一侧,可以打开小夜灯。
打开小夜灯后工作指示灯会闪烁10秒左右之后熄灭,小夜灯进入夜间人体感应工作模式,夜间且感应到人体移动时照明灯会自动开启一段时间后熄灭,感应距离在4m左右。
此时可以通过短按触摸按键控制照明灯是否常亮。短按一次触摸按键照明灯进入常亮模式,同时工作指示灯也会常亮;再次短按触摸按键照明灯退出常亮模式,同时工作指示灯常灭。
如果需要关闭小夜灯,将拨动开关的连杆拨动到标有"关"的一侧即可。
请注意关闭小夜灯后,PCB板上依然带电,如需彻底断电请断开电池且拔出USB供电线。
2.调节照明灯亮度:
在工作指示灯常灭的情况下,短按 1 次微动开关,会进入调光状态,工作指示灯的亮度会类似呼吸灯样式逐渐变亮或变暗循环。(如果需要退出调光状态,可以再短按 3 次微动开关,使工作指示灯常灭)
此时可以通过长按触摸按键进行无极调光,长按后照明灯逐渐变亮,松开触摸按键后再次长按照明灯逐渐变暗。
工作指示灯状态 | 照明灯状态 | |
调光亮度上升档位 | 亮度逐渐上升循环 | 长按触摸按键,照明灯逐渐变亮。 |
调光亮度下降档位 | 亮度逐渐下降循环 | 长按触摸按键,照明灯逐渐变暗。 |
调整到合适的亮度后松开触摸按键,之后10秒内不进行任何操作,工作指示灯就会快速闪烁 2 次后熄灭,表示已经保存当前亮度设置。
3.调节照明灯延时:
在工作指示灯常灭的情况下,短按 2 次微动开关,会进入照明延时调节状态,此时可以通过短按触摸按键循环切换四挡不同的照明延时。(如果需要退出延时调节状态,可以再短按 2 次微动开关,使工作指示灯常灭)
下表中列出了四挡默认的照明延时时长和对应的指示灯状态,大家可以在文末附件中下载源文件,自由修改照明延时为 4秒~255秒。(没有外部晶振,计时有一定误差)
延时时长 | 工作指示灯状态 | 照明灯状态 | |
延时档位一 | 约4秒 | 最暗 | 灭 |
延时档位二 | 约12秒 | 最暗 | 半亮 |
延时档位三 | 约16秒 | 最亮 | 灭 |
延时档位四 | 约32秒 | 最亮 | 半亮 |
切换到需要的延时档位后,10秒内不进行任何操作,工作指示灯就会快速闪烁 2 次后熄灭,表示已经保存当前照明延时时长设置。
4.调节感光阈值和切换工作模式:
感光阈值用于在夜间人体感应工作模式下判断当前是白天还是黑夜。
在工作指示灯常灭的情况下,短按 3 次微动开关,会进入感光阈值调节状态,工作指示灯会以约1Hz的频率持续闪烁。(如果需要退出感光阈值调节状态,可以再短按 1 次微动开关,使工作指示灯常灭)
此时可以通过短按触摸按键循环切换下表所示的两档功能。
功能说明 | 工作指示灯状态 | 照明灯状态 | |
档位一 | 切换为夜间人体感应模式,并将当前环境亮度设置为感光阈值。 | 1HZ闪烁 | 灭 |
档位二 | 切换为全天人体感应模式。 | 1HZ闪烁 | 半亮 |
切换到需要的延时档位后,10秒内不进行任何操作,工作指示灯就会快速闪烁 2 次后熄灭,表示已经保存当前工作模式和感光阈值。
5.供电和电池充电:
不安装电池时,可以使用输出为直流5V的手机电源适配器和USB Type-C电源线直接供电即可,此时充电指示灯为微亮或闪烁状态。
连接电池后,可以用输出为直流5V的手机电源适配器充电,支持边充电边放电,电池未充满时充电指示灯指示灯常亮,电池充满后充电指示灯熄灭。连接电池后需要插上充电线激活一下。
当电池即将没电时,在感应到人体移动或按下触摸按键时工作指示灯就会快速闪烁 3 次后熄灭,提示需要进行充电。
单片机和软件介绍:
====================================================================
1.单片机说明
单片机主控选用的是SOP-8封装的STC8G1K08A。之前复刻其他开源工程剩下了几颗,为了避免浪费就选它了,6个I/O口也刚刚好够用。替换成STC8G1K17A也可以,封装和引脚顺序是一一对应的。
购买单片机时注意要带有"A"后缀的,STC8G1K08A才有ADC功能。而STC8G1K08没有ADC,无法用于本工程中。
2.单片机控制部分电路
控制电路部分,单片机通过实时监测各个按键及传感器的状态,依据预设的控制程序逻辑,向工作指示灯及LED照明电路发送具有不同占空比的PWM信号,从而控制小夜灯的工作状态。
触摸按键部分使用了TTP233芯片,检测到有手指触摸时,会发出高电平信号给单片机P3.3引脚。也可以使用TTP223触摸芯片替代。
按下微动开关后,单片机的P3.0引脚会检测到低电平信号.
人体感应功能是靠数字型PIR传感器实现的,在感应到人体移动时会直接输出高电平。在PIR传感器输出引脚上的LED_P指示灯用于在测试阶段方便观察输出是否正常,测试结束后需要拆除以降低静态功耗。
同时需要注意的是,菲涅尔透镜是必须要安装的,否则传感器会受到很大干扰。
环境亮度采用光敏电阻进行检测,使用STC8G1K08A集成的ADC检测光敏电阻上的电压。
3.软件程序
控制程序部分使用状态机的思路进行编写,目前只是初步实现了基础功能,还有很多地方需要优化和完善。
代码完全开源,可以在文末附件中下载(控制程序源代码_KeiluV5_C51_240820.zip),也请各位大佬帮忙提出修改建议。
下面是各状态转移的示意简图,跳转条件等没有画全,仅作参考,以实际程序为准。
1.上电后执行的初始化、自检等状态
2.数字型红外热释电(PIR)传感器感应到人体移动后执行的几个状态
3.短按触摸按键后执行的几个状态
4.短按微动开关后执行的几个状态
单片机固件程序烧录:
====================================================================
STC8G1K08A单片机可以使用CH340模块下载程序。
- CH340模块淘宝购买链接(仅供参考):https://m.tb.cn/h.gNsg4cnQYsYZz9C?tk=Y1rr3UdBdvU
软件这里使用STC-ISP进行演示,可以在文末 附件 中下载软件和CH340驱动(STC_ISP.zip)。
- 解压后鼠标双击(\STC_ISP\USB to UART Driver\CH340_CH341\ch341ser.exe)安装驱动
- 解压后鼠标双击(\STC_ISP\stc-isp-15xx-v6.87D.exe)打开软件
面板PCB上预留有单片机烧录接口,即下图红框中的GND、Tx、Rx、3V3四个焊盘,可以在上面焊接2.54mm间距的1x4P排针,并使用杜邦线与CH340模块相连接。
- 1x4P排针淘宝购买链接(仅供参考):https://m.tb.cn/h.gNs5k4ClDnENp5U?tk=ioWt3UdBzUY
同时需要注意下载固件前将下图绿框中的将拨动开关连杆拨动到标记有“关”的一侧。
将CH340模块插入电脑后,需要在STC-ISP软件中选择单片机型号为STC8G1K08A-8PIN,然后点击“打开程序文件”按钮,程序文件(project_240820.hex)可以在文末 附件 中下载。其他选项设置成和下图所示一致。
接下来的步骤需要按顺序进行:
- 1. 连接 CH340模块上的GND 与 PCB面板上的GND,即图中黑线
- 2. 连接 CH340模块上的RXD 与 PCB面板上的Tx,即图中绿线
- 3. 连接 CH340模块上的TXD 与 PCB面板上的Rx,即图中蓝线
- 4. 点击 STC-ISP软件 中的“下载/编程”按钮。
- 5. 连接 CH340模块上的3V3 与 PCB面板上的3V3,即图中红线
下载完成后,STC-ISP软件会提示“操作成功!”。断开所有杜邦线并拆除1x4P排针即可。
如果下载失败或STC-ISP软件卡在“正在检测目标单片机 ... ”,断开所有杜邦线连接并点击“停止”按钮后,重复以上5个步骤再次尝试即可。
设计图
BOM
ID | Name | Designator | Footprint | Quantity |
---|---|---|---|---|
1 | 4.7uF | C1 | C0603 | 1 |
2 | 10uF | C2,C3,C5,C12 | C0603 | 4 |
3 | 100nF | C4,C7,C8,C10,C11,C13 | C0603 | 6 |
4 | 22uF | C6 | C0603 | 1 |
5 | 10pF | C9 | C0603 | 1 |

评论