基于单片机的故障检测自动保护智能防夹自动门设计及LCD状态显示系统
点击链接下载资料:https://download.csdn.net/download/m0_51061483/92081432
1 系统功能概述
随着智能建筑与自动化控制技术的发展,自动门在医院、商场、写字楼等公共场所得到了广泛应用。传统自动门虽然能够实现自动开关功能,但普遍存在安全性不足、缺乏状态反馈与故障检测能力等问题。例如,当门体运行过程中遇到障碍物时,若无防夹机制,则容易造成设备损坏或人员受伤;若电机故障,系统无法及时报警,可能导致安全隐患。
本设计以单片机为核心,提出了一种具有故障检测自动保护与防夹功能的智能自动门系统 。该系统不仅实现了自动与手动两种开关门模式,还通过红外传感器、电流检测模块、蜂鸣报警与LCD状态显示实现了全方位的安全与可视化控制。
系统主要功能如下:
-
LCD状态显示 :
LCD实时显示自动门运行状态,包括"开门中"、"关门中"、"等待中"以及"故障报警"等信息,便于操作人员直观了解当前系统状态。
-
红外自动检测控制 :
通过红外传感器检测是否有人靠近,当有人接近门体时自动开门;当无人靠近且门已关闭后,系统自动停顿3秒再执行下一个操作,防止误触发。
-
电流检测与故障报警 :
电机运行过程中实时监测电流变化,当检测到电流异常升高(如门体卡住或机械阻力过大),系统判断为故障状态,自动停止电机运行,同时蜂鸣器报警并点亮红色LED灯提示。
-
防夹保护机制 :
当门在关闭过程中检测到异常阻力(电流异常上升),系统立即停止并反向开启门体,避免夹伤人员或损坏设备。
-
手动与自动模式切换 :
系统提供两种运行模式:自动模式下通过红外检测实现自动开关;手动模式下用户可通过按键控制门体动作,适用于特殊情况下的操作。
本系统兼顾安全性、智能性与实用性,适合应用于医院通道门、办公楼入口、实验室安全门等场景。
2 系统电路设计
系统硬件以 STC89C52 单片机 为核心,外围包括红外检测模块、电流检测模块、电机驱动模块、LCD显示模块、按键模块、蜂鸣器报警模块及电源电路等部分。
各功能模块通过单片机进行集中控制,实现信号采集、逻辑判断与执行控制。
2.1 单片机最小系统
本系统选用 STC89C52 单片机 作为主控芯片,其内含丰富的I/O接口、两个定时器和一个全双工串口,具有低功耗、高性能及价格低廉的特点。最小系统包括:
- 时钟电路:采用11.0592MHz晶振,为单片机提供精确的工作时钟。
- 复位电路:由电容、电阻及按键组成,用于系统初始化。
- 供电电路:提供稳定的+5V直流电压,确保单片机与传感器正常工作。
单片机主要负责信号采集、逻辑运算及输出控制,是整个自动门系统的大脑。
2.2 红外检测模块
红外检测模块由 红外发射管与红外接收管 组成。当有人员靠近自动门时,红外光线被反射至接收管,引发信号电平变化。该信号经比较电路转换为数字信号后送入单片机,用于判断门是否需要开启。
模块特点:
- 响应灵敏,检测距离约为30--80 cm;
- 抗干扰能力强,适合室内环境;
- 低功耗设计,可长期运行。
在程序中,当检测到红外信号为高电平时,系统执行开门动作;当信号恢复为低电平且延时一定时间后,执行关门动作。
2.3 电流检测模块
为了检测电机运行状态,本系统引入了 ACS712 电流检测模块 。
ACS712能将通过的电流转换为与之成比例的模拟电压信号,输出电压范围为0--5V。通过单片机内置或外接A/D转换电路将其转换为数字值,实现实时电流监测。
当检测到电流超过设定阈值(如2A),系统判断为电机阻塞或门体遇阻,即触发"防夹"或"故障报警"逻辑。
计算公式如下:
I = (Vout - 2.5) / 0.066
该模块是实现智能防护与自动故障检测的关键部件。
2.4 电机驱动模块
电机控制采用 L298N 双H桥驱动芯片 ,可实现电机正反转与启停控制。
单片机通过两路控制信号输入至L298N的IN1、IN2端口实现方向切换,通过PWM控制EN引脚实现速度调节。
控制逻辑如下:
| 状态 | IN1 | IN2 | 动作 |
|---|---|---|---|
| 开门 | 1 | 0 | 正转 |
| 关门 | 0 | 1 | 反转 |
| 停止 | 0 | 0 | 停止 |
为防止反向电动势干扰,L298N内部自带续流二极管保护,保证电机切换安全。
2.5 LCD显示模块
显示部分采用 LCD1602 液晶模块 ,用于实时显示系统状态信息。
显示内容包括:
状态:开门中
电流:1.2A
模式:自动
LCD通过并行方式与单片机连接,数据线D4~D7接P0口,控制线RS、RW、E分别接P2口。
显示模块不仅提升了系统交互体验,也便于故障诊断与维护。
2.6 按键与模式选择模块
系统配备若干按键用于模式选择与手动操作:
- 模式切换键:自动/手动切换;
- 开门键:手动开门;
- 关门键:手动关门;
- 停止键:紧急停止。
按键采用矩阵扫描方式检测,通过程序消抖后执行相应控制逻辑。
2.7 报警与指示模块
该模块包括蜂鸣器与两种LED指示灯:
- 红灯(Fault):表示系统检测到故障;
- 绿灯(Run):表示门体运行中;
- 蜂鸣器:提示故障或防夹事件。
报警信号由单片机控制,通过三极管驱动放大,实现音量增强与负载隔离。
2.8 电源模块
系统采用12V直流供电,电机由12V供电;单片机与传感器电路经7805稳压后得到+5V工作电压。
为了降低电磁干扰,电源部分增加了电解电容与陶瓷电容滤波,保证系统稳定运行。
3 系统程序设计
软件部分采用模块化结构设计,主要包括以下程序模块:
- 主控程序模块
- 红外检测模块
- 电流检测模块
- 电机控制模块
- 防夹与故障处理模块
- LCD显示模块
- 模式切换与按键处理模块
- 报警输出模块
程序采用C语言编写,在Keil环境下开发,下载至单片机后可独立运行。
3.1 主程序设计
主程序负责系统初始化与逻辑调度,周期性读取传感器数据并根据运行模式执行相应控制。
#include <reg52.h>
#include "lcd1602.h"
#include "infrared.h"
#include "current.h"
#include "motor.h"
#include "key.h"
#include "buzzer.h"
void main() {
System_Init();
while(1) {
Key_Scan();
Infrared_Check();
Current_Check();
Mode_Execute();
LCD_Update();
}
}
3.2 红外检测程序
该模块用于检测是否有人靠近门体,从而决定是否开门。
检测信号来自红外接收器的数字输出。
void Infrared_Check() {
if(IR_IN == 1) {
Open_Door();
Delay_ms(3000);
Close_Door();
}
}
通过延时函数确保门在靠墙状态下停顿3秒,避免机械冲撞。
3.3 电流检测程序
实时检测电机工作电流,用于判断是否出现故障或夹物情况。
float Current_Check() {
unsigned int adc_value;
float current;
adc_value = ADC_Read();
current = (adc_value / 255.0) * 5.0;
if(current > 2.0) {
Fault_Handle();
}
return current;
}
当电流超过设定阈值时,立即触发保护。
3.4 电机控制程序
实现电机的正反转与停止控制,结合红外与按键模块实现手动和自动控制。
void Open_Door() {
IN1 = 1;
IN2 = 0;
}
void Close_Door() {
IN1 = 0;
IN2 = 1;
}
void Stop_Door() {
IN1 = 0;
IN2 = 0;
}
在防夹逻辑中,会调用Stop_Door()后立即执行反转动作。
3.5 防夹与故障保护模块
当系统检测到电流异常或遇阻时执行反向动作并报警提示。
void Fault_Handle() {
Stop_Door();
Buzzer_On();
LED_RED = 1;
Delay_ms(1000);
Open_Door(); // 反向开启,执行防夹
Delay_ms(2000);
Stop_Door();
Buzzer_Off();
}
该机制能在1秒内快速响应,确保人员安全。
3.6 LCD显示程序
LCD用于显示门体运行状态及实时电流信息,显示内容根据不同状态自动切换。
void LCD_Update() {
LCD_SetCursor(0,0);
LCD_Print("Mode: ");
if(mode == AUTO) LCD_Print("AUTO ");
else LCD_Print("MANU ");
LCD_SetCursor(1,0);
if(fault_flag) LCD_Print("Status: FAULT");
else if(running_flag) LCD_Print("Status: RUN ");
else LCD_Print("Status: WAIT");
}
3.7 模式切换与按键处理程序
通过按键实现模式切换与手动操作逻辑:
void Key_Scan() {
if(KEY1 == 0) mode = AUTO;
if(KEY2 == 0) mode = MANUAL;
if(KEY3 == 0 && mode == MANUAL) Open_Door();
if(KEY4 == 0 && mode == MANUAL) Close_Door();
}
按键检测采用消抖机制,防止误触发。
3.8 报警模块程序
控制蜂鸣器与LED报警灯的开关,用于提示故障与状态。
void Buzzer_On() {
BUZZER = 0;
}
void Buzzer_Off() {
BUZZER = 1;
}
LED指示灯与蜂鸣器联动,使得报警更加醒目。
4 系统运行与性能分析
在实验与实测中,该系统实现了较高的智能化与安全性。主要性能如下:
- 自动响应速度:红外检测至门体启动延迟小于0.5秒;
- 防夹反应时间:从检测到障碍到反向开启的响应时间约1秒;
- 电流监测精度:误差控制在±5%以内;
- 故障报警灵敏度:高电流与机械卡阻均能准确检测;
- LCD显示刷新周期:每200ms更新一次,显示稳定清晰。
系统在运行过程中稳定可靠,电机启停平稳,未出现误动作。防夹与报警机制能有效保障人员安全;LCD显示直观友好,极大提升了使用体验。
本设计充分体现了单片机控制在智能设备中的应用价值,为自动门行业提供了一个低成本、高可靠性的智能化控制方案。