Unir dos codigos de programa y ejecutarlos simultaneamente(servomotor y led accionado con sensor PIR)

Hola a todos.

Ojala los que tengan basta experiencia o entiendan mas que yo puedan echarme la mano con la siguiente problemática que tengo.

Les cuento: tengo ya varios días intentando hacer funcionar dos códigos a la vez, he logrado compilarlo en un solo Sketch, pero solo ejecuta uno solo (el que se encargar de la puerta), estos códigos son: abrir y cerrar una puerta en loop y cuando el sensor PIR detecte movimiento se encienda un led. Ya los probe por separado y funcionan bien pero quisiera que estuvieran en un solo código para usar solo un arduino, estoy usando Arduino UNO.
Los códigos son los siguientes:
EL DE LA PUERTA:
#include<Servo.h>
Servo motor;
void setup() {
motor.attach(3);
}
void loop() {
AbrirPuerta();
CerrarPuerta();
delay(5000);
}
void AbrirPuerta(){
digitalWrite(4,LOW);
digitalWrite(5,HIGH);
motor.write(9);
delay(500);
motor.write(20);
delay(500);
motor.write(30);
delay(500);
motor.write(40);
delay(500);
motor.write(50);
delay(500);
motor.write(60);
delay(500);
motor.write(70);
delay(500);
motor.write(80);
delay(500);
motor.write(90);
delay(500);
motor.write(100);
delay(500);
motor.write(110);
delay(500);
motor.write(120);
delay(500);
motor.write(130);
delay(500);

digitalWrite(4,HIGH);
digitalWrite(5,LOW);
delay(5000);
}
void CerrarPuerta(){
digitalWrite(4,LOW);
digitalWrite(5,HIGH);
motor.write(130);
delay(500);
motor.write(120);
delay(500);
motor.write(110);
delay(500);
motor.write(100);
delay(500);
motor.write(90);
delay(500);
motor.write(80);
delay(500);
motor.write(70);
delay(500);
motor.write(60);
delay(500);
motor.write(50);
delay(500);
motor.write(40);
delay(500);
motor.write(30);
delay(500);
motor.write(20);
delay(500);
motor.write(10);
delay(500);
digitalWrite(4,LOW);
digitalWrite(5,HIGH);
}
EL DEL LED CON SENSOR PIR:
#define PIR 2 // señal de PIR a pin 2

#define LED 1 // led a pin 1

int ESTADO = 0; // almacena estado de señalint ESTADO = 0;

void setup(){

pinMode(PIR, INPUT); // pin 2 como entrada

pinMode(LED, OUTPUT); // pin 1 como salida

delay(2000); // demora para estabilizar el sensor

}

void loop(){

ESTADO = digitalRead(PIR); // lectura de estado de señal

if (ESTADO == HIGH){ // si la señal esta en alto indicando movimiento

digitalWrite(LED, HIGH);  // enciende led

delay(2000);    // demora de 2 segundos

} else {

digitalWrite(LED, LOW); // apaga led

}

}
CUALQUIER APORTE ES BIENVENIDO DE ANTEMANO GRACIAS

Moderador:
Por favor, lee las Normas del foro y edita tu código/error usando etiquetas de código.
Ve a edición, luego selecciona todo el código que has publicado, lo cortas y click en </>


Primero, explique cómo debe reaccionar la puerta al sensor PIR
¿La puerta debe abrirse o cerrarse cuando se da la señal? Digamos abrir. Luego, si se pierde la señal, la puerta debe volver a cerrarse o permanecer abierta?

Y por favor escribe sus codigo con tags.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.