一颗LED灯+8位单片机+滚珠开关:做一个“一碰就亮”的发光盒

项目简介

最近我做了一个很小的桌面发光盒。

它平时处于休眠状态,把盒子拿起来再轻轻放下,正面的"白搞电子"四个字就会亮起。灯光持续几秒后自动熄灭,再次触发时会切换另一种灯光效果。

整个装置没有显示屏,也没有复杂的传感器,主要由以下几部分组成:

  • 一颗RGB LED;
  • 一颗8位单片机;
  • 一个滚珠震动开关;
  • 一颗纽扣电池;
  • 一套3D打印外壳和导光结构。

这个项目的电路并不复杂,真正花时间的反而是外壳、电路板固定和光线扩散。

发光盒演示视频

一、硬件尺寸与设计目标

原始电路板的长和宽都在23毫米左右,加上元件和纽扣电池后,整体高度约13毫米。

最初它只是一块能够震动发光的小板。我希望给它增加一个完整外壳,让它变成可以摆在桌面上的小物件,同时满足以下几个要求:

  1. 平时保持低功耗休眠;
  2. 移动盒子时自动唤醒;
  3. 发光几秒后自动关闭;
  4. 每次触发切换一种灯效;
  5. 正面四个字能够被一颗LED尽量均匀地照亮;
  6. 电路板能够拆装,外壳方便打印。

二、滚珠开关如何唤醒单片机

滚珠开关竖直安装,一端接单片机输入端,另一端接地。

盒子静止时,单片机很快进入休眠。当盒子被拿起或落下时,内部滚珠因为重力和惯性短暂移动,使开关状态发生变化,从而产生唤醒信号。

单片机被唤醒后的基本流程如下:

text 复制代码
静置休眠
  ↓
盒子发生移动
  ↓
滚珠开关状态变化
  ↓
单片机唤醒并播放灯效
  ↓
延时数秒
  ↓
关闭LED并重新休眠

这种方案不需要单独的按键,也不需要持续轮询传感器,非常适合纽扣电池供电的小装置。

三、灯效逻辑

RGB灯珠由三个输出脚控制。每次触发完成后,程序保存当前灯效编号,下次唤醒时自动切换到下一种效果。

为了让灯光看起来不完全相同,我保留了三种节奏较缓和的显示方式。每次亮灯持续约5至10秒,结束后关闭所有颜色并重新进入休眠。

在这种小装置中,灯效不需要复杂。相比持续高亮,短暂亮起、自动熄灭,更符合"一碰就回应一下"的交互感觉,也能降低纽扣电池的消耗。

四、真正的难点是一颗灯怎样照亮四个字

最初的外壳思路很简单:

  • 用棕色材料打印盒体;
  • 在正面镂空"白搞电子"四个字;
  • 用乳白色半透明材料封住文字;
  • 将LED放在文字背后。

实际打印后发现,一颗LED会产生非常明显的中心亮点。靠近灯珠的位置很亮,远离灯珠的位置则比较暗,四个字很难同时看清。

为此,我对结构做了几项调整:

1. 增加白色反光结构

在灯珠周围加入白色反光面,让部分光线先向四周反射,减少光线只集中在正前方的问题。

2. 增加乳白色扩散层

文字背后不直接面对灯珠,而是增加一层乳白色扩散结构,用来柔化中心亮点。

3. 减薄灯罩帽

灯罩太厚会明显损失亮度,因此后续将灯罩边框和透光部分适当减薄。

4. 将文字面板与外壳分离

最初文字顶面与盒体是一体的,切片时需要大量支撑,拆除支撑还容易损伤文字。后来把文字面板设计成独立零件,既方便打印,也方便以后更换显示内容。

五、电路板如何固定

早期尝试使用卡扣,但实际打印后卡扣没有可靠地压住板子,而且安装反光罩时容易受到阻挡。

最后改成了更直接的方式:

  • 通过定位槽限制电路板前后左右移动;
  • 根据灯珠在PCB上的实际偏移调整板子位置;
  • 从后方安装一个独立盖板,将电路板压在定位槽内;
  • 单独增加较薄的灯罩帽,覆盖灯珠并承担扩散作用。

这种结构虽然没有复杂的机械卡扣,但拆装更容易,也更适合小尺寸打印件。

六、最终效果与复盘

现在,把盒子拿起来再轻轻放下,正面的"白搞电子"就会亮起。几秒后灯光自动关闭,再次拿起时会切换另一种灯效。

它在白天强光下不会特别醒目,也不适合作为照明灯。但放在桌面、书架或稍暗的环境中,短暂亮起的效果刚刚好。

这次项目让我感受最深的一点是:

让电路实现功能,往往只是第一步。真正把它做成一个完整物件,还要继续处理结构、装配、打印方向、固定方式和光路。

对于类似的小型发光装置,可以优先从以下几方面检查:

  1. 灯珠是否正对显示区域;
  2. 是否存在明显的中心亮点;
  3. 反光层和扩散层是否有效;
  4. 电路板是否方便拆装;
  5. 透明件是否过厚;
  6. 支撑结构会不会损坏外观面。

项目本身并不大,但从电路板到成品的这段过程,包含了不少值得复用的经验。

我是阿白,感谢你的观看。

相关推荐
极客 - L U3 小时前
卡尔曼滤波从零到精通
c语言·数据结构·单片机·嵌入式硬件·mcu
AMASENSYS艾马斯3 小时前
变频器滤波器选型与EMC合规建议
驱动开发·单片机·其他·硬件工程·精益工程
码小文5 小时前
CAM350使用笔记(6)---Gerber文件铺铜间距检查
嵌入式硬件·cam350软件·cam350使用笔记
Yiran_G6 小时前
双频 Wi-Fi 6 + 蓝牙 5.4:无声讯通 WS8712 模组的开发与集成要点
网络·嵌入式硬件·物联网·智能家居
光子物联单片机7 小时前
ESP32传感器模块编程实践(一)DIY智能WIFI视频控制小车
嵌入式硬件·esp32·智能硬件·硬件
2501_922639587 小时前
率能半导体 SS6628E直流双向马达驱动芯片:20V/7A,覆盖电子锁、玩具、无线充电、机器人四大应用场景
单片机·嵌入式硬件·硬件工程
硅基造物主7 小时前
STM32 从 0 到 1 做智能家居(五):工程结构与代码骨架
stm32·单片机·嵌入式硬件·智能家居
深圳老胡7 小时前
STM32F103 硬件 SPI 与软件 IO 模拟 SPI 最高速度差异详解
笔记·stm32·单片机·代码规范·1024程序员节
smartpi_ai8 小时前
机芯智能离线语音模块实战问答:SU-03T、CI-03T、SU-63T 与 JX-A7T 高频问题排查
人工智能·单片机·嵌入式硬件·ci/cd·语音识别
2501_922639588 小时前
率能半导体 SS6635E直流双向马达驱动芯片:30V/4.5A,覆盖电子锁、玩具、无线充电、机器人四大应用场景
单片机·嵌入式硬件·硬件工程