一.硬件方案
本设计是用STC89C52单片机作为控制器,步进电机、热释电型红外传感器、led指示灯、蜂鸣器相结合的系统。热释电红外传感器给单片机传输检测信号,通过单片机控制电机驱动,从而控制电机转动,实现门的自动开关。
主要由51单片机+5线4相步进机+人体感应模块+发光二极管+按键设计而成;如图:
二.设计功能
(1)具有自动开门和手动开门两种模式的功能。
(2)采用两个红外人体感应传感器,一个是安装在进门口,一个安装在出门口,自动模式下:任意一个感应到人都会自动打开门步进电机正转一圈,开门后当没有感应人系统会自动延时3秒自动关门,如果在关门的时候感应人到,门就会自动打开,防止误伤到人。优点:安全可靠。
(3)手动模式:按手动开门键可以手动打开门,按手动关门键可以手动关门。
(4)四个LED指示灯功能:从左到右,左绿灯亮自动模式,左红灯亮手动模式,右红灯亮是关门,右绿灯亮是开门。
(5)两个传感器都有指示灯,当感应到人时对应的黄色指示灯就会亮,优点:这样我们很清楚的看到传感器的工作状态。
所有资料:
三.设计原理图
(1)原理图主要采用AD软件进行设计,如图:
(2)PCB图如下:
四.软件设计
(1)程序流程图
(2)主程序源码
/******************主程序**********************/
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(); //步进电机函数
}
}
全套资料下载链接: