当前位置: 首页 > news >正文

基于单片机的 LED 照明灯智能调光系统设计

摘  要: 社会经济的不断发展,推动了智能化生活的进程,智能调光技术开始广泛应用在生活中,人们也逐渐提高了灯光亮灯率等的要求。基于此,笔者主要设计了基于单片机的 LED 照明灯智能调光系统,希望能够为相关研究提供一定的参考。
关键词: 单片机;LED 照明灯;智能调光系统

0  引言

我国的经济建设消耗了大量的能源,对我国实现可持续发展目标造成了非常大的阻碍,所以目前首要解决的就是如何避免能源浪费且高效利用能源等问题 。日常的灯光照明是现代生活中不可缺少的内容,同时也是能源消耗的重要内容,而 LED 灯作为固态冷灯源,在一定程度上节约了电能,并具有使用时间长和体积小等特点,能够满足我国绿色发展的目标,因此对其进行研究具有非常大的意义。

1  单片机与 LED 调光方式相关概述

1.1 单片机的概念与基本构成

单片机又被称为单片微型计算机( MCU ),在一个芯片的小型计算机中集结了计算机系统 [4-5] 。单片机的主要组成包括控制器、存储器以及运算器等,其与真正的计算机相比,缺少了输入、输出的相关设备,但是在实际的使用过程中非常有必要,可以将输入输出设备连接在开发设计板中就能做到与普通计算机一样。
单片机的基本构成包括中央处理器 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 的直流电源。在整个设计的过程中通过切换功能模式,能够让照明灯在不同的情况下实现自动或手动模式切换,有效满足使用者对灯光光源强度的需求。

2.3 软件设计

2.3.1 设计主程序

设计的主程序中包含 4 个子程序,分别为红外处理程序、按键处理程序、液晶显示程序以及 ADC0832 转换程序。其中,红外处理程序的作用是改变单片机的输出模拟量,从而对LED 灯的光照进行控制;按键处理程序的功能与红外处理程序的功能一致;液晶显示程序就是采集 A/D 转换的数值,同时对 PWM 值进行采集; ADC0832 转换过程就是模数转换光敏电阻采集到的模拟量,然后进行传输,最终到STC89C52 中。主要的程序流程图如 2 所示。

2.3.2 设计预设照度程序

外部中断 0 与外部中断 1 的服务程序构成了预设照度程序,其对预设的照度值进行控制,分别进行增加或减少,当系统初始化后,会将初始照度值在变量 L 0 中存储,当中断后,如果按下 K 1 ,就会触发 0 号的中断服务,增加 L 0 的值,然后将典型的 I 2 C 总线通信程序调用出来,在存取器 24C02C中写入L 0 ;如果按下 K 2 ,则会发出 1 号的中断服务,减少 L 0 值,并会存入相应的存取器中。

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 信号占空比,由于不需要严格的数学模型中进行模糊控制,所以本文设计的系统中具有较好的智能控制效果,且具有动态响应快、稳定性好等特点。

3.2 模糊控制规则的相关设计

在模糊控制器中,最重要的核心就是模糊控制规则,模糊控制规则主要是人们在研究调光控制过程中总结得出的相关经验。比如,在教室、阅览室等场所中,照明要求的亮度一般在 200 lx 以上,并且不允许超过 760 lx 。设控制的基本论域是从 0 100 lx ,预设的照度值设为 500 lx ,那么就可以知道可以允许的误差范围为 -500 500 ,误差的变化率就会在 [-100 100] ,然后会进行以下的处理工作。首先,要模糊化处理相关的照度值,不断简化相关的控制,并量化模糊的语言,一般将模糊语言变量分为 7 个等级,并能得到更加准确的模糊集合论域,然后使用量化的因素对其进行标定,让其与基本论域相对应,进行处理的过程中可按照模糊控制处理方法的基础开展,将模糊语言的变量设为 E/EU/U ,并选择三角形的隶属函数,从而获得相关的隶属值,让变量模糊化更加精确。其次,需要对模糊控制的规则进行确定,并且还要进行一定的模糊推理工序,模糊控制的规则一般是由模糊条件的语言所构成,其相关的规则如图 3 所示,对 E 和EC进行实时测量计算,并对模糊控制规则表进行查询,就能得到最后的模糊输出量 U 的具体值。
最后,需要进行解模糊化工序,让模糊控制量更加精确,就能够用于 LED 驱动器中对其进行控制,本文设计所采用的算法为加权平均值法,计算公式如式(1 )所示,通过解模糊化控制变量后就能得到更加准确的控制量 u

