基于51单片机的智能照明控制系统

2023-10-27

**功能:**基于51单片机的智能照明控制系统,以51系列单片机为核心,使用光敏传感模块(采用ADC0832对光敏电路进行AD转换)、红外传感模块与声敏传感模块组成检测装置,并采用PWM对照明灯的光强度进行控制。
1.本设计分为手动模式和自动模式,可通过模式切换键切换模式;自动模式下绿灯亮,手动模式下,绿灯灭;
2.在自动模式下,照明灯根据环境光照强度和是否区域内检测到人体、声音来智能开启和关闭照明器,并根据不同环境光照强度,自动调节灯泡的照明亮度。
3.当检测到光照强度大于300LX(人眼对可见光感觉最舒适的照明强度)或未检测到人体、声音时,照明器自动关闭。
4.只有在满足光亮强度低于300LX和红外检测区域被有人员活动或声敏模块检测有声音这两个条件时才自动开启照明器。
Protues仿真:
在这里插入图片描述
程序:

/*********************************************************/
// 主函数
/*********************************************************/
void main()
{
	uchar ret;
	
	TimerInit(); 					// 定时器初始化
	LED=0;								// 指示灯点亮(自动模式指示灯)
	ret=Get_ADC0832();		// 获取AD采集结果(环境光照强度)
	AutoControl(ret);			// 上电先进行一次自动亮度控制	
	AutoControl(ret+7);
	
	while(1)
	{
		/* 模式切换控制 */
		if(Key1==0)					// 如果按键1被按下去
		{
			LED=~LED;					// 切换LED灯状态
			DelayMs(10);			// 延时消除按键按下的抖动
			while(!Key1);			// 等待按键释放
			DelayMs(10);			// 延时消除按键松开的抖动
		}
			
		/* 亮度控制 */
		if(LED==1)							// 如果LED是灭的
		{
			ManualControl();			// 则进行手动控制
		}
		else										// 如果LED是亮的
		{
			if(gTime<60000)
			{
				ret=Get_ADC0832();		// 获取AD采集结果(环境光照强度)
				AutoControl(ret);			// 进行自动控制	
				DelayMs(200);
			}
		}
		
		/*检测是否有人*/
		if(Module==1||Sound==1)
		{
			gTime=0;										// 检测到有人,则把60秒计时清零
		}
		if(gTime>60000)								// 如果gTime的值超过了60000
		{
			gTime=60000;								// 则把gTime的值重新赋值为60000,避免过大溢出
			gIndex=0;										// 如果1分钟检测不到有人,则把台灯熄灭
		}
	}
}


/*********************************************************/
// 定时器0服务程序,1毫秒
/*********************************************************/
void Timer0(void) interrupt 1
{
	TH0  = 252;						// 给定时器0的TH0装初值
	TL0  = 24;						// 给定时器0的TL0装初值	
	
	gTime++;							// 每1毫秒,gTime变量加1
	gCount++;							// 每1毫秒,gCount变量加1
	
	if(gCount==10)				// 如果gCount加到10了
	{
		gCount=0;						// 则将gCount清零,进入新一轮的计数
		if(gIndex!=0)				// 如果说台灯不是最暗的(熄灭)
		{
			Lamp=0;						// 则把台灯点亮
		}
	}
	if(gCount==gIndex)		// 如果gCount计数到和gIndex一样了
	{
		if(gIndex!=9)				// 如果说台灯不是最亮的
		{
			Lamp=1;						// 则把台灯熄灭
		}
	}
}


关注公众号-电子应用学习馆,首页回复智能照明获取。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于51单片机的智能照明控制系统 的相关文章

