前一段时间笔者偶得一香水瓶,此瓶做工精良、玲珑剔透。虽然瓶内香水已经用尽,但丢弃实在可惜,笔者一直在想如何将此瓶废物利用,做个什么有用的东西。此香水瓶无色透明,大致为球形,表面布满大小不一的气泡状装饰性凹点,根据这些特点不断想象,最终笔者还是觉得用它来做小灯罩最为合适,不仅利用了其能够透光的特性,还利用了其装饰性凹点能够反射和折射光线的特性,这样的“灯罩”可以使灯具有很好的视觉效果,当灯光颜色变化时更是交相辉映、绚丽多彩。既然想到了就赶快动手,免得创意“溜走”,经过几天的努力,制作了这款颇具个性的七彩小夜灯。

儿童自制小夜灯制作(个性七彩小夜灯)(1)

外观设计

为了方便制作,也为了更具有个性,本小夜灯摒弃了外壳,在结构上也没有作太复杂的设计,仅是简单地采用了“灯罩 底座”的形式,其中底座就是各部分电路的电路板。

灯罩为球形,这是已经确定的,因而小夜灯外观的设计主要就是底座的设计。底座既要突出个性,又要与灯罩相协调,这是外观设计时一定要考虑的。球形的投影是圆,圆是公认的最完美的图形,也是最简单的图形,从简洁、大方的设计角度出发,与之组合的图形也应该是一个非常简单的图形。三角形是最简单的多边形,其中正三角形又是最完美的三角形,将之与圆组合起来十分协调。此外,正三角形还能给人以稳定的感觉,底座采用这种形状也非常合适。因此,本小夜灯的底座设计为正三角形,整体外观俯视图如图5.1所示。

儿童自制小夜灯制作(个性七彩小夜灯)(2)

图5.1 外观俯视图

功能设计

本小夜灯的主要功能是夜间辅助照明,它设计有2种工作模式,分别为静态模式和动态模式,其中每种工作模式又有26种显示花样可选。静态模式下灯的颜色、亮度等状态始终不变,动态模式下灯的状态按一定规律循环变化,各模式下不同显示花样对应的灯的状态将在后面软件设计中详细介绍。由于灯的颜色、亮度和显示花样能够灵活改变,所以本小夜灯也可以作为节日彩灯来使用。

本着使用方便、操作简单的原则,本小夜灯设计了3个按键,分别为开关键、静态模式键和动态模式键,如图5.1所示。各按键的功能如下:

开关键:在待机状态下按此键则开机进入工作状态,小夜灯按上次关机前设置的模式和显示花样工作,首次上电默认为静态模式、花样0;在工作状态下按此键则关机进入待机状态,小夜灯熄灭。

静态模式键:在静态模式下按此键则切换到下一种显示花样,各种显示花样可以循环切换;在动态模式下按此键则切换到静态模式;在待机状态下按此键无效。

动态模式键:在动态模式下按此键则切换到下一种显示花样,各种显示花样可以循环切换;在静态模式下按此键则切换到动态模式;在待机状态下按此键无效。

因采用低功耗设计,待机电流甚微,所以无需设计单独的电源开关。

原理分析

本小夜灯的灯罩非常小,因而灯罩内的灯(即光源)的体积也不能太大,否则将无法装入。LED具有体积小、亮度高、功耗低、寿命长等优点,近年来在照明领域应用越来越广泛,这里也采用LED作光源,体积和亮度均可满足要求。

目前市场上LED颜色的种类比从前多了不少,但仍是有限的几种。在实际应用中,若需要LED发出更多种颜色的光,较为常用的方法是用多个不同颜色的LED混色。在大多数应用中,如广告屏、照明等,一般是选用红色、绿色和蓝色三种基色的LED来混色。若不改变各LED的亮度,上述三种颜色混色后能够得到4种新的颜色,如表5.1所列;若改变其中一种或多种颜色的LED的亮度,则可以得到更多种颜色。本小夜灯就采用这种混色的方法。

儿童自制小夜灯制作(个性七彩小夜灯)(3)

表5.1 基色混色后得到的颜色

硬件设计

电路原理图见图5.2,整个电路包括控制电路和电源电路两部分。

儿童自制小夜灯制作(个性七彩小夜灯)(4)

图5.2 电路原理图

1.控制电路

