[Descarga de recursos] La dirección de descarga es la siguiente:
https://docs.qq.com/doc/DTlRSd01BZXNpRUxl
51 Diseño del sistema de control automático de la puerta-liberación de calor-LED-en el lugar-evitación de obstáculos infrarrojos-BELL-ULN2003
El diseño está compuesto por un circuito de un solo chip STC89C52 + circuito de módulo piro-infrarrojo + circuito indicador LED + circuito de detección de interruptor en posición + circuito sensor de evitación de obstáculos infrarrojos + circuito de alarma de zumbador + circuito de accionamiento del motor paso a paso ULN2003 + circuito de alimentación.
1. El sensor piro-infrarrojo detecta si hay alguien y el motor paso a paso se detiene por defecto (es decir, la puerta está cerrada por defecto). Si hay una persona, el motor paso a paso gira hacia adelante (simulando la apertura de la puerta) hasta que la señal es detectada por el interruptor en posición No. 1 (la puerta se abre al máximo), el motor paso a paso se detiene. Si no se detecta a nadie de nuevo, el motor paso a paso se invierte (cierre analógico de la puerta) y el motor paso a paso se detiene cuando la señal es detectada por el interruptor en posición de 2 ha (la puerta está cerrada). Ciclo a su vez ...
2. Cuando el piro infrarrojo detecta a una persona, el LED amarillo se encenderá; de lo contrario, el LED amarillo no se encenderá.
3. Si el sensor infrarrojo para evitar obstáculos detecta un obstáculo, el zumbador emitirá una alarma; de lo contrario, el zumbador no emitirá una alarma.
4. Si se detecta a alguien durante el proceso de cierre de la puerta, en este momento, el motor paso a paso gira para abrir la puerta.
#define Coil_B1 {A1=0;B1=1;C1=0;D1=0;}//B相通电,其他相断电
#define Coil_C1 {A1=0;B1=0;C1=1;D1=0;}//C相通电,其他相断电
#define Coil_D1 {A1=0;B1=0;C1=0;D1=1;}//D相通电,其他相断电
#define Coil_OFF {A1=0;B1=0;C1=0;D1=0;}//全部断电
unsigned char zfFlag = 0 ; //正反转标志
unsigned char guanIng = 1;//关闭过程中
unsigned long time_20ms=0; //定时器计数
unsigned char daoweiFlag = 2;//记录当前状态
void Init_Timer0(void);
void main (void)
{
Init_Timer0(); //定时器0初始化
DelayMs(200); //延时有助于稳定
while (1) //主循环
{
if(tanTou == 0) buzzer =0 ;//探头检测到报警