基于单片机的智能台灯控制系统

摘要: 文章设计一款单片机智能台灯控制系统,实现对台灯的手动和自动控制功能,以 STC89C52 单片机作为多功能智能台灯的主控制器,光电检测模块检测坐姿,红外传感器检测人体,光敏电阻检测光强,同时按键实现手动控台灯制亮度功能,在Proteus 对智能台灯控制系统的进行软硬件联合仿真,验证台灯的自动控制功能和手动控制功能,实现了预期功能,满足要求。
关键词: 智能台灯;距离检测;光强检测;人体检测;按键控制
我国近视率水平较高,即使放眼全世界,我国也是近视率水平较高的国家,对于广大中小学学生来说,加强视力保护应当从灯具入手,从而更好的保护青少年健康。当前,我国近视群体数量达四亿多,这一数字已经超过了世界平均水平,且呈现出低龄化的发展趋势。调查发现,在我国中小学学生群体中,超过一半的学生存在不同程度的近视问题,而高中生近视程度更是达到 70% 的水平。这一比例远超主要发达国家,这对我国发展而言是极为不利的,因此国家必须采取果断措施,加强青少年视力保护,而推广智能护眼台灯的应用、减少外界环境对青少年眼睛的伤害,就成为保护青少年视力的重要举措。

1 总体方案设计

多功能护眼台灯在自动模式时,检测到无人的环境下,无论什么情况下台灯不开,检测到环境有人,根据光强来控制台灯的亮度,同时具有坐姿检测功能,人体到桌面之间距离太近报警提示;在手动模式下,按键对台灯亮度进行控制。设计的 多功能护眼台灯框图如图 1 所示。

2 硬件电路设计

2.1 硬件电路

智能台灯控制系统的硬件电路主要有单片机控制电路,红外距离检测电路,红外人体检测电路,光强检测电路,按键电路以及报警电路,单片机接受按键信息、距离检测、光强和人体信息,对报警模块进行控制,实现智能台灯控制功能,系统硬件电路如图 2 所示。

2.2 单片机主控制模块

复位、时钟电路共同组成单片机最小系统电路,如图 C2和 C3 配合晶振实现复位电路,电容 C2 C3 一端共同接地后并联在一起通过晶振与单片机的 XTAL11 XTAL22 连接构成的晶振电路。复位电路,RC 实现上电复位,使单片机的复位引脚持续保持 10ms 的高电平实现复位。

2.3 声光报警电路

报警电路如图所示, P1.6 实现声音报警控制,检测到距离太近时,P1.6 引脚输出 PWM 信号时振动发声; P1.4 引脚实现对指示灯控制,引脚输出低电平灯亮。

2.4 按键电路

按键电路功能对应模式切换,手动模式台灯亮度加和亮度减操作。KEY1 按键实现在护眼台灯自动模式和护眼台灯手动控制模式切换,单片机的 P11 引脚控制;在手动模式下,KEY2 按键实现台灯的亮度增加,单片机的 P12 引脚控制,KEY3 按键实现台灯亮度减操作,单片机的 P13 引脚控制,按键按下引脚接地,实现按键检测。

2.5 光照强度检测电路

因为转换得到的光强信号属于电压值模拟量,单片机因为是数字芯片所以不能直接直接读取到电压和电流值,所以需要经过模拟信号向数字信号的转换。
脚实现对 CS 地址为进行控制,本次采集的电路只用到了一路, 单片机的 P14 引脚对转换通道标志进行实时查询读取,P20 实现对 CLK 的控制, AD 模块的比较电压一般都是 5V ,其模数转换的关系如式所示。

2.6 人体检测电路

热释电红外传感器,能探测并输出人体所辐射的红外线。自动控制模块热释电传感器,根据不同的感应结果,在高和低两种电平之间切换,在有人出现的条件下,其状态处于高电平,否则,切换为低电平。

2.7 红外测距模块

测距传感器的输出引脚与单片机的 P15 引脚连接,当距离小于设定值时,引脚输出高电平,高于设定值时输出低电平。单片机的 P15 引脚实现距离检测,距离近时接受到反射光强,内部发光二极管导通,输出高电平。