近几年很多半导体制造商都开发了专用的三基色LED亮度控制IC即混色控制IC,此类IC在礼品笔、电子胸花等产品中十分常见,如图5.3所示。这类IC成本低廉、外围电路简单,但显示花样少,使用不够灵活,且多为裸片,不适合电子爱好者在业余条件下使用。基于以上考虑,本小夜灯没有采用专用IC,而是采用单片机来控制三种基色的LED的亮度。单片机选用STC(宏晶科技)的STC12C5404,主要是因为它内部具有4个通道独立的PWM(Pulse Width Modulation,脉宽调制)电路,可以很容易地实现本3路LED亮度的控制。它是一款单时钟/机器周期单片机,兼容MCS-51指令系统,工作电压为3.5~5.5V,在掉电模式下电流仅为0.1µA。

儿童自制小夜灯制作(个性七彩小夜灯)(5)

图5.3 礼品笔中的混色控制IC

STC12C5404引脚排列与常用的AT89C2051类似,只是在它的基础上又增加了若干个引脚。本小夜灯操作并不复杂,控制对象也很单一,因而单片机外围电路非常简洁。PWM0、PWM1和PWM3这3个通道的PWM输出口分别控制红色、绿色和蓝色3路LED。由于各输出口灌电流可达20mA,所以无需任何驱动电路直接与LED连接即可。INT0、P2.5和P2.7这3个I/O口各连接1个按键,这些I/O口内部均有弱上拉晶体管,为了简化电路,外部没有再连接上拉电阻。RXD和TXD没有连接任何器件,但也通过焊盘单独引出,以方便在线编程和调试。虽然STC12C5404内部具有RC振荡器,但误差较大,为了保证电路的一致性以及显示花样变换时间的准确性,电路中还是使用了外部振荡器。这里没有使用常用的石英晶体,而是选用内置负载电容的陶瓷振荡器,这样就无需再外接负载电容,简化了电路。

2.电源电路

本小夜灯采用电池供电,这样小夜灯在工作时就无需外接专门的电源,也可以随时移动,使用更加方便。红色LED的正向导通电压VF一般为2.0V,而绿色(这里并非指普通的黄绿色,而是指纯绿色,有时也叫翠绿色)和蓝色LED的正向导通电压VF一般均为3.5V,这就决定了控制电路的工作电压应高于3.5V。大多数电池的标称电压为1.5V,用3节电池串联才能满足上述要求,但这样当每节电池工作一段时间电压降至约1.2V后电路将无法正常工作,电池利用率比较低,不够经济,作为采用电池供电的产品是不允许的。若采用4节电池串联虽然能够提高电池利用率,但总电压超过了单片机允许的最高工作电压,而且体积也增大了不少,更不可行。为了解决以上矛盾,同时也为了进一步减小体积,这里特别设计了升压电路,整个电路采用2节1.5V电池串联供电。

升压电路以IC2为核心,将3V电池电压升至4.5V作为单片机及其外围电路的工作电压。IC2为RICHTEK(立锜科技)推出的升压型DC/DC变换器RT9261-45PX,它具有外围元件少、低功耗、低启动电压、高效率等特点,当每节电池电压降至0.75V时电路仍能正常工作,电池利用率非常高。

电路中输入端电容C3可以降低电源阻抗,减小输出噪声,使输入电流平均化从而提高效率。输出端电容C4的主要作用是使输出电压变得平滑,输出电压较高以及负载电流较大时,输出的纹波电压也会变大,C4的作用更加重要。为了获得比较稳定的输出电压,应选用22µF以上的低ESR(等效串联电阻)电容,当要求不高并且负载电流较小时,为了降低成本也可以选用质量较好的普通电解电容,但应适当增大容量。

电感L1应尽量选用直流电阻较小的产品。虽然电感值在很宽的范围内选取本电路都可以工作,但是电感值过大会使最大输出电流减小,并且增大了体积,增加了成本;电感值过小会使纹波电流变大,工作效率降低,并且有可能导致磁饱和,综合考虑以上因素L1选100µH。

VD1应选用正向压降小、开关速度快的肖特基二极管,本电路工作电压低、电流小,绝大多数的肖特基二极管都能够满足要求,但是一定要选择反向漏电流IR较小的型号,否则空载输入电流偏大,待机功耗达不到要求。这里VD1选用SS14,此型号不同制造商生产的产品IR的参数会有一定的差别,在实际选择时应注意。

软件设计

程序包括主程序、按键检测子程序、静态显示子程序、掉电处理子程序、外部中断0服务程序和定时器0溢出中断服务程序等几个部分。

1.主程序

主程序流程图见图5.4。初始化程序除了清RAM以及对I/O口、定时器、中断等进行设置以外还对与PWM功能相关的寄存器进行设置,这里将PWM输出口输出脉冲的频率fPWM设置为1.302kHz。初始化后调用静态显示子程序进入工作状态,之后执行主循环程序,完成按键检测、掉电处理等任务。

