摘 要:社会经济的不断发展,推动了智能化生活的进程,智能调光技术开始广泛应用在生活中,人们也逐渐提高了灯光亮灯率等的要求。基于此,笔者主要设计了基于单片机的 LED 照明灯智能调光系统,希望能够为相关研究提供一定的参考。
关键词:单片机;LED 照明灯;智能调光系统
0 引言
我国的经济建设消耗了大量的能源,对我国实现可持续发展目标造成了非常大的阻碍,所以目前首要解决的就是如何避免能源浪费且高效利用能源等问题。日常的灯光照明是现代生活中不可缺少的内容,同时也是能源消耗的重要内容,而 LED 灯作为固态冷灯源,在一定程度上节约了电能,并具有使用时间长和体积小等特点,能够满足我国绿色发展的目标,因此对其进行研究具有非常大的意义。
单片机的基本构成包括中央处理器 CPU、随机存取存储器 PAM、只读存储器 ROM 以及中断系统等。其中,中央处理器的主要作用就是处理数据,并进行复位、位测试等相关操作;随机存取存储器的作用就是保证在存储系统运行的过程中能产生相关的数据信息;只读存储器的作用就是永久性的存储应用程序;中断系统可以使用编程进行控制。
1.2 LED 调光的方式探讨
一般情况下,大功率的 LED 器件具有大电流和低电压的特点,当电压发生变化时,电流量可能就会发生一定的变化,所以在目前市场上比较常用的 LED 照明灯一般是恒流驱动的形式,而且为了能实现节能的效果,通常会通过调灯降低 LED 的功耗,有效延长 LED 的使用寿命。LED 主要的调光方式包括模拟调光、PWM 调光等。其中,模拟调光的电路相对比较简单,但是不容易精确调节输出电流,且调光的范围有限,所以在使用的过程中还存在一定的问题;PWM调光的效率相对较高,并且能够精准控制,能对软件进行有效控制,但是使用的成本相对较高。
2 基于单片机的 LED 照明灯智能调光系统设计
2.1 系统总体框架
本文在设计时主要采用了相关的光电检测设备,通过ADC0832 进行了模数转换,让整个系统能够根据周围环境的实际光照情况,利用单片机的芯片对灯光进行直接控制,当环境周围的灯光较亮时,灯光就会变弱,而当周围环境灯光较暗时,灯就会变亮,同时也可以手动对灯光的亮度进行控制。图 1 为基于单片机的 LED 照明灯智能调光系统框架。
2.2 系统设计的原理
本设计中的主控芯片型号为 STC89C52 单片机,与模数转换系统相结合,采集光源的信号主要通过光明电阻进行,并通过 PWM 调节发光系统,同时对整个电路进行供电的是5 V 的直流电源。在整个设计的过程中通过切换功能模式,能够让照明灯在不同的情况下实现自动或手动模式切换,有效满足使用者对灯光光源强度的需求。
外部中断 0 与外部中断 1 的服务程序构成了预设照度程序,其对预设的照度值进行控制,分别进行增加或减少,当系统初始化后,会将初始照度值在变量 L0 中存储,当中断后,如果按下 K1,就会触发 0 号的中断服务,增加 L0 的值,然后将典型的 I 2 C 总线通信程序调用出来,在存取器 24C02C中写入L0 ;如果按下K2,则会发出1号的中断服务,减少L0值,并会存入相应的存取器中。
2.3.3 照度检测程序的相关设计
程序经过初始化的工作并进行延时后,就会自动发出采集信号,并对设备的地址以及读取的信号进行传送,按照字节逐一取出并合并采集到的相关数据信息,最终就能得到环境中实际的光照度值。为了能够保证测量的准确性,相关工作人员还可以进行多次采集工作,最终计算出数据平均值,部分 C 源程序经过 BH1750 处理的过程如下:
// 对 BH1750 初始化
void Iiit__BH1750()
{
Single__Write__BH1750(0x01);
}
// 将 BH1750 中的数据读取出来
对 BH1750 数据进行读取
void Red__BH1750(void)
{uchar;
BH1750__Start.();
// 发出起始信号
BH1750__SendByte(Address+1);
// 发送具体的设备地址;对信号进行读取
for(i=0;i < 2;i++)
// 读取 2 个及以上的字节数据;存储
{
BUF[i]=BH1750__RecvByte();
(BUF 表示数据存储数组)
if(i=1)
{
BH1750__SendACK(1);
// 最后一个数据回到 NOACK
}
else
{
BH1750__SendACK(0);
// 回应 ACK
}
}
BH1750__Stop();
// 停止信号;
Delay();
}
3 模式控制程序的相关设计
3.1 模糊控制
因为环境光照度会受到多种因素的影响,比如天气、窗帘等,这些随机且不可预测的因素所带来的影响是非线性的,所以为了让人们生活的环境能够拥有最适宜的光照度,就可以使用模糊控制对照明灯光的强度进行控制调节。模糊控制器能够处理模糊化,并推理模糊。使用照度对电路进行测量,能够得出相对比较精准的照度值,并将其作为基础,就能了解控制器的输出变量值。如果照度值与预期的照度值之间存在差异,就将其表示为 e,它们之间存在的变化率就为 ec=de/dt,模糊化对应的基本领域。得出比较准确的模糊语言变量后,就将原有的经验作为依据和基础,就能开展相应的推理工作,得出模糊的控制量 U,根据一定的算法公式对 U 进行解模糊化,就可以将其转化成可以进行精确控制的变量 PWM 信号占空比,由于不需要严格的数学模型中进行模糊控制,所以本文设计的系统中具有较好的智能控制效果,且具有动态响应快、稳定性好等特点。
最后,需要进行解模糊化工序,让模糊控制量更加精确,就能够用于 LED 驱动器中对其进行控制,本文设计所采用的算法为加权平均值法,计算公式如式(1)所示,通过解模糊化控制变量后就能得到更加准确的控制量 u。
3.3 模糊控制的相关程序研究
以照度检测程序为基础,处理好采集到的照度值,如果照度值比给定的最大值还要大,则输出的 PWM 信号的占空比为 0,就会关闭 LED 照明灯。如果照度值比给定的最小值小,则输出的 PWM 信号的占空比为 1,这时 LED 照明灯会按照额定的最大值进行工作。如果其相等于设定的相关照度值,就说明程序中的相关信号占空比与原来一样,以上描述的都是特殊值,而在这些特殊值外还有一些标准值,它们都必须按照相关的算法标准进行计算,并查询相关的模糊控制表,最终得出比较准确的模糊输出量,然后再求出占空比,最后将 PWM 信号通过单片机输出,控制相关的驱动电路,从而实现对 LED 照明灯光强度调节的目标。