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

基于51单片机汽车自动照明灯超声波光敏远近光灯设计

1 系统功能介绍

本设计基于 STC89C52 单片机,利用光敏电阻模块和超声波模块实现了 汽车自动照明灯智能控制系统,并通过 LED 灯模拟车灯 来展示远近光灯的自动切换效果。

整个系统由 光照检测电路(光敏电阻)+ 超声波 HC-SR04 测距模块 + 高亮白色 LED 远近光灯 + 模式指示灯电路 + 拨动开关选择电路 + 按键手动控制电路 + 电源电路 组成。

主要功能如下:

  1. 光照检测功能:通过光敏电阻检测环境光强度,在白天光照强时关闭车灯;在夜间光照弱时自动开启远光灯,光照阈值可通过电位器调节。

  2. 模式切换功能:系统有 自动模式手动模式,模式通过拨动开关选择,并有指示灯显示当前模式。

  3. 自动模式逻辑

    • 在夜间光照不足时车灯开启;
    • 当超声波检测到前方距离小于 30cm 时,远光灯切换为近光灯;
    • 当距离超过 30cm 时,近光灯自动切换回远光灯。
  4. 手动模式逻辑

    • 用户通过按键自由切换远光灯和近光灯;
    • 模式切换灵活,便于应对复杂路况。

该系统可以有效提升车辆行驶安全性,模拟真实车辆远近光灯自动切换功能,同时结合模式切换满足用户多样化需求。


2 系统电路设计

2.1 单片机最小系统

STC89C52 单片机作为核心控制模块,负责传感器数据采集、逻辑运算、模式切换与 LED 控制。

  • 主要作用

    1. 采集光敏电阻模块的电压信号,判断环境光强;
    2. 采集 HC-SR04 超声波模块的测距数据,判断前方障碍物距离;
    3. 根据模式选择和输入信号,控制远近光灯 LED 的亮灭;
    4. 控制模式指示灯的点亮状态。
  • 关键部分:晶振电路、复位电路、电源稳压电路,保证单片机稳定工作。


2.2 光照检测电路(光敏电阻)

  • 基本原理:光敏电阻在光照强时电阻减小,光照弱时电阻增大。

  • 设计方案:光敏电阻与电阻分压电路相连,输出电压随光强变化,通过单片机 ADC 口或模块比较器输入进行光照强度判断。

  • 功能

    • 白天光照强 → 输出电压高 → 灯关闭;
    • 夜晚光照弱 → 输出电压低 → 自动点亮远光灯。
  • 阈值调节:通过电位器调节分压点,可以设定光照强弱判断的临界值。


2.3 超声波测距电路(HC-SR04)

  • 模块原理:通过发射超声波信号并接收回波,利用时间差计算与前方障碍物的距离。

  • 作用

    • 距离 < 30cm → 远光灯切换为近光灯,避免强光干扰前方车辆或物体;
    • 距离 ≥ 30cm → 切换回远光灯,保证照明范围。
  • 接口

    • Trig → 触发引脚(输出短脉冲);
    • Echo → 接收回波引脚(输入,计算时间差)。

2.4 远近光灯 LED 电路

  • 设计思路

    • 使用 高亮白色 LED 灯 模拟汽车前照灯;
    • 远光灯:LED 全功率点亮;
    • 近光灯:部分 LED 点亮或采用 PWM 降低亮度,模拟近光效果。
  • 控制方式:通过单片机 I/O 口控制三极管或 MOS 管驱动 LED。


2.5 模式选择与指示灯电路

  • 拨动开关

    • ON → 自动模式;
    • OFF → 手动模式。
  • 指示灯

    • 黄灯亮 → 自动模式;
    • 绿灯亮 → 手动模式。

2.6 按键输入电路

  • 功能:手动模式下用户通过按键选择远近光灯。

  • 逻辑

    • 按键 1:切换到远光;
    • 按键 2:切换到近光。

2.7 电源电路

  • 电源设计:采用 +5V 稳压电路为单片机、超声波模块、LED 提供电源;
  • 要求:电源稳定,电流充足,避免灯光工作时电源波动导致系统异常。

3 程序设计

3.1 主程序框架