儿童自制小夜灯制作(个性七彩小夜灯)(6)

图5.4 主程序流程图

2.按键检测子程序

按键检测子程序流程图见图5.5。这部分程序的任务是根据按键操作执行相应的按键处理程序,完成工作状态、模式以及显示花样的切换。其中,开关键处理主要是改变工作状态标志并在工作状态标志置1时恢复原来的工作状态;静态模式键处理主要是改变静态模式花样寄存器的数值,并调用静态显示子程序改变LED的状态;动态模式键处理主要是改变动态模式花样寄存器的数值,并设置相关寄存器的初始值、使能定时器0溢出中断,为执行定时器0溢出中断服务程序做好准备。

3.静态显示子程序

静态显示子程序的主要任务是根据静态模式花样寄存器的数值改变各路LED的状态。静态模式各显示花样对应的各路LED的状态如表5.2所列。

程序中将各路LED状态对应的dPWM设置值(CCAPnH寄存器的数值)参考表5.2按花样列成表,静态显示子程序根据静态模式花样寄存器的数值,通过查表得到相应花样各路LED状态对应的dPWM设置值,用这些设置值替代原来的设置值即可改变各路LED的状态。

儿童自制小夜灯制作(个性七彩小夜灯)(7)

表5.2 静态模式各显示花样对应的各路LED的状态

儿童自制小夜灯制作(个性七彩小夜灯)(8)

图5.5 按键检测子程序流程图

儿童自制小夜灯制作(个性七彩小夜灯)(9)

图5.6 掉电处理子程序流程图

4.掉电处理子程序

掉电处理子程序流程图见图5.6。其主要任务是关闭各路LED,进入掉电模式。执行这部分程序后,程序将停止运行,系统功耗降至最低,当单片机被“唤醒”后,程序返回继续运行。

儿童自制小夜灯制作(个性七彩小夜灯)(10)

表5.3 动态模式各显示花样各拍对应的各路LED的状态

5.外部中断0服务程序

每当开关键按下后产生外部中断,外部中断0服务程序执行一次。这部分程序的指令只有2条,并没有执行实质性的任务,它仅是将单片机从掉电模式中“唤醒”。

6.定时器0溢出中断服务程序

定时器0溢出中断服务程序流程图见图5.7,它实际上是动态显示子程序。这部分程序每10ms执行一次,其主要任务是在动态模式下按所选择的显示花样循环改变各路LED的状态。为了方便软件设计,这里将动态模式每种显示花样细分为若干拍,各显示花样各拍对应的各路LED的状态如表5.3所列。

儿童自制小夜灯制作(个性七彩小夜灯)(11)

图5.7 定时器0溢出中断服务程序流程图

动态模式各显示花样的各拍中,包含变亮或变暗状态的拍持续时间较长,约为2.56s;不包含变亮和变暗状态的拍持续时间较短,约为250ms。程序中将各路LED的状态标志和拍的长短标志组合为1个字节的显示状态数据,参考表3按花样和拍次列成表,定时器0溢出中断服务程序根据动态模式花样寄存器和拍次寄存器的数值通过查表得到相应花样、相应拍的显示状态数据,依此调整各路LED的dPWM设置值即可改变各路LED的状态。随着定时器0溢出中断的不断产生以及拍次寄存器数值的不断改变,各路LED的状态便可按所选择的显示花样的各拍循环变化。

PCB设计与制作

为了满足整体造型、体积以及底座功能的具体要求,本小夜灯PCB分为2块来设计。控制电路和电源电路分别布局在1块边长约87mm的正三角形电路板上,这2块电路板在安装时通过金属支撑柱来实现电气连接。控制电路和电源电路都比较简单,器件也相对较少,采用单面板即可满足布局要求。整个电路工作电压较低,工作电流也很小,PCB走线宽度和间距无特殊要求。布局好的电路板如图5.8所示。

PCB布局好后可以委托工厂加工,也可以自制。笔者制作电路所使用的PCB是用感光板自制的,如图5.9所示。

元件选择与电路制作

制作本小夜灯电路所需要的元器件不多,但各器件都应按要求选择。IC1选用SOP-28封装,IC2选用SOT-89封装。R1~R4均选用0805系列贴片电阻,C1、C3和C4均选用C型尺寸贴片钽电解电容,C2选用0805系列贴片电容,L1选用CD43型贴片线绕电感。XTAL1选用PBRC-B系列或与之兼容的其他型号贴片陶瓷振荡器,S1~S3均选用6mm×6mm小型直插按键。