3.3 模糊控制的相关程序研究

以照度检测程序为基础,处理好采集到的照度值,如果照度值比给定的最大值还要大,则输出的 PWM 信号的占空比为 0 ,就会关闭 LED 照明灯。如果照度值比给定的最小值小,则输出的 PWM 信号的占空比为 1 ,这时 LED 照明灯会按照额定的最大值进行工作。如果其相等于设定的相关照度值,就说明程序中的相关信号占空比与原来一样,以上描述的都是特殊值,而在这些特殊值外还有一些标准值,它们都必须按照相关的算法标准进行计算,并查询相关的模糊控制表,最终得出比较准确的模糊输出量,然后再求出占空比,最后将 PWM 信号通过单片机输出,控制相关的驱动电路,从而实现对 LED 照明灯光强度调节的目标。

4  系统的调试情况研究

在实验室内模拟测试设计的系统,对系统的可靠性和准确性进行验证,通过相关的仿真实验可以知道,本文设计的LED 照明灯智能调光系统感知环境照度的反应较快,并且单片机控制输出占比、处理数据相对比较稳定,LED 照明灯不仅能够自动调控,还可以手动完成控制,说明设计的该类系统与预期功能的要求相符。本文所使用的照度传感器的精度相对较高,能够精确检测环境的照度,并且在存储器件内的环境照度值等能满足各种照度环境的要求;利用模糊控制的短发,能够让照明灯进行智能调光工作,让其根据环境照度的变化而变化,让调光更加准确,但是在系统中使用的传感器精度相对较高,所以支出的成本也比较高,并且模糊控制还是以经验为基础,导致调节更加负杂,所以还需要相关学者进行更加深入的研究,积极解决目前该系统中还存在的响应速度慢以及反复采集环境照度等问题,并降低系统的成本,使其既经济又实惠。

5  结  语

在现代化社会的不断发展过程中,出现基于单片机的LED 照明灯智能调光系统是必然趋势,其不仅能够满足人们的照明需求,还能节约大量的电能,能帮助我国实现可持续发展的目标,具有非常大的应用价值。

相关文章:

基于单片机的 LED 照明灯智能调光系统设计

摘  要: 社会经济的不断发展,推动了智能化生活的进程,智能调光技术开始广泛应用在生活中,人们也逐渐提高了灯光亮灯率等的要求。基于此,笔者主要设计了基于单片机的 LED 照明灯智能调光系统,希望能够为相关…...

客户满意度调查方法有哪些

