立创EDA实战:桌面床头可充电LED触控灯DIY全流程解析

发布时间:2026/5/19 13:14:13

立创EDA实战:桌面床头可充电LED触控灯DIY全流程解析 立创EDA实战桌面床头可充电LED触控灯DIY全流程解析大家好我是老李一个喜欢捣鼓硬件的嵌入式工程师。最近有不少朋友问我想自己动手做一个实用的小玩意儿既能练手又能实际用起来有没有什么好项目推荐我第一个想到的就是这个“桌面床头可充电LED触控灯”。它功能实用——充电、触控开关、无级调光一应俱全电路又不复杂非常适合电子爱好者和嵌入式新手作为第一个完整的硬件项目来实践。今天我就手把手带大家走一遍这个项目的全流程。咱们不空谈理论直接从零开始用立创EDA这个国产好工具完成从电路设计、PCB画板到元件焊接、功能调试的所有步骤。只要你跟着做就能做出一个属于自己的、颜值和功能都在线的小夜灯。1. 项目整体规划与核心功能在动手画图之前咱们得先想清楚要做个什么东西它应该有哪些功能。这就像盖房子先画蓝图能避免后面走弯路。这个触控灯的核心目标很明确一个用电池供电的LED灯可以通过触摸来开关和调节亮度并且电池没电了可以很方便地充电。基于这个目标我把它拆解成了几个关键的功能模块电源与充电管理这是设备的“心脏”。我们需要一块锂电池作为能量来源并且要有一个可靠的充电芯片确保电池能安全、高效地充电同时还要有指示灯告诉我们充电状态。触控感应这是设备的“感知器官”。我们需要一个电路来检测人的触摸动作并将其转换成单片机可以理解的信号。LED驱动与调光这是设备的“执行机构”。我们需要用单片机产生PWM信号来控制LED的亮度实现从暗到亮的平滑调节。主控大脑需要一个单片机MCU来协调以上所有模块。它要读取触控信号根据逻辑改变PWM输出从而控制LED。为了让大家更直观地理解各个部分是如何协同工作的我画了一个简单的系统框图。你可以把它看作是这个项目的“交通路线图”[Micro USB接口] | v [充电管理芯片] --- [充电状态指示灯] | v [锂电池] --- [电源开关] | v [单片机(MCU)] | | | | v v [触控感应电路] [PWM调光输出] | | v v [触摸金属片] [LED灯珠]工作流程是这样的插入USB线充电芯片开始给锂电池充电并通过指示灯显示状态比如红灯亮表示正在充电绿灯亮表示充满。打开电源开关锂电池为整个系统供电。当你触摸金属片时感应电路会产生变化单片机检测到这个变化就会改变其PWM输出引脚的占空比。PWM信号控制着流过LED的电流大小从而实现了亮度的变化。连续触摸亮度就会循环变化例如关 - 低亮 - 中亮 - 高亮 - 关。有了这个清晰的蓝图咱们就可以进入具体的电路设计了。2. 核心电路设计与元件选型这一部分咱们来深入看看每个功能模块的电路是怎么搭的以及为什么选择这些元件。我会尽量用大白话把原理讲清楚。2.1 电源与充电管理电路锂电池娇贵过充过放都容易损坏甚至有危险所以一个靠谱的充电管理芯片是必须的。在这个项目里我选用了一颗非常常见且廉价的芯片TP4056。它堪称锂电池充电的“瑞士军刀”单节锂电池充电专用外围电路极其简单。它的核心功能就是恒流恒压充电。当电池电压很低时它会以恒定电流比如1A快速充电当电池电压接近4.2V时转为恒定电压模式慢慢把电池“喂饱”直到电流变得很小判定为充满。来看看具体的电路连接// 这是一个示意图并非实际代码用于说明TP4056的典型接法 1. USB (5V) --- TP4056.VIN // USB电源输入 2. TP4056.BAT --- 锂电池正极 // 连接电池正极 3. TP4056.BAT- --- 锂电池负极 // 连接电池负极同时也是系统GND 4. TP4056.CHARG --- 红色LED通过限流电阻 // 充电状态指示 5. TP4056.STDBY --- 绿色LED通过限流电阻 // 充满状态指示注意TP4056的BAT-引脚就是系统地GND。这意味着我们的整个电路的地和电池的负极是连在一起的这在画PCB和焊接时要特别注意。充电指示灯逻辑红灯亮芯片正在给电池充电。绿灯亮电池已经充满。两灯都灭未接入USB电源。电池我选择了一颗常见的3.7V/18650锂电池容量可以根据你对续航的需求选择比如2000mAh或3000mAh。在电池输出端我串联了一个轻触开关作为整个系统的总电源开关不用的时候可以彻底断电。2.2 触控感应电路触控方案有很多有专门的触摸芯片也可以用单片机的触摸感应外设。为了让电路更简单、成本更低我选择了一种非常经典的RC充放电检测法利用一个通用IO口配合简单的阻容元件就能实现。它的原理是这样的单片机的一个IO引脚通过一个较大阻值的电阻例如1MΩ或10MΩ连接到触摸金属片。这个引脚平时被程序设置为“推挽输出低电平”将金属片上的电荷拉低。当需要检测触摸时程序将这个引脚快速切换为“高阻输入”模式并通过内部或外部的一个小电容比如10pF开始对金属片充电同时启动一个计时器。由于人体相当于一个接地的电容当手指触摸金属片时相当于并联了一个大电容到地这会显著减慢充电速度。单片机通过测量充电到逻辑高电平所需的时间就能判断出是否发生了触摸。这个方案的优势是成本极低只需要1个电阻和1个电容。但它在程序上需要一些技巧并且抗干扰能力相对专业芯片要弱一些。不过对于我们这个桌面小灯的应用场景完全足够了。在立创EDA中这个电路看起来就是一条线单片机引脚 - 电阻如10MΩ - 触摸焊盘。触摸焊盘旁边再通过一个小电容如10pF接地。2.3 LED驱动与PWM调光电路LED不能直接接在单片机引脚上因为单片机引脚的驱动能力有限通常只有20mA左右而我们的LED可能需要更大的电流才能达到足够的亮度。所以我们需要一个“驱动器”——这里我选择了最常用的N-MOS管比如AO3400。它体积小导通电阻低非常适合作为开关使用。电路连接单片机的PWM输出引脚连接到MOS管的栅极G。LED灯珠的正极通过一个限流电阻接到电池正极系统电压VCC。LED灯珠的负极连接到MOS管的漏极D。MOS管的源极S连接到地GND。工作原理当单片机PWM引脚输出高电平时MOS管导通LED、限流电阻、MOS管形成回路LED点亮。当PWM引脚输出低电平时MOS管关闭LED熄灭。通过高速切换这个开关比如每秒几千到几万次并改变高电平所占的时间比例占空比人眼由于视觉暂留效应就会看到不同亮度的光。占空比越大亮度越高。提示限流电阻的阻值需要计算。假设我们使用一颗3V/20mA的LED系统电压为锂电池满电4.2V。那么电阻需要分担的电压是 4.2V - 3V 1.2V。根据欧姆定律 R V/I 1.2V / 0.02A 60Ω。我们可以选择一个接近的标准值如62Ω或68Ω。电阻的功率 P V*I 1.2V * 0.02A 0.024W选用常见的1/4W0.25W电阻绰绰有余。2.4 主控单片机选型对于这个项目主控单片机的需求很简单至少需要1个普通的IO口用于触摸检测1个能输出PWM的IO口用于调光。几乎任何一款单片机都能满足。我选择了STC8G1K08原因有几点国产芯片性价比高容易购买。STC8系列性能不错1T 8051内核速度比传统STC89C52快很多。封装小巧如SOP8适合做这种小型化产品。它完全具备我们需要的功能甚至绰绰有余。当然你也可以选择你熟悉的任何单片机比如STM32F103C8T6ARM Cortex-M3、ATtiny85AVR或者ESP8266带Wi-Fi等等。只要引脚资源够用程序逻辑都是相通的。3. 立创EDA原理图与PCB设计实战电路想清楚了现在打开立创EDA咱们把想法变成图纸。3.1 创建工程与绘制原理图首先在立创EDA中新建一个工程命名为“可充电LED触控灯”。放置元件在左侧的元件库中搜索并放置我们选好的所有元件。比如搜索“TP4056”、“STC8G1K08”、“AO3400”、“LED”、“电阻”、“电容”、“USB Micro接口”、“18650电池座”、“轻触开关”等。小技巧立创EDA的元件库非常强大大部分常用元件都有现成的符号和封装。放置元件时尽量选择带有LCSC编号立创商城编号的这样后面采购和生成BOM表会非常方便。连线根据上一节设计的电路用“导线”工具将各个元件的引脚连接起来。记得给重要的网络取个名字比如“VCC”、“GND”、“PWM_LED”、“TOUCH_SENSOR”。标注参数给每一个电阻、电容填上计算好的阻值和容值。给电源网络标上电压。检查ERC画完原理图后一定要使用“工程 - 电气规则检查(ERC)”功能。它能帮你找出一些常见的错误比如引脚未连接、电源冲突等。3.2 PCB布局与走线要点原理图检查无误后点击“设计 - 转换到PCB”就会进入PCB编辑界面。元件会堆在一起需要我们手动摆放并连接铜线走线。布局原则非常重要模块化布局把功能相关的元件放在一起。比如USB接口、TP4056芯片、充电指示灯、电池座这些属于“电源充电模块”应该集中放在板子的一端或一个角落。信号流走向尽量让信号的流向是直线的、顺畅的。例如触摸焊盘 - 触摸电阻/电容 - 单片机触摸引脚单片机PWM引脚 - MOS管栅极限流电阻 - MOS管 - LED焊盘。考虑实物结构USB接口、开关、触摸金属片、LED灯珠的位置必须和你的外壳设计匹配在布局时就要想好它们最终在实物上的位置。先大后小先放置好有固定位置要求的元件接插件、开关、灯珠再摆放芯片最后是电阻电容这些小元件。走线技巧电源线要粗VCC电池正极和GND地线是电流的主要通道走线要尽可能宽。我一般会使用30mil约0.76mm或更宽的线宽。信号线可以细像触摸信号、PWM信号这类电流很小的线用10-15mil0.25-0.38mm就够了。地平面铺铜这是提升电路稳定性的关键一步在大部分走线完成后在顶层和底层没有走线的空白区域进行“铺铜”并将其连接到GND网络。这能提供一个稳定的地参考减少噪声干扰尤其是对触摸感应电路有益。避免锐角走线转弯时尽量用45度角或圆弧避免90度直角这在高频下会影响信号质量。3.3 设计检查与打样文件输出PCB画完后别急着下单打样务必做好检查DRC检查运行“设计 - 设计规则检查(DRC)”确保线宽、线距、孔径等都符合PCB厂家的工艺要求嘉立创的免费打样有明确规则。3D预览多用3D预览功能从各个角度看看元件布局是否合理有没有元件在空间上冲突。核对封装双击每个元件再次确认其PCB封装是否正确特别是引脚间距和焊盘大小。检查无误后就可以导出生产文件了在立创EDA中进入“制造”面板。生成Gerber文件这是发给PCB厂的标准文件。生成BOM物料清单和坐标文件这在你后续使用立创SMT贴片服务或自己采购元件时非常有用。最后在嘉立创PCB下单平台上传Gerber文件选择你想要的板子参数如板厚、颜色、工艺就可以下单等待板子制作了。4. 焊接、组装与程序调试大约一周后漂亮的PCB板就到手了。接下来是动手环节。4.1 焊接顺序与技巧建议按照“先贴片后直插先矮后高”的顺序焊接焊接贴片芯片首先焊接最小的元件如TP4056、单片机、MOS管。使用烙铁和焊锡丝配合助焊剂会轻松很多。对于SOP8这类封装可以采用“拖焊”技巧。焊接贴片阻容元件然后是0805或0603封装的电阻电容。焊接直插元件和接插件最后焊接USB座、电池座、轻触开关、LED灯珠以及作为触摸感应的金属片可以用一个铜柱或者一块小铜皮。检查短路和虚焊焊接完成后强烈建议用万用表的“通断档”仔细检查电源VCC和地GND之间是否短路检查每个元件的引脚是否都焊牢了。4.2 单片机程序编写要点程序是项目的灵魂。这里我以STC8G1K08为例讲讲核心逻辑。其他单片机思路类似。程序核心任务初始化配置系统时钟将PWM引脚如P3.3初始化为PWM输出模式将触摸检测引脚如P3.2初始化为准双向口先输出低再切高阻输入。触摸检测函数实现前面提到的RC充电时间检测法。编写一个函数返回触摸引脚从低电平充电到高电平所花费的时间。通过对比“无触摸”时的基准时间和“有触摸”时的时间来判断触摸是否发生。为了抗干扰通常需要连续多次检测到触摸才判定为有效。主循环逻辑// 伪代码逻辑 while(1) { if(检测到有效触摸) { 延时消抖(约50ms); // 防止一次触摸被误判为多次 触摸次数; if(触摸次数 1) { 设置PWM占空比为30%; // 低亮 } else if(触摸次数 2) { 设置PWM占空比为70%; // 高亮 } else if(触摸次数 3) { 设置PWM占空比为0%; // 关闭LED 触摸次数 0; // 重置循环 } // 可以添加更多档位如4档关-低-中-高-关 } 延时一段时间(如10ms); // 主循环延时降低CPU占用 }PWM配置根据数据手册配置定时器产生一个频率在几百Hz到几KHz的PWM信号。频率太低LED会闪烁频率太高可能超出MOS管开关速度。1KHz左右是个常用的值。踩坑提醒触摸检测的灵敏度需要仔细调试。电阻电容的值如10MΩ和10pF、充电时间的阈值都需要根据你的具体PCB布局和触摸金属片大小来实验确定。一开始可能不灵敏或太灵敏多调整几次参数就能找到最佳值。4.3 功能测试与优化焊接并下载程序后就可以上电测试了充电测试插入USB线观察红绿指示灯是否符合“红灯充电绿灯充满”的逻辑。开关机测试打开电源开关系统应上电。触摸金属片LED应能按预设逻辑改变亮度。调光平滑度测试观察LED在不同亮度档位下是否有闪烁调光变化是否平滑。续航测试充满电后让它工作在中等亮度看看能亮多久是否符合预期。如果一切正常恭喜你一个由你亲手设计制作的触控灯就诞生了你可以给它设计一个3D打印的外壳或者找一个现成的漂亮盒子装起来放在床头或桌面成就感绝对满满。这个项目虽然小但它完整地走完了一个嵌入式硬件产品开发的核心流程需求分析、方案设计、元件选型、原理图与PCB设计、打样制作、焊接调试、软件编程。希望这个详细的教程能帮你打开硬件DIY的大门享受动手创造的乐趣。如果在制作过程中遇到任何问题欢迎随时来交流讨论。

相关新闻