儿童自制小夜灯制作(个性七彩小夜灯)(12)

图5.8 PCB布局图

儿童自制小夜灯制作(个性七彩小夜灯)(13)

图5.9 用感光板自制的PCB

为了便于将LED装入灯罩,并获得更好的混色效果,这里光源没有采用3个单色LED,而是采用了1个全彩LED。全彩LED也叫七彩LED或三色LED,其内部封装有红色、绿色和蓝色三种颜色的LED管芯,它在使用时相当于3个LED。全彩LED内部各LED其中一端连在一起形成公共端,加上各LED的另一端它共有4个引脚,排列如图5.10所示(少数产品可能与此不同,具体以产品资料或实际测量为准)。根据公共端极性的不同,全彩LED可以分为共阴和共阳两种,按电路要求,这里采用后者。根据外观和制造工艺的不同,全彩LED又可以分为透明和雾状(类似磨砂灯泡的效果)两种,为了使光线更加自然、柔和,制作时最好选用后者。市场上全彩LED的尺寸规格多为Φ5,制作时选用这种规格即可。

儿童自制小夜灯制作(个性七彩小夜灯)(14)

图5.10 全彩LED引脚排列

儿童自制小夜灯制作(个性七彩小夜灯)(15)

图5.11 焊接好的电路板

BATT1为2节串联的AAA(7号)1.5V电池,制作时应通过配套的电池夹(电池盒)来安装。

电路中绝大部分器件为贴片器件,焊接时要特别仔细,以免出现短路、虚焊等缺陷。各器件焊接好后应对照电路原理图反复检查,若有错误和缺陷要及时改正和修补。为了方便调试,LED和电池夹可暂不安装,待调试结束后再另行安装。自制的PCB表面往往没有阻焊层,为了防止铜箔氧化影响电气性能和外观,电路焊接好后最好在PCB铜箔表面镀一层锡或涂一层松香酒精溶液。焊接完成并经过镀锡处理的电路板如图5.11所示。

调试

小夜灯控制电路和电源电路相互独立,这两部分电路的调试也应分开进行,以免彼此牵扯而影响电路测试和故障判断。

控制电路调试前要预先对LED进行加工,以满足调试和安装的要求。加工时先将LED各引脚从靠近其根部的凸起处剪断,再将外侧的2个引脚向内侧弯折,如图5.12所示。之后在LED各引脚上分别焊接1根长约10mm的细导线,并在LED内侧的2个引脚的焊点处各套一小段热缩管以免短路,如图5.13所示。为了便于区分LED各引脚,各导线应选用不同的颜色且最好与所连接的引脚对应的LED的颜色一致。LED加工好后可以在灯罩上试装一下,若无法放入灯罩则应将LED外侧的2个引脚再向内侧弯折或将LED的“帽沿”剪去,必要时还需要重新焊接导线以减小焊点或改变焊点形状,从而满足安装要求。

儿童自制小夜灯制作(个性七彩小夜灯)(16)

图5.12 LED引脚的加工

儿童自制小夜灯制作(个性七彩小夜灯)(17)

图5.13 焊接好连接线的LED

控制电路调试时先将LED的连接线按电路原理图焊接在控制电路板上,再在控制电路板上两电源输入端以及RXD和TXD端各焊接1根导线,分别与4.5V电源和编程电路相连。以上均为临时性连接,因而对焊接质量以及外观没有太高要求。为了能够持续准确地检测电路,调试应使用稳压电源,不要使用电池。电路连接妥当后仔细检查几遍,确认无误后即可上电将程序下载至单片机内,之后重新上电对按键功能和LED状态进行全面测试。本电路及程序相对比较简单,调试一般不会有太大问题,但有一点要特别注意。本电路的待机电流不应超过1µA(正常情况下一般约为0.1µA),待机电流偏大(功耗偏高)时要仔细检查电路和程序,而不能轻易忽略,否则在实际使用时会浪费电池电能。此外,在调试过程中若发现LED的亮度或混色效果不理想,可以通过适当调整R2~R4的阻值来改善。