#include <reg52.h>
#include "lcd.h"
#include "ultrasonic.h"
#include "light.h"
#include "key.h"
#include "relay.h"sbit MODE_SW = P3^0;  //模式开关
sbit LED_AUTO = P3^1; //自动模式指示灯
sbit LED_MANU = P3^2; //手动模式指示灯float distance = 0;
unsigned char light_level = 0; //光照强度
bit mode_auto = 1; //默认自动模式void main()
{while(1){mode_auto = MODE_SW; //读取模式if(mode_auto){LED_AUTO = 0;LED_MANU = 1;Auto_Mode();}else{LED_AUTO = 1;LED_MANU = 0;Manual_Mode();}}
}

3.2 自动模式程序

void Auto_Mode(void)
{light_level = Light_Read(); //读取光照强度if(light_level < 50) //光照不足,夜间{distance = Ultrasonic_Read(); //读取超声波距离if(distance < 30){Near_Light_On();Far_Light_Off();}else{Far_Light_On();Near_Light_Off();}}else //白天,灯关闭{Far_Light_Off();Near_Light_Off();}
}

3.3 手动模式程序

void Manual_Mode(void)
{if(Key1_Pressed()){Far_Light_On();Near_Light_Off();}if(Key2_Pressed()){Near_Light_On();Far_Light_Off();}
}

3.4 光照检测程序

unsigned char Light_Read(void)
{unsigned int adc_value;adc_value = ADC_Read(0); //读取ADC0通道return (adc_value >> 2); //返回0~255范围光照值
}

3.5 超声波测距程序

float Ultrasonic_Read(void)
{unsigned int time = 0;float distance = 0;TRIG = 1;Delay10us();TRIG = 0;while(!ECHO);  //等待高电平while(ECHO) time++; //计算高电平时间distance = (time * 0.017); //转换为cmreturn distance;
}

3.6 灯光控制程序

void Far_Light_On(void)
{P2 = 0x0F; //点亮远光LED
}void Far_Light_Off(void)
{P2 &= 0xF0;
}void Near_Light_On(void)
{P2 = 0x03; //点亮近光LED
}void Near_Light_Off(void)
{P2 &= 0xFC;
}

4 总结

本设计基于 STC89C52 单片机,结合 光敏电阻模块超声波测距模块,实现了 汽车自动照明远近光灯系统。系统支持 自动/手动模式切换,并通过 LED 灯模拟远近光灯,功能包括:

  • 白天灯关闭,夜晚自动开启远光;
  • 夜晚遇到障碍物自动切换近光;
  • 手动模式下可通过按键自由切换;
  • 指示灯直观显示当前模式状态。

该系统既满足了驾驶过程中的自动化需求,也保留了人工干预的灵活性,具有良好的实用性与扩展性,可作为汽车智能照明系统的实验原型与研究基础。

http://www.xdnf.cn/news/1318663.html

相关文章:

  • 自由学习记录(85)
  • TensorRT-LLM.V1.1.0rc0:在无 GitHub 访问权限的服务器上编译 TensorRT-LLM 的完整实践
  • 计算机网络 TCP time_wait 状态 详解
  • Java开发MCP服务器
  • thingsboard 服务器在2核CPU、2G内存资源配置下如何调优提速,适合开发/演示
  • vue封装请求拦截器 响应拦截器
  • 计算机网络 Session 劫持 原理和防御措施
  • 给纯小白的Python操作 PDF 笔记
  • 【算法】模拟专题
  • nertctl使用了解
  • B站 韩顺平 笔记 (Day 21)
  • Windows平台Frida逆向分析环境完整搭建指南
  • 机器学习05-朴素贝叶斯算法
  • 攻防世界—unseping(反序列化)
  • python的邮件发送及配置
  • 逆向Shell实战——红队技巧 vs 蓝队防御全攻略
  • Matlab数字信号处理——基于最小均方误差(MMSE)估计的自适应脉冲压缩算法复现
  • React 基础实战:从组件到案例全解析
  • Mysql笔记-错误条件\处理程序
  • 【Java后端】Spring Boot 集成 MyBatis 全攻略
  • 【前端基础】19、CSS的flex布局
  • 麒麟V10静默安装Oracle11g:lsnrctl、tnsping等文件大小为0的解决方案
  • 【编程实践】关于S3DIS数据集的问题
  • 官方正版在线安装office 365安装工具
  • react 错误边界
  • Linux系统分析 CPU 性能问题的工具汇总
  • STM32学习笔记13-通信协议I2CMPU6050
  • 海洋牧场助力可持续发展,保护海洋生态平衡
  • C语言学习笔记之文件操作
  • 基于Vue的个人博客网站的设计与实现/基于node.js的博客系统的设计与实现#express框架、vscode