ayuda con problema de sketch

hola saludos amigos soy nuevo en esto y quiziera ver si me pueden ayudar con un problema que tengo ya tengo un sketch! pero quiero meter dos en uno solo osea para tener dos salidas y dos entradas haciendo lo mismo por separado y no se como hacerlo hize una prueba y funciono pero no como quiero se pone lentas las respuestas
este es el sketch original

byte PinBtn = 11;                         // Pin Pulsador             
bool E_Btn = false;                       // Estado pulsador
bool aE_Btn = false;                      // Estado anterior pulsador
const int todas = 2;
unsigned long Espera=200;                // Tiempo maximo a esperar entre pulsaciones, si lo excede ejecuta
unsigned long Final=0;                    // Auxiliar para controlar el tiempo trancurrido entre pulsaciones
unsigned long aMilis=0;                   // Auxiliar para controlar desborde de millis
byte Pulsos=0;                            // Contador de pulsos

void setup()
{
  pinMode(todas, OUTPUT);
  pinMode(PinBtn, INPUT);
  Serial.begin(9600);
}

void loop()
{ 
  aMilis=millis();                            // Almacenamos millis para controlar desborde
  E_Btn = digitalRead(PinBtn);                // Leer pin pulsador
  if (E_Btn && !aE_Btn && Pulsos < 255)       // Estado pulsador cambia a high
  {
    Pulsos ++;                                // Añadir un pulso
    Final = millis() + Espera;                // Tiempo de espera para ejecutar comando
  }
  aE_Btn = E_Btn;                             // Almacenamos ultimo estado
  if (Pulsos > 0 && millis() > Final)         // Hay opcion pulsada y finalizo imepo de espera
  {
    Serial.print("puertas ");
   
    Serial.println("abiertas");
    
    switch (Pulsos) 
    {
      case 1:
        // Codigo para 1 pulsacion
        break;
      case 2:
        digitalWrite(todas,HIGH);
        delay(200);
        digitalWrite(todas,LOW);
        delay(200);
        // Codigo para 2 pulsaciones
        break;
    
    }
    Pulsos = 0;
  }
  if (aMilis < millis()) {Final = Final - aMilis + millis();}    // Control desborde millis
}

y asi funciona correctamante, pero! de la sig forma ya no funciona bien y ademas tengo otros sketch que quiziera adjuntar y no tengo la menor idea de como que va primero despues como?

byte PinBtn = 11;                         // Pin Pulsador             
bool E_Btn = false;                       // Estado pulsador
bool aE_Btn = false;                      // Estado anterior pulsador
const int todas = 2;
unsigned long Espera=200;                // Tiempo maximo a esperar entre pulsaciones, si lo excede ejecuta
unsigned long Final=0;                    // Auxiliar para controlar el tiempo trancurrido entre pulsaciones
unsigned long aMilis=0;                   // Auxiliar para controlar desborde de millis
byte Pulsos=0; 

byte PinBtn1 = 13;                         // Pin Pulsador             
bool E_Btn1 = false;                       // Estado pulsador
bool aE_Btn1 = false;                      // Estado anterior pulsador
const int todas1 = 3;
unsigned long Espera1=200;                // Tiempo maximo a esperar entre pulsaciones, si lo excede ejecuta
unsigned long Final1=0;                    // Auxiliar para controlar el tiempo trancurrido entre pulsaciones
unsigned long aMilis1=0;                   // Auxiliar para controlar desborde de millis
byte Pulsos1=0;                     // Contador de pulsos

void setup()
{
  pinMode(todas, OUTPUT);
  pinMode(PinBtn, INPUT);
  Serial.begin(9600);
   pinMode(todas1, OUTPUT);
  pinMode(PinBtn1, INPUT);
  
}

void loop()
{ 
 
  aMilis=millis();                            // Almacenamos millis para controlar desborde
  E_Btn = digitalRead(PinBtn);                // Leer pin pulsador
  if (E_Btn && !aE_Btn && Pulsos < 255)       // Estado pulsador cambia a high
  {
    Pulsos ++;                                // Añadir un pulso
    Final = millis() + Espera;                // Tiempo de espera para ejecutar comando
  }
  aE_Btn = E_Btn;                             // Almacenamos ultimo estado
  if (Pulsos > 0 && millis() > Final)         // Hay opcion pulsada y finalizo imepo de espera
  {
    
    switch (Pulsos) 
    {
      
       
      case 2:
        Serial.println("abriendo puertas");
        delay(200);
        digitalWrite(todas,HIGH);
        delay(200);
        digitalWrite(todas,LOW);
        delay(200);
        Serial.print("puertas ");
        Serial.println("abiertas");
    
       
        break;
    
    }
    Pulsos = 0;
  }
  if (aMilis < millis()) {Final = Final - aMilis + millis();}    // Control desborde millis



 aMilis1=millis();                            // Almacenamos millis para controlar desborde
  E_Btn1 = digitalRead(PinBtn1);                // Leer pin pulsador
  if (E_Btn1 && !aE_Btn1 && Pulsos1 < 255)       // Estado pulsador cambia a high
  {
    Pulsos1 ++;                                // Añadir un pulso
    Final1 = millis() + Espera1;                // Tiempo de espera para ejecutar comando
  }
  aE_Btn1 = E_Btn1;                             // Almacenamos ultimo estado
  if (Pulsos1 > 0 && millis() > Final1)         // Hay opcion pulsada y finalizo imepo de espera
  {
    
    switch (Pulsos1) 
    {
      
       
      case 2:
        Serial.println("cerrando puertas");
        delay(200);
        digitalWrite(todas1,HIGH);
        delay(200);
        digitalWrite(todas1,LOW);
        delay(200);
        Serial.print("puertas ");
        Serial.println("cerradas");
    
       
        break;
    
    }
    Pulsos1 = 0;
  }
  if (aMilis1 < millis()) {Final1 = Final1 - aMilis1 + millis();}    // Control desborde millis

}