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

基于Arduino的智能台灯系统:人体感应自动调节亮度与距离响应功能(包含源码和原理图)

基于Arduino的智能台灯: 调整亮度,检测人体,测距 确保代码好用和原理图,红外测有没有人,测距的模块用来测距离 系统两个模式,自动模式下红外探测有没有人,没人关灯,有人开灯,且测距,距离小于30,响蜂鸣器 手动模式下,可以手动调整灯光亮度,自动模式下的亮度是根据环境光自动调整的。 自己有arduino和这些硬件的话,可以直接组装起来,确保代码好用,有注释 首先导入了必要的库文件,包括U8glib库用于OLED显示屏的控制,SPI库、Wire库、String库和SoftwareSerial库等。 接着定义了一些变量,包括人的存在与否、系统模式、LED亮度等。 接下来是一些函数的定义,包括读取旋钮的值、人体探测传感器的检测、光敏电阻传感器的读取、控制灯光亮度、自动控制灯光亮度、手动控制灯光亮度、模式切换中断函数、开关切换中断函数、距离读取及判断函数和屏幕显示函数等。 在setup函数中进行一些初始化的操作,包括串口的初始化、引脚的设置、中断的设置等。 主循环部分,在循环中首先检测人体探测传感器的信号,并根据系统模式来控制灯光亮度。在自动模式下,通过检测光敏电阻传感器的信号来自动调整灯光亮度,并通过超声波测距模块来判断是否需要报警。在手动模式下,通过旋钮来手动调整灯光的亮度。 最后通过OLED显示屏显示一些相关的信息。 总体来说,这段代码实现了一个智能台灯的控制功能,通过人体探测传感器、光敏电阻传感器、旋钮和超声波测距模块来实现智能调光和报警功能,并通过OLED显示屏显示相关信息。

当然可以,以下是一篇关于您提供的 Arduino 智能台灯代码的功能说明文章,适用于项目文档、技术分享或产品介绍:


项目概述

本系统是一个基于 Arduino 的智能台灯控制系统,具备环境光自适应调节人体感应控制手动/自动模式切换距离检测报警OLED屏幕状态显示等功能。系统通过多种传感器协同工作,实现节能、智能、安全的照明控制。


硬件组成

模块名称引脚/接口功能说明
OLED 屏幕I2C 接口显示系统状态、亮度、模式等
人体感应传感器12 (PEOPLE_PIN)检测是否有人
光敏电阻A3 (IDR_OUT)检测环境光强度
旋钮电位器A2 (VR_OUT)手动调节亮度
超声波测距模块5 (TrigPin)
6 (EchoPin)
测量前方物体距离
蜂鸣器10 (BEEP_PIN)距离过近时报警
模式切换按钮3 (MODE_SWITCH)切换自动/手动模式
用户控制按钮2 (USER_SWITCH)切换距离报警阈值
LED 灯控制9 (LED_CTL)PWM 控制灯光亮度

功能详述

1. 人体感应与延时关灯

  • 使用人体红外传感器(SR501)检测是否有人。
  • 若检测到无人,系统会延迟约15秒(可调nopeople_times)后自动关灯,避免误判。

2. 环境光自适应调节(自动模式)

  • 使用光敏电阻检测环境光强度。
  • 光线越暗,灯光亮度越高;光线充足时自动调暗或关闭灯光。
  • 实现“按需照明”,节能且护眼。

3. 手动调光模式

  • 通过旋钮电位器调节灯光亮度。
  • 亮度范围:0%~100%,通过 PWM 输出控制 LED 亮度。

4. 模式切换

  • 使用按钮切换自动模式手动模式
  • 自动模式下根据人体和环境光自动控制灯光。
  • 手动模式下用户可通过旋钮自由调节亮度。

5. 距离检测与报警

  • 使用超声波模块检测前方障碍物距离。
  • 当距离小于设定阈值(默认30cm,可在20~50cm间调节)时,蜂鸣器报警。
  • 阈值可通过用户按钮循环切换。

6. 状态显示

  • 使用 128x64 OLED 屏幕实时显示:
  • 当前灯光亮度
  • 系统模式(AUTO / MANUAL)
  • 距离报警阈值

系统流程图

开始 → 初始化传感器与屏幕 → 循环执行: ↓ 检测是否有人 → 无人则延时关灯 ↓ 判断当前模式: - 自动模式:有人 → 根据环境光调节亮度 - 手动模式:根据旋钮调节亮度 ↓ 检测距离 → 过近则蜂鸣器报警 ↓ 更新屏幕显示 → 延时750ms → 下一循环

适用场景

  • 家庭书房、卧室
  • 办公室工位
  • 学生宿舍
  • 任何需要智能照明与安全提醒的场合