随机推荐

  • qnx的触摸校准calib_校准工具使用教程

    锋影 email 174176320 qq com 环境配置 Hardware TI OMAPL138 Board OS QNX Neutrino 6 5 0 BSP bsp nto640 ti omap l138 evm trunk 20
  • 分析一波 useEffect

    useEffect 介绍 useEffect是reactHook中最重要和常用的hook之一 对比React class 的生命周期函数 可以把 useEffect Hook 看做 componentDidMount componentDi
  • 微信小程序学习之修改密码(正则表达式)

    一般在网页及APP里减到的修改密码页面会有三个编辑框 分别是 输入原密码 输入新密码 再次输入新密码 因此在微信小程序html的代码设计了如下的界面 三个编辑框及一个确定按钮 编辑框内的文字是通过html的placeholder属性实现 同
  • 自动化运维工具ansible:(二)playbook剧本的讲解与应用

    目录 一 playbook概述 1 1playbook介绍 1 2 Ansible playbook使用场景 1 3yaml基本语法规则 1 4yaml支持的数据结构 1 5示例 二 Inventory中变量 2 1inventor 变量参
  • Linux grep之正则表达式

    文章目录 6 grep之正则表达式 1 自学书上的 2 课件上的 3 总结 6 grep之正则表达式 1 自学书上的 在正则表达式中 空格和其他字符没有什么区别 正则表达式识别的字符包括 如果要使用某个字符作为文本字符就必须要使用转义字符
  • 前方高能!这是最新的一波Android大厂面试题汇总,不学则已,一学惊人

    前言 面试大厂 那就是考察你技术方向的一些专业技能 如果你面试Android岗位 那 Android 方向的专业技能就是考察很重要的一个方向 但是话说回来 即便这条是所有人都知道的共识 也不是所有人都能搞得定 有些人就是觉得自己基础差 非科
  • XML - XML学习/XML文件解析器(C++)实现

    XML XML学习 XML文件解析器 C 实现 XML概述 XML是一套定义语义标记的规则 这些标记将文档分成许多部件并对这些部件加以标识 它也是元标记语言 用于定义其他与特定领域有关的 语义的 结构化的标记语言的句法语言 XML与HTML
  • 05-java常用api类

    1 String类 String 类在 java lang 包下 所以使用的时候不需要导包 String 类代表字符串 Java 程序中的所有字符串文字 例如 abc 都被实现为此类的实例也就是说 Java 程序中所有的双引号字符串 都是
  • UE4快速导入Blender模型——Send to Unreal 插件使用

    下载地址 https github com epicgames blendertools blender安装Send to Unreal插件 设置自定义路径 打开UE4 插件 搜索 Python Editor Script Plugin 勾
  • lua小结

    1 JIT可以编译优化清单 http wiki luajit org NYI 2 lua数组的下标是从1开始的 在没有指定赋值的情况下 C语言的数组下标是从0开始的 3 逻辑表达式and or not用法 local a b and C o
  • 【Leetcode】MySQL:数据库简单题(577 员工奖金)

    577 员工奖金 1 题目描述 选出所有bonus lt 1000 的员工的name及其bonus 2 具体实现 Write your MySQL query statement below left join null select na
  • Devs--开源规则引擎介绍

    Devs Devs是一款轻量级的规则引擎 开源地址 https github com CrankZ devs 基础概念 此规则引擎的基础概念有字段 条件 规则等 其中字段组成条件 条件组成规则 并且支持多个条件通过与或组成一个规则 下面用常
  • 一短文读懂编译型与解释型编程语言

    在编程世界中 我们经常听到编译型语言和解释型语言这两个术语 它们是什么 有什么区别呢 让我们一起来探讨一下 编译型语言 编译型语言 如C Java等 是一种需要先被编译成机器代码 然后才能被执行的语言 你可以把它想象成一个笔译员 他会先把你
  • 用电器分析识别装置(2021 年全国大学生电子设计竞赛H题)

    用电器分析识别装置 2021 年全国大学生电子设计竞赛H题 摘要 1 系统方案 1 1 用电器分析识别装置的原理和结构 1 2 方案论证 1 2 1 系统供电论证和选择 1 2 2 采样方法论证和选择 1 2 3 采样芯片的型号选择 1 3
  • 爆款短视频剪辑方法技巧,这样剪辑出来的短视频更容易爆,收藏

    爆款短视频剪辑方法推荐 这样剪辑出来的短视频更容易爆 前面几篇内容 我们从定位到脚本结构 再到选题 再到互动点和内容各方面都为短视频做好了素材准备 后续我们也开始知道怎么写自己的文案了 也告诉大家什么是一个好的表现力 还有我们的景别 我们的
  • 内核对象

    内核对象 1 什么是内核对象 内核对象是内核分配的一段空间 如文件对象和进程对象等 可以用Windows提供的函数来创建相应的内核对象 创建成功后返回一个对象句柄 并且对象句柄值是进程相关的 程序不能直接操作内核对象 只能通过Windows
  • MFC学习笔记 — C++如何执行.exe文件

    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XX 作 者 文化人 XX 联系方式 或进群 471144274 XX 版权声明 原创文章 欢迎评论和转载 转载时能告
  • 随机森林实例(R语言实现)

    1 可以先查询一下路径 可以是数据所在的路径 需要更改路径的话用setwd 路径 2 安装需要的包并使用 install package 包名 library 包名 randomForest 随机森林包 caret 常用于机器学习 数据处理
  • 【22-23 春学期】人工智能基础--AI作业9-卷积3-XO识别

    1 For循环版本 手工实现 卷积 池化 激活 import numpy as np x np array 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
  • 基于51单片机的智能照明控制系统

    功能 基于51单片机的智能照明控制系统 以51系列单片机为核心 使用光敏传感模块 采用ADC0832对光敏电路进行AD转换 红外传感模块与声敏传感模块组成检测装置 并采用PWM对照明灯的光强度进行控制 1 本设计分为手动模式和自动模式 可通