当前位置: 首页 > 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/593351/

相关文章:

  • 2025届最火的十大AI学术网站推荐
  • 迪文T5L屏幕RS485通信实战:从调试失败到成功发送的完整记录
  • FPGA SDIO模式SD卡读写源码(可移植至任意FPGA,读写速率50Mbps+)
  • STM32 AES256加密串口IAP升级Bootloader程序与上位机软件全套资料获取说明...
  • 7-Zip开源压缩工具完全指南:高效文件压缩与管理解决方案
  • Linux内核中的虚拟化支持技术
  • ALOHA开源双臂机器人系统全攻略:从核心价值到深度实践
  • LeetCode 199. Binary Tree Right Side View 题解
  • 从过热保护到精准限流:用Multisim拆解一个线性电源的‘安全卫士’电路(TL431+运放实战)
  • Xilinx Ultrascale系列I/ODELAYE3级联优化策略与实战解析
  • Ollama环境变量全解析:除了OLLAMA_GPU_LAYER,这些参数也能大幅提升你的模型运行效率
  • 基于光伏出力利用率的电动汽车充电站能量调度策略:动态评估充放电灵活性,优化准入规则与电价制定...
  • Dual-Loop Adaptive AI System Whitepaper(DLAAS)双环自适应AI系统正式命名白皮书
  • Linux内核中的工作队列机制:异步任务处理的基石
  • COMSOL模拟:电磁超声压电接收技术在铝板裂纹检测中的应用
  • 程序员不用患上AI焦虑症
  • 深入解析字符串处理函数与printf的实现原理
  • GetQzonehistory:如何一键完整导出QQ空间所有说说的终极指南
  • 基于模型预测算法的微网双层能量管理模型:考虑储能优化与电池退化成本的全寿命周期仿真
  • Linux内核中的PREEMPT_RT实时补丁详解
  • Windows下用Fiddler+夜神模拟器抓取APP数据包完整指南(附证书配置避坑技巧)
  • 直流有刷电机闭环控制:主控DSP28335的AB编码器速度闭环系统
  • 基于DDPG算法的发电公司竞价策略代码逐逐段解读说明
  • 传统永磁同步电机的FOC离散化simulink模型,效果较好 附赠传递函数离散化推导的文档
  • 【实战指南】华为Atlas200 DK与电脑双通道连接:USB与网线方案全解析
  • python binascii
  • 告别云端API!用C#调用微信本地OCR,5分钟搞定扫描件文字提取
  • Linux内核中的Completion机制:同步等待的艺术
  • 三菱电梯保密资料解析与代码分析
  • python codecs