3 系统软件设计方案

设计的智能台灯主程序如图 3 所示。

实时对按键信息,环境光强、距离以及人体检测比较,实现对蜂鸣器、LED 模块驱动。光强检测子程序,单片机实时对 AD 工作时序进行控制,对光强值进行转换读取,实现对光强的检测。

4 仿真验证

Protues 中搭建完毕仿真模型后,在 KEIL 上编译程序,得到 hex 文件,实现系统仿真。按键实现手动和自动模式的切换,在手动模式下,按键调节台灯的亮度;在自动模式下,检测到人体后,根据光敏电阻检测的值对台灯的亮度进行自动控制,根据检测到的坐姿实现报警提示。

5 结语

集距离检测功能、光强检测功能以及人体检测功能一体的多功能智能台灯,实现了对坐姿、光强的提醒,对提高视力保护起着较积极的作用。设计的多功能智能台灯完成了预期功能,但是该系统还可以进一步的完善,比如增加加入互联网,实现对智能台灯的远程操作,使智能台灯更加智能化和人性化。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/740604.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数字人视频剪辑解决方案,个性化定制服务

如何高效、专业地剪辑出高质量的数字人视频,却成为众多企业面临的难题。针对这一挑战,美摄科技凭借其在人工智能、计算机视觉等领域的深厚积累,推出了面向企业的数字人视频剪辑解决方案,为企业带来前所未有的视频制作新体验。 一…

RN开发搬砖经验之—“Calculated frame index should never be lower than 0“崩溃问题分析

