Ejecutar el código de mis 3 sensores LDR en un solo

Hola ,estoy trabajando con sensores de luz en una maqueta ,tres para ser exacto, el primero al percibir luz se abre una puerta mediante un pequeno servo ,el otro en cambio mueve una palanca igual forma con un servo ,el otro en cambio enciendo todas mis leds al percibir poco de luz ,independiente funcionan muy bien ,pero solo independientemente ,el punto es que tengo que unirlas y no se como…

Adjunto los tres codigos que quiero unir
Este es el de la barrera del garage que a su vez enciende un led verde y rojo cuando se cierra

#include <Servo.h>
const int ldrPino = A0;  
const int ledPinOCHO= 8;
const int ledPinSIETE =7;


Servo myservo;

void setup() {
Serial.begin(9600);
pinMode(ldrPino, INPUT);
pinMode(ledPinOCHO, OUTPUT);
 pinMode(ledPinSIETE, OUTPUT); 
myservo.attach(6);
}
void loop() {
digitalWrite(ledPinSIETE, HIGH);
int ldrStatus = analogRead(ldrPino);   
if (ldrStatus >=30) {
  myservo.write(0);
   digitalWrite(ledPinSIETE, LOW);
  digitalWrite(ledPinOCHO, HIGH);
 delay (3000);
 myservo.write(90);
 digitalWrite(ledPinOCHO, LOW);
 digitalWrite(ledPinSIETE, HIGH);
  delay (3000);
  digitalWrite(ledPinSIETE, LOW);
  }
else {
myservo.write(90);

pinMode(ldrPino, OUTPUT); 

}
}

ESTA ES DE LA PUERTA

#include <Servo.h>


const int ldrPinos = A1;  
Servo myservo;

void setup() {
Serial.begin(9600);
pinMode(ldrPinos, INPUT); 
myservo.attach(5);
}
void loop() {
int ldrStatus = analogRead(ldrPinos);   
if (ldrStatus >=50) {
  myservo.write(90);
 delay (3000);

}
else {
myservo.write(0);  
pinMode(ldrPinos, OUTPUT); 
}
}

Y LA ULTIMA DE LOS LEDS DE LA MAQUETA

const int ldrPin = A2;  
const int ledPinTRECE = 13;
const int ledPinDOCE = 12;
const int ledPinONCE = 11;
const int ledPinDIEZ = 10;
const int ledPinNUEVE = 9;
void setup() {

 Serial.begin(9600);
 pinMode(ledPinTRECE, OUTPUT); 
 pinMode(ledPinDOCE, OUTPUT);
 pinMode(ledPinONCE, OUTPUT);
 pinMode(ledPinDIEZ, OUTPUT);
 pinMode(ledPinNUEVE, OUTPUT);
 
 pinMode(ldrPin, INPUT); 
 
 
 
}

void loop() {

 int ldrStatus = analogRead(ldrPin);   //read the status of the LDR value

 

  if (ldrStatus >=300) {

 digitalWrite(ledPinTRECE, HIGH);
 digitalWrite(ledPinDOCE, HIGH);
 digitalWrite(ledPinONCE, HIGH);
 digitalWrite(ledPinDIEZ, HIGH);
 digitalWrite(ledPinNUEVE, HIGH);

    
   Serial.println("LDR is DARK, LED is ON");
   
  }
 else {

   digitalWrite(ledPinTRECE, LOW); 
   digitalWrite(ledPinDOCE, LOW);
   digitalWrite(ledPinONCE, LOW); 
   digitalWrite(ledPinDIEZ, LOW); 
   digitalWrite(ledPinNUEVE, LOW);
  
   Serial.println("---------------");
 }



}

En fin, no se como hacerla en un solo programa, de antemano gracias

Lee las Normas del foro
Luego ve a More (abajo a la derecha), click, luego Modify y estas en modo EDICION.
Si tienes que editar un código → Selecciona todo el código y click en </> arriba del emoticon.
**Si tienes que editar un enlace → Selecciona el enlace. Copialo al portapapeles. Click en el eslabón (ver abajo) y sigue los pasos que habras visto al leer las normas. **

Tags.jpg

El procedimiento para unir 3 codigos implica primero aprender arduino ya que si solo copias o adaptas 3 codigos con simples cambios luego no sabras cómo resolver algo como ésto.

  1. Lo primero es copiar sin repetir todas las librerías. Yo tomo como base el código mas largo, de mayor tamaño o más líneas de código.

Luego miro los otros dos, si hay una librería que no esta en el 1ro la agrego, copio y pego.

  1. Idem con la variables globales,constantes y objetos. Lo mismo, sin repetir pero sin que falte nada. Prestar atención si hay cosas con el mismo nombre. ejemplo int contador = 0; en un programa y tmb en otro. Analizo y a uno lo llamo contador1 y listo.

  2. setup Aca comienza el baile!! Solo una vez defines Serial.begin o casos similares, pero no me olvido de nada que vea en los otros dos códigos, sin repetir. Si se definen el mismo pin, tendras que resolverlo con otro pin.

  3. loop. Mismo que antes.

Como verás parece complicado (y lo es) pero se va resolviendo.

Para terminar, si tus códigos usan delay y consulta estados de sensores piensa que cada delay demora el ciclo dentro del loop. Si pones delay(1000) durante 1 segundo no prestará atención a los pulsadores, fines de carrera o lo que sea.

Asi que ya sabes!!