3.4 灯光硬件方案设计
发光二极管属于半导体二极管的一种,它可以把电能转化成光能;也就是LED。发光二极管与普通二极管一样是由一个PN结组成,也具有单向导电性。当给发光二极管加上正向电压后,从P区注入到N区的空穴和由N区注入到P区的电子,在PN结附近数微米内分别与N区的电子和P区的空穴复合,产生自发辐射的荧光。不同的半导体材料中电子和空穴所处的能量状态不同。当电子和空穴复合时释放出的能量多少不同,释放出的能量越多,则发出的光的波长越短。常用的是发红光、绿光或黄光的二极管。由于我们对发光二极管很熟悉。这里就不多做介绍。本设计采用8个红光的二极管与1K排阻串联[6]。如下图6:
图6 灯光的连接
正常接通电源,可以看到LED指示灯有部分亮起来,没有音频输入也会看到会有跳动变化,这是由于AD采集到了干扰电信号。当接通音频线并播放音乐时,指示灯会根据音乐有节奏的变化。
4. 喷泉控制系统软件设计
4.1 主程序框图
在对控制系统进行分析和硬件设计的基础上,根据单片机控制系统工艺流程和系统控制要求,对单片机进行了软件设计。其框图如下图7所示。
图7 主程序框图
程序重新设置后,进入开始的主程序。首先单片机检测水泵的转速是否为0,如果水泵转速为0,那么根据非同步采集设置产生AD触发脉冲。等待输入信号。如果转速不为0,那么开始数据采集。
4.2 数据采集
图8 数据采集流程图
由图8可以看到,数据采集分为3个步骤:首先启动某通道的A/D转换,然后判别A/D转换是否结束,若A/D转换结束则读取A/D转换结果,并保存之;若A/D转换未结束则等待。
4.3 控制潜水泵软件设计
目前,潜水泵结构简单,成本较低,控制方便,只有一种转速。要控制潜水泵的流量变化,就必须使潜水泵的转速发生变化[4]。
本文使用无触点开关分时接通的方法提高潜水泵的转速档次,在硬件电路基本不变的条件下,使潜水泵具有调速能力和更好的节能效果,这种方法无需增加较多的硬件,仅在控制器中采用新的调速程序,即可达到提高潜水泵转速档次和节能的目的。
4.3.1 潜水泵开关调速的软件设计
单相潜水泵采用STC12C5A60S2单片机控制,单片机的输出端口P1.4直接与ULN2003的输入端口相连接。采集的音乐信号经过傅立叶变换再去查幅值对应的分贝转速表直接得到转速代码,这样就可以控制潜水泵的转速,控制潜水泵转速的方法如下:
每个音符对应一种转速代码,潜水泵的转速随音符改变而改变。调速程序必须经过一个最小时间1/4拍才能输出一个转速代码的转速,在调速程序中,采用一个存储单元(90H)作为转速输入单元,另一个存储单元(95H)记录晶闸管导通时间,并通过延时程序来实现。
在调速程序中,我们采用8位数据记录电机的转速代码,其中低3位(b2b1b0)表示接通比例N,第4、5位(b4b3)表示接通档次,高3位(b7b6b5)不用。接通档次表示调速为低速调速、中速调速还是高速调速,其值为b4b3={00B,01B,10B,11B},当接通档次为00B时,在转速代码设定的接通比例内接通晶闸管TL,接通比例外不接通晶闸管;当接通档次为01B时,在转速代码设定的接通比例内接通晶闸管TM,接通比例外接通晶闸管TL,当接通档次为10B时,在转速代码设定的接通比例内接通晶闸管TH,接通比例外接通晶闸管TM;当接通档次为11B时,接通比例只有00H一种,这时在整个调速周期内接通晶闸管TH,潜水泵高速运转。接通比例的取值范围000B-110B,由此可知,转速代码的取值范围为00H-06H,09H-0EH,11H-16H总共十八个代码,其中00H-06H为低速档代码,09H-0EH为中速档代码,11H-16H为高速档代码。所以潜水泵除零速外共有十八档转速[7]。 STC12C5A60S2单片机的音乐喷泉控制系统的设计+源程序(4):http://www.youerw.com/zidonghua/lunwen_1437.html