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