电源电路调试时,在电源电路板上两电源输入端各焊接1根导线与3V电源相连,这里同样使用稳压电源来调试。上电后在空载的情况下测量电路的输出电压,此时应略高于4.5V,如果偏差较大应立即断电检查电路。同样在空载的情况下测量电路的输入电流,此时应在20µA以下(正常情况下一般约为10µA),否则要仔细检查电路。VD1的反向漏电流IR偏大、C3和C4的漏电流偏大、IC2性能不良以及电路短路等都可能导致输入电流偏大(功耗偏高),检查电路时要特别注意以上几点。与调试控制电路一样,功耗问题不能轻易忽略,调试时要有足够的耐心,力争将功耗降至最低,这一点对调试采用电池供电的电路至关重要。空载测试正常后用1个100Ω/0.5W的电阻作为负载进行带载测试,在测试过程中,电路的输出电压应始终保持在4.5V左右,如果电压变化范围较大则还需进一步检查和调整电路。

组装

小夜灯的零部件相对比较多,组装应按一定的步骤进行,主要包括LED安装、电池夹安装、支撑柱安装和底脚安装4个步骤。

1.安装LED

安装LED时,首先将香水瓶的瓶塞芯(原香水瓶喷雾机构的一部分)穿过控制电路板中心的孔,套上瓶塞将之卡紧;然后将LED连接线从瓶塞芯穿过并拉紧,如图5.14所示。之后根据控制电路板上LED连接端焊盘的位置剪去LED连接线多余的部分,并将其焊接在电路板上,如图5.15所示。最后将加工过的卡环(原香水瓶瓶口处的装饰部件)和香水瓶套在瓶塞上,如图5.16所示,若香水瓶与瓶塞无法套紧则应在两者表面涂少许万能胶后再安装,以确保结构牢固。

儿童自制小夜灯制作(个性七彩小夜灯)(18)

图5.14 LED的安装

儿童自制小夜灯制作(个性七彩小夜灯)(19)

图5.15 LED连接线的焊接

2.安装电池夹

安装电池夹时,首先将电池夹用海绵双面胶粘贴在电源电路板上,粘贴时要将电池夹的连接线从电路板边缘的穿线孔穿过,并且要将电池夹的安装孔与电路板上相应的孔对正,使电池夹居中;然后用螺钉通过安装孔进一步将电池夹固定妥当,如图5.17所示。最后根据电源电路板上电源输入端焊盘的位置,剪去电池夹连接线多余的部分,并将其焊接在电路板上,如图5.18所示。

3.安装支撑柱

支撑柱不仅用来支撑2块电路板构成底座,它还起着连接控制电路和电源电路的作用,因此支撑柱最好选用铜质镀镍两头内螺纹支撑柱,以保证电气性能和外观效果。支撑柱共需要3个,通过M3螺钉将其与控制电路板固定在一起,如图5.19所示。安装时螺钉一定要旋紧,使支撑柱与控制电路板铜箔可靠接触。

儿童自制小夜灯制作(个性七彩小夜灯)(20)

图5.16 香水瓶的固定

儿童自制小夜灯制作(个性七彩小夜灯)(21)

图5.17 电池夹的安装

儿童自制小夜灯制作(个性七彩小夜灯)(22)

图5.18 电池夹连接线的焊接

儿童自制小夜灯制作(个性七彩小夜灯)(23)

图5.19 支撑柱的安装

儿童自制小夜灯制作(个性七彩小夜灯)(24)

图5.20 用旋钮自制的底脚

儿童自制小夜灯制作(个性七彩小夜灯)(25)

图5.21 底脚的安装

4.安装底脚

底脚的主要作用是支撑底座,使电池夹悬空。这里底脚用小型铝质电位器旋钮来制作,制作时先将旋钮内的塑料芯去掉,再在旋钮顶部的中心钻1个直径为3mm的孔即制作完成,如图5.20所示。这种自制底脚外观非常好,与整体造型风格也比较一致。与支撑柱一样,底脚也需要3个,通过M3螺钉来安装,如图5.21所示。底脚安装的同时也将支撑柱与电源电路板固定在了一起,安装时螺钉同样也要旋紧,使支撑柱与电源电路板铜箔可靠接触。组装完毕后在电池夹内装入电池,小夜灯即可使用。若电路不工作则要仔细检查各支撑柱与电路板铜箔是否接触良好以及2块电路板安装是否错位等,直到发现问题排除故障为止。制作完成的小夜灯如题图所示。

制作这样一个彰显个性的小夜灯,每当夜幕降临后点亮,各色灯光此起彼伏,望着它定然是十分惬意,有兴趣的读者可以制作一个感受一下。读者在制作时可以根据实际选择的灯罩修改小夜灯的外观和结构,也可以通过修改程序中各模式显示状态表的数据来增删显示花样或改变各显示花样对应的各路LED的状态。此外,读者还可以以此为参考,设计制作出更多更有个性的电子制作精品。

,