介绍
自动门是采用STC89C52单片机作为控制器,步进电机、热释电型红外传感器、led指示灯、蜂鸣器相结合的系统。热释电红外传感器给单片机传输检测信号,通过单片机控制电机驱动,从而控制电机转动,实现门的自动开关。
功能
- 具有自动开门和手动开门两种模式的功能。采用两个红外人体感应传感器,一个是安装在进门口,一个安装在出门口,自动模式下:任意一个感应到人都会自动打开门步进电机正转一圈,开门后当没有感应人系统会自动延时3秒自动关门,如果在关门的时候感应人到,门就会自动打开,防止误伤到人。优点:安全可靠。
- 手动模式:按手动开门键可以手动打开门,按手动关门键可以手动关门。
- 四个LED指示灯功能:从左到右,左绿灯亮自动模式,左红灯亮手动模式,右红灯亮是关门,右绿灯亮是开门。
- 两个传感器都有指示灯,当感应到人时对应的黄色指示灯就会亮,优点:这样我们很清楚的看到传感器的工作状态。
电路
(1)整体电路主要由51单片机最小系统电路,5线4相步进电机,人体感应模块,发光二极管,按键电路设计而成;原理图主要采用AD软件进行设计,如图:
(2)PCB图如下:
软件设计
部分程序源码
/******************主程序**********************/
void main()
{
static unsigned char value;
while(1)
{
key();
if(key_can < 10)
{
if(key_can == 1) //自动模式
{
flag_moshi = 0;
flag_z_f = 0;
led4 = 0; led3 = 1; //指示灯
}
if(key_can == 2) //手动模式
{
flag_moshi = 1;
flag_z_f = 0;
led4 = 1; led3 = 0; //指示灯
}
if(key_can == 3) //手动关
{
flag_z_f = 2;
led2 = 0; led1 = 1; //指示灯
}
if(key_can == 4) //手动开
{
flag_z_f = 1;
led2 = 1; led1 = 0; //指示灯
}
}
if(flag_moshi == 0) //自动模式
{
if((hw1 == 1) || (hw2 == 1))
{
flag_z_f = 1; //打开
led2 = 1; led1 = 0; //指示灯
flag_zdg = 0;
flag_sj = 0;
}
if(flag_zdg == 1) //延时自动关
{
value ++;
if(value > 100) //1m
{
value = 0;
flag_sj ++;
if(flag_sj >= 5) //5秒
{
flag_zdg = 0;
flag_z_f = 2;
}
}
delay_1ms(10); //10ms
}
}
bujindj(); //步进电机函数
}
}
资料链接:https://pan.baidu.com/s/1N2LoTy5aUBTycvo6jE9DOg?pwd=icmf
提取码:icmf