当前位置: 首页 > 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.dtcms.com/a/336560.html

相关文章:

  • Git安装使用
  • 【软考中级网络工程师】知识点之网络存储
  • 如何巧妙通过面试提高业务经验?
  • Spring IoC DI 终极指南:从造车模型到企业级开发实战
  • 嵌入式开发入门—电子元器件~半导体
  • Linux中iSCSI存储配置与管理指南
  • Java的网络攻防仿真演练系统
  • 深度学习·GFSS
  • C语言字符串操作汇总
  • 线程相关知识
  • NokoPrint:安卓平台上的便捷无线打印解决方案
  • 存储引擎 InnoDB
  • 【Python】Python 面向对象编程详解​
  • k8s-单主机Master集群部署+单个pod部署lnmp论坛服务(小白的“升级打怪”成长之路)
  • 集成电路学习:什么是SIFT尺度不变特征变换
  • oom 文件怎么导到visualvm分析家
  • 双指针和codetop2(最短路问题BFS)
  • 闭区间是否存在一个开区间包含之
  • ESP32S3在圆形240x240 1.8寸GC9A01 SPI显示屏显示双眼睛表情
  • 寻找数组的中心索引
  • ai测试(六)
  • [Java恶补day50] 174. 地下城游戏
  • 数据结构03(Java)--(递归行为和递归行为时间复杂度估算,master公式)
  • 数学建模 13 SVM 支持向量机
  • 原子操作及基于原子操作的shared_ptr实现
  • PYTHON让繁琐的工作自动化-PYTHON基础
  • 【撸靶笔记】第五关:GET - Double Injection - Single Quotes - String
  • 基于STM32单片机智能RFID刷卡汽车位锁桩设计
  • Qt同步处理业务并禁用按钮
  • linux系统------kubenetes单机部署