问题重现 崩溃堆栈: Back traces starts. java.lang.RuntimeException: java.lang.IllegalStateException: Calculated frame index should never be lower than 0at com.facebook.react.animated.NativeAnimatedModule$1.doFrameGuarded(NativeAnimatedModule.ja…

qt开发-12_QScrollArea

在 Qt 中,QScrollArea 是用于显示可以滚动内容的控件,通常用于处理视图中内容超出可见区域的情况。它提供了一种在有限的视窗内显示大量内容的解决方案,如显示大图像、长文本、多个小部件等。 常用方法和属性 setWidget(QWidget *widget)&am…

深入了解 GPT-4 和 ChatGPT 的 API---OpenAI Playground

文章目录 基本概念OpenAI API 提供的可用模型在 OpenAI Playground 中使用 GPT 模型 掌握GPT-4 和 ChatGPT 的 API 的使用方法,以便有效地将它们集成到 Python 应用程序中。首先,需要了解 OpenAI Playground。这将使你在编写代码之前更好地了解模型。接着…

Jenkins教程-8-上下游关联自动化测试任务构建

上一小节小节我们学习了一下Jenkins自动化测试任务发送测试结果邮件的方法,本小节我们讲解一下Jenkins上下游关联自动化测试任务的构建。 下面我们以一个真实的自动化测试场景来讲解Jenkins如何管理上下游关联任务的触发和构建,比如我们有两个jenkin任务…

go语言day4 引入第三方依赖 整型和字符串转换 进制间转换 浮点数 字符串

Golang依赖下载安装失败解决方法_安装go依赖超时怎么解决-CSDN博客 go安装依赖包(go get, go module)_go 安装依赖-CSDN博客 目录 go语言项目中如何使用第三方依赖:(前两步可以忽略) 一、安装git,安装程序…

如何将重量传感器 HX711 与 Arduino 一起使用

How to use a Weight Sensor / Load Cell HX711 with an Arduino 原文 OVERVIEW We’ve all used a scale to determine the weight of something at some point in our lives. Using a Load Cell or Weight sensor you can add this capability to your Arduino projects.…

【面试题】面试官:判断图是否有环?_数据结构复试问题 有向图是否有环

type: NODE;name: string;[x: string]: any; }; [x: string]: any;}; export type Data Node | Edge; 复制代码 * 测试数据如下const data: Data[] [ { id: ‘1’, data: { type: ‘NODE’, name: ‘节点1’ } }, { id: ‘2’, data: { type: ‘NODE’, name: ‘节点2’ } },…

【kaggle数据集无法下载解决办法】

kaggle数据集无法下载的解决办法 当我们在做机器学习相关问题的时候,需要到kaggle网站上下载数据集,但是很多时候速度很慢或者连接超时等问题,此时解决办法如下: 在本地安装Kaggle API包 打开终端输入如下指令: pip i…

【NPS】哑终端设备如何实现域VLAN动态分配

在【NPS】微软NPS配置802.1x,验证域账号,动态分配VLAN(有线网络续篇)中,已经通过C3PL策略配置实现了802.1x验证没有通过时,自动分配一个Guest VLAN,以确保用户至少能够访问基本的网络服务。问题…

使用ChatGPT进行数据分析和可视化,12个专业顶级提示词指令,轻松上手使用

大家好,感谢关注。我是七哥,一个在高校里不务正业,折腾学术科研AI实操的学术人。可以和我(yida985)交流学术写作或ChatGPT等AI领域相关问题,多多交流,相互成就,共同进步。 高级学术…

【Java核心技术13】Java中的构造器与析构器:深入解析与代码示例

引言 所有文章均为原创验证,您随手的 关注、点赞、收藏 是我创作最大的动力。 示例代码地址:https://gitee.com/code-in-java/csdn-blog.git 在面向对象编程语言中,构造器和析构器是类生命周期管理的关键部分。构造器负责初始化新创建的对象&…

邂逅Three.js探秘图形世界之美

可能了解过three.js等大型的3D 图形库同学都知道啊,学习3D技术都需要有图形学、线性代数、webgl等基础知识,以前读书学的线性代数足够扎实的话听这节课也会更容易理解,这是shader课程,希望能帮助你理解着色器,也面向第…

红队内网攻防渗透:内网渗透之内网对抗:横向移动篇域控系统提权NetLogonADCSPACKDC永恒之蓝CVE漏洞

红队内网攻防渗透 1. 内网横向移动1.1 横向移动-域控提权-CVE-2020-1472 NetLogon1.2 横向移动-域控提权-CVE-2021-422871.3 横向移动-域控提权-CVE-2022-269231.4 横向移动-系统漏洞-CVE-2017-01461.5 横向移动-域控提权-CVE-2014-63241. 内网横向移动 1、横向移动-域控提权-…

Excel 宏录制与VBA编程 —— 11、工作表及工作簿操作(附:Worksheets与Sheets区别)

代码1 - Worksheets与Sheets区别 Worksheets表示普通工作表;Sheets即可表示普通工作表也可表示图标工作表。 下面模块中代码结果是一样的,大家理解时可结合上面区别说明进行了解 Sub Test()Worksheets("Sheet1").Range("A1").Value 100Sheets("Sheet…

python桌面应用

py文件 import osimport wx import wx.html2class MyFrame(wx.Frame):def __init__(self, parent):wx.Frame.__init__(self, parent, title"启动啦", size(1000, 700))# 创建一个Web视图组件self.browser wx.html2.WebView.New(self)# 加载本地HTML文件# self.brow…

Python重拾

1.Python标识符规则 字母,下划线,数字;数字不开头;大小写区分;不能用保留字(关键字) 2.保留字有哪些 import keyword print(keyword.kwlist)[False, None, True, and,as, assert, async, await…

在 The Sandbox 体验韩剧《碰撞搜查线》的刺激!

风靡全球的韩国电视剧《碰撞搜查线》现已登陆 The Sandbox 元宇宙! ASTORY 的电视剧《碰撞搜查线》以充满动作喜剧色彩的方式,讲述了一个交通犯罪调查小组打击公路上的恶棍的故事。该剧迅速成为 Disney 最受欢迎的节目之一! 在 The Sandbox体…

CSS阴影优化气泡框样式

<body> <div class"pop">气泡框</div> </body>body{display: flex;justify-content: center;align-items: center;height: 100% } .pop{display: flex;justify-content: center;align-items: center;background: #409eff;width: 150px;heigh…

python+unity实现数字人跟随运动

效果如下 设计思路 1 python通过摄像头提取人物肢体关键点信息 2 通过UDP将获取到人体信息发送给Unity 3 unity将获取的的人物信息进行解析 4 将解析的数据赋值给模型骨架 代码获取