扩展建议

  • 可接入 Wi-Fi 模块,实现手机远程控制。
  • 增加语音控制模块(如LD3320)。
  • 记录用电数据,生成节能报告。
  • 添加定时开关功能。

基于Arduino的智能台灯: 调整亮度,检测人体,测距 确保代码好用和原理图,红外测有没有人,测距的模块用来测距离 系统两个模式,自动模式下红外探测有没有人,没人关灯,有人开灯,且测距,距离小于30,响蜂鸣器 手动模式下,可以手动调整灯光亮度,自动模式下的亮度是根据环境光自动调整的。 自己有arduino和这些硬件的话,可以直接组装起来,确保代码好用,有注释 首先导入了必要的库文件,包括U8glib库用于OLED显示屏的控制,SPI库、Wire库、String库和SoftwareSerial库等。 接着定义了一些变量,包括人的存在与否、系统模式、LED亮度等。 接下来是一些函数的定义,包括读取旋钮的值、人体探测传感器的检测、光敏电阻传感器的读取、控制灯光亮度、自动控制灯光亮度、手动控制灯光亮度、模式切换中断函数、开关切换中断函数、距离读取及判断函数和屏幕显示函数等。 在setup函数中进行一些初始化的操作,包括串口的初始化、引脚的设置、中断的设置等。 主循环部分,在循环中首先检测人体探测传感器的信号,并根据系统模式来控制灯光亮度。在自动模式下,通过检测光敏电阻传感器的信号来自动调整灯光亮度,并通过超声波测距模块来判断是否需要报警。在手动模式下,通过旋钮来手动调整灯光的亮度。 最后通过OLED显示屏显示一些相关的信息。 总体来说,这段代码实现了一个智能台灯的控制功能,通过人体探测传感器、光敏电阻传感器、旋钮和超声波测距模块来实现智能调光和报警功能,并通过OLED显示屏显示相关信息。

http://www.jsqmd.com/news/626474/

相关文章:

  • TP4552低功耗 5V 常开的锂电池充放电解决方案
  • pytest 在 main 函数中执行测试用例的 3 种常用方法
  • ArduMotor:跨平台电机驱动抽象库设计与实现
  • .NET 诊断技巧 | 日志框架原理、手写日志框架学习噶
  • 代码规范与团队协作效率
  • Arduino嵌入式日志多路复用库Multiplex详解
  • Hyper-V检查点‘幽灵’导致硬盘无法扩容?深度解析元数据混乱与终极修复方案
  • 别再踩坑了!SQL Server数据类型那点事儿,看懂这篇少背三个锅没
  • Windows 系统 Allure 环境变量(PATH)配置完整教程
  • 如何用LinkSwift轻松获取网盘直链:3个实际应用场景详解
  • 【AI原生音视频处理实战指南】:SITS2026核心算法解密、5大落地瓶颈突破与2026Q2企业部署清单
  • 2026年专业污水池膜覆盖厂家盘点:有机肥建设技术、污水处理池反吊膜盖、污水处理池密封盖、污水处理池盖、污水处理设备选择指南 - 优质品牌商家
  • 磁珠在电源端必须加电容?一个容易被忽略的EMI设计细节与避坑指南
  • SparkFun MetaWatch Arduino库深度解析:蓝牙SPP嵌入式控制
  • MATLAB代码:基于风光发电不确定性的随机优化机组组合程序
  • TypeScript的unique symbol:创建唯一的symbol字面量类型
  • 从果园到代码:手把手教你用YOLOv5+DeepSort实现猕猴桃自动计数(附避坑指南)
  • 从零开始:ArcGIS Pro二次开发环境搭建与首个模块加载项实战
  • AI Coding越来越强,我们还有必要学Processing吗? · 创意编程蘸
  • TP4395 1A同步移动电源方案
  • Nanbeige 4.1-3B 计算机视觉联动:YOLOv11检测结果的自然语言描述生成
  • 知乎x-zse-96参数逆向实战:从断点调试到Python复现
  • Python的__init_subclass__类装饰器链式调用顺序与控制流在框架
  • 避坑指南:在Ubuntu 20.04上编译安装GTSAM 4.2并运行因子图示例
  • C#索引器练习题
  • 3步拯救你的B站缓存视频:m4s-converter零配置转换方案
  • 系统找不到 allure 这个命令
  • 从零实现强化学习控制倒立摆:DQN变体对比与参数调优实战
  • AI模型与代码协同灰度发布实战指南(附金融级灰度决策矩阵V2.3)
  • SmartRC-CC1101驱动库:工业级ASK/OOK射频通信嵌入式HAL设计