用户满意度调查作为改进用户体验工作中重要的一项活动,可以帮助企业深入了解客户对产品服务各方面评价。有许多企业想开展客户满意度调查,但是在调查方式上不清楚该用那种方式?另外还要考虑预算,民安智库(公众满意度调…...

为什么企业应用开发,c++干不过java?

在开始前刚好我有一些资料,是我根据网友给的问题精心整理了一份「c的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!! C/C这种东西,根本…...

基于盲信号处理的声音分离——最小化增益的ICA算法

基于最小化增益的ICA算法的算法是依据混合信号经过盲信号分离会产生一定的噪声,为了使得分离后的信号与原信号的比值最小时,叫做增益最小。当增益越小时,分离后噪声越小,分离信号越接近原信号,分离算法的效果越好。这是…...

自动化代码规范检查--Sonarqube部署

参考文档 官方文档安装数据库 官方给出几种数据库: # 我们选用postgres, 拉取镜像 docker pull postgres:16.0# 创建存储卷 docker volume create postgresql-data# 运行容器 docker run -d --name sonarqube-postgres \-p 5432:5432 \-e POSTGRES_DB=sonar_DB \-e POSTGRE…...

基于uni-app与图鸟UI的移动应用模板构建研究

摘要 随着移动互联网技术的迅猛发展,移动端应用已成为企业展示形象、提供服务的重要窗口。本文基于uni-app框架和图鸟UI设计,深入探讨了如何高效构建覆盖多个领域的移动端应用模板。通过对商城、办公、投票、生活服务等多种类型模板的详细介绍&#xff…...

AI智能在Type-C领域的应用

随着科技的飞速发展,Type-C接口凭借其卓越的性能和广泛的应用场景,已成为现代电子设备中不可或缺的一部分。而AI智能技术的兴起,为Type-C领域带来了革命性的变革,推动了其功能的进一步完善和应用领域的拓展。本文将探讨AI智能在Ty…...

INS-GPS组合导航——卡尔曼滤波

系列文章目录 《SAR笔记-卫星轨道建模》 《SAR笔记-卫星轨迹(三维建模)》 《常用坐标系》 文章目录 前言 一、经典卡尔曼滤波 二、扩展卡尔曼滤波 三、无迹卡尔曼滤波 总结 前言 SAR成像仪器搭载于运动平台,平台的自定位误差将影响SAR…...

day 58 739. 每日温度 496.下一个更大元素 I 503.下一个更大元素II

739. 每日温度 提示 给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指对于第 i 天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用 0 来代替。 示例…...

Dns被莫名篡改的问题定位(笔记)

引言:最近发现用户的多台机器上出现了Dns被莫名修改的问题,从系统事件上看并未能正常确定到是那个具体软件所为,现在的需求就是确定和定位哪个软件具体所为。 解决思路: 首先到IPv4设置页面对Dns进行设置:通过ProcExp…...

JVM原理(八):JVM虚拟机工具之基础故障工具

这里主要介绍监视虚拟机运行状态和进行故障处理的工具 1. jsp:虚拟机进程状况工具 jsp命令格式: jsp [options] [hostid] jps远程查询虚拟机进程状态 2. jstat:虚拟机统计信息监视工具 jstat命令格式: jstat [option vmid [interval [s|ms] [count]…...

Eureka的桥梁:服务消费者交互全解析

Eureka的桥梁:服务消费者交互全解析 在微服务架构中,服务发现是确保服务间有效通信的关键机制。Eureka,作为Netflix开源的服务发现框架,扮演着服务注册中心的角色,为服务消费者和服务提供者提供了一个动态的服务注册与…...

13_网络安全

目录 网络安全协议 网络安全协议 PGP协议 网络安全技术 防火墙技术 入侵检测系统 入侵防御系统 杀毒软件 蜜罐系统 计算机病毒与木马 网络安全协议 网络安全协议 物理层主要使用物理手段隔离、屏蔽物理设备等,其他层都是靠协议来保证传输的安全&#xff…...

C++ 中的数据类型

C规定在创建一个变量或者常量时,必须要指定出相应的数据类型,否则无法给变量分配内存. 1 整型 作用:整型变量表示的是整数类型的数据 C中能够表示整型的类型有以下几种方式,区别在于所占内存空间不同: 数据类型占用…...

CSS|04 复合选择器伪类选择器属性选择器美化超链接

基本选择器:见上篇基本选择器 复合选择器选择器1,选择器2{属性:值;} 多元素选择器,同时匹配选择器1和选择器2,多个选择器之间用逗号分隔举例: p,h1,h2{margin:0px;}E F{属性:值;} 后代元素选择器,匹配所有属于E元素后…...

探索Batch注释的奥秘:REM与::的细微差别

探索Batch注释的奥秘:REM与::的细微差别 在编写Batch文件时,注释是必不可少的部分,它们帮助我们理解代码的意图和逻辑。Batch脚本提供了两种添加注释的方法:REM命令和双冒号::。虽然它们功能相似,但在使用上存在一些细…...

C语言 求数列 S(n) = a + aa + aaa + …aa…a (n 个 a)的和

求数列S(n)aaaaaa…aa…a(n个a)之值,其中a是一个数字,n表示a的位数,n由键盘输入。例如222222222222222(此时n5) 这个程序读取用户输入的一个数字 a 和一个正整数 n,计算并输出数列 S(n) 的值。 #include …...

MysqlDump

介绍:mysqldump是一个常用的命令行工具,它用于备份或导出MySQL或MariaDB数据库中的数据。这个工具可以创建一个SQL文件,其中包含数据库的结构和数据,这样就可以在其他MySQL服务器上重新创建数据库或进行数据迁移。 基本语法&#…...

某安全公司DDoS攻击防御2024年6月报告

引言: 在2024年6月,网络空间的安全挑战汹涌澎湃。分布式拒绝服务(DDoS)攻击频发,针对云服务、金融科技及在线教育平台的精密打击凸显出当前网络威胁环境的严峻性。 某安全公司作为网络安全防护的中坚力量&#xff0c…...

Centos下rpm和yum执行卡住问题(已解决)

问题描述 执行rpm和yum卡住, 没有任何报错信息,且无法 ctrl c 终止,只能通过后台 kill -9 杀死。 问题排查: 查看yum日志:yum -vv 软件包 会发现卡在 loading keyring from rpmdb,即load DB存在问题。 …...

2021-03-15 iview一些问题

1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解

本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说&#xff0c;直接开始吧&#xff01; 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

HashMap中的put方法执行流程(流程图)

1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中&#xff0c;其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下&#xff1a; 初始判断与哈希计算&#xff1a; 首先&#xff0c;putVal 方法会检查当前的 table&#xff08;也就…...

R 语言科研绘图第 55 期 --- 网络图-聚类

在发表科研论文的过程中&#xff0c;科研绘图是必不可少的&#xff0c;一张好看的图形会是文章很大的加分项。 为了便于使用&#xff0c;本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中&#xff0c;获取方式&#xff1a; R 语言科研绘图模板 --- sciRplothttps://mp.…...

软件工程 期末复习

瀑布模型&#xff1a;计划 螺旋模型&#xff1a;风险低 原型模型: 用户反馈 喷泉模型:代码复用 高内聚 低耦合&#xff1a;模块内部功能紧密 模块之间依赖程度小 高内聚&#xff1a;指的是一个模块内部的功能应该紧密相关。换句话说&#xff0c;一个模块应当只实现单一的功能…...

ui框架-文件列表展示

ui框架-文件列表展示 介绍 UI框架的文件列表展示组件&#xff0c;可以展示文件夹&#xff0c;支持列表展示和图标展示模式。组件提供了丰富的功能和可配置选项&#xff0c;适用于文件管理、文件上传等场景。 功能特性 支持列表模式和网格模式的切换展示支持文件和文件夹的层…...

Redis上篇--知识点总结

Redis上篇–解析 本文大部分知识整理自网上&#xff0c;在正文结束后都会附上参考地址。如果想要深入或者详细学习可以通过文末链接跳转学习。 1. 基本介绍 Redis 是一个开源的、高性能的 内存键值数据库&#xff0c;Redis 的键值对中的 key 就是字符串对象&#xff0c;而 val…...

李沐--动手学深度学习--GRU

1.GRU从零开始实现 #9.1.2GRU从零开始实现 import torch from torch import nn from d2l import torch as d2l#首先读取 8.5节中使用的时间机器数据集 batch_size,num_steps 32,35 train_iter,vocab d2l.load_data_time_machine(batch_size,num_steps) #初始化模型参数 def …...

RushDB开源程序 是现代应用程序和 AI 的即时数据库。建立在 Neo4j 之上

一、软件介绍 文末提供程序和源码下载 RushDB 改变了您处理图形数据的方式 — 不需要 Schema&#xff0c;不需要复杂的查询&#xff0c;只需推送数据即可。 二、Key Features ✨ 主要特点 Instant Setup: Be productive in seconds, not days 即时设置 &#xff1a;在几秒钟…...

用鸿蒙HarmonyOS5实现国际象棋小游戏的过程

下面是一个基于鸿蒙OS (HarmonyOS) 的国际象棋小游戏的完整实现代码&#xff0c;使用Java语言和鸿蒙的Ability框架。 1. 项目结构 /src/main/java/com/example/chess/├── MainAbilitySlice.java // 主界面逻辑├── ChessView.java // 游戏视图和逻辑├── …...