Problema con 2 servomotores

Hola, soy nuevo, tanto en el foro como en la programacion de arduino, les comento que trabajo en un laboratorio y me gustaria implementar un sistema para manejar varios servos con 3 tiempos distintos para cada uno independientemente, yo modifique un codigo que encontre, se los paso para que vean, el servo 2 no me funciona, el 1 anda perfecto

#include <Servo.h> // incluyo la librería servo.h

Servo miservo1; // Definimos “miservo” para controlar un servomotor
Servo miservo2; // Definimos “miservo” para controlar un servomotor

int ledverde1 = 22; // utilizo el pin 22 para led verde
int ledrojo1 = 23; // utilizo el pin 23 para led rojo
int ledazul1 = 24;// utilizo el pin 24 emitir un tono de audio
int ledverde2 = 25; // utilizo el pin 22 para led verde
int ledrojo2 = 26; // utilizo el pin 23 para led rojo
int ledazul2 = 27;// utilizo el pin 24 emitir un tono de audio
int pulsadorApplixServo1 = 28; // utilizo el pin 25 como botón de entrada Applix Smart
int pulsadorApplixServo2 = 29; // utilizo el pin 25 como botón de entrada Applix Smart
int pos1 = 74; // variable para almacenar la posición inicial del servo
int pos2 = 74; // variable para almacenar la posición inicial del servo
int ESTADOpulsadorApplixServo1 = 0; // variable para almacenar la lectura del estado del pulsador Applix Smart
int ESTADOpulsadorApplixServo2 = 0; // variable para almacenar la lectura del estado del pulsador Applix Smart


void setup()
{
  miservo1.attach(9); // Convierte el pin 9 en el controlador (driver) del servo denominado “miservo”
  miservo2.attach(10); // Convierte el pin 9 en el controlador (driver) del servo denominado “miservo”
  // Inicializa los pin digitales como salida
  pinMode(ledverde1, OUTPUT);
  pinMode(ledrojo1, OUTPUT);
  pinMode(ledazul1, OUTPUT);
  pinMode(ledverde2, OUTPUT);
  pinMode(ledrojo2, OUTPUT);
  pinMode(ledazul2, OUTPUT);
  // defino el pulsador como entrada:
  pinMode(pulsadorApplixServo1, INPUT);
  pinMode(pulsadorApplixServo2, INPUT);

  miservo1.write(pos1); // Fija en el servo la posición 74 grados y hace que inicialmente la barrera esté baja
  miservo2.write(pos2); // Fija en el servo la posición 74 grados y hace que inicialmente la barrera esté baja
}

void loop()
{
  digitalWrite(ledverde1, LOW); // inicialmente led verde apagado
  digitalWrite(ledazul1, HIGH); // inicialmente led rojo encendido
  digitalWrite(ledrojo1, LOW); // inicialmente led rojo encendido

  ESTADOpulsadorApplixServo1 = digitalRead(pulsadorApplixServo1); // leo el estado del botón del pulsador y lo guardo en la variable ESTADOpulsadorApplixServo1
  ESTADOpulsadorApplixServo2 = digitalRead(pulsadorApplixServo2); // leo el estado del botón del pulsador y lo guardo en la variable ESTADOpulsadorApplixServo1


  //APPLIX SMART
  {
    if (ESTADOpulsadorApplixServo1 == HIGH) { // Si ESTADOpulsador está activo (HIGH) comienza a levantar la barrera
      digitalWrite(ledazul1, LOW);
      digitalWrite(ledverde1, LOW);
      digitalWrite(ledrojo1, HIGH);
      delay(3000);
      for (pos1 = 74; pos1 > 0; pos1 -= 1) // La variable “pos” se incrementa desde 0 a 90 grados
      { // en pasos de 1 grado
        miservo1.write(pos1); // indica al servo que vaya la la posición almacenada en la variable “pos”
        delay(2); // espera 20ms hasta que el servo alcance la posición
      }
      digitalWrite(ledrojo1, LOW); // con la barrera subida el led rojo se apaga
      digitalWrite(ledazul1, LOW); // inicialmente led rojo encendido
      digitalWrite(ledverde1, HIGH); // turn the LED on (HIGH is the voltage level)

      //Emite sonido que cambia su frecuencia unos segundos antes de comenzar a bajar como aviso
      // sintaxis de tone: tone(pin, frequency)
      delay(10000);

      // Se termina el sonido de aviso

      digitalWrite(ledverde1, LOW); // se apaga el led verde
      digitalWrite(ledazul1, HIGH); // inicialmente led rojo encendido
      digitalWrite(ledrojo1, LOW); // se enciendo el led rojo

      for (pos1 = 0; pos1 <= 74; pos1 += 1) // comienza a bajar la barrera desde la posición 90 hasta 0 grados
      {
        miservo1.write(pos1); // indica al servo que vaya a la posición almacenada en la variable
        delay(2); // espera 20ms para que el servo alcance la posición
      }

    }
    if (ESTADOpulsadorApplixServo2 == HIGH) { // Si ESTADOpulsador está activo (HIGH) comienza a levantar la barrera
      digitalWrite(ledazul2, LOW);
      digitalWrite(ledverde2, LOW);
      digitalWrite(ledrojo2, HIGH);
      delay(3000);
      for (pos2 = 74; pos2 > 0; pos2 -= 1) // La variable “pos” se incrementa desde 0 a 90 grados
      { // en pasos de 1 grado
        miservo2.write(pos2); // indica al servo que vaya la la posición almacenada en la variable “pos”
        delay(2); // espera 20ms hasta que el servo alcance la posición
      }
      digitalWrite(ledrojo2, LOW); // con la barrera subida el led rojo se apaga
      digitalWrite(ledazul2, LOW); // inicialmente led rojo encendido
      digitalWrite(ledverde2, HIGH); // turn the LED on (HIGH is the voltage level)

      //Emite sonido que cambia su frecuencia unos segundos antes de comenzar a bajar como aviso
      // sintaxis de tone: tone(pin, frequency)
      delay(10000);

      // Se termina el sonido de aviso

      digitalWrite(ledverde2, LOW); // se apaga el led verde
      digitalWrite(ledazul2, HIGH); // inicialmente led rojo encendido
      digitalWrite(ledrojo2, LOW); // se enciendo el led rojo

      for (pos2 = 0; pos2 <= 74; pos2 += 1) // comienza a bajar la barrera desde la posición 90 hasta 0 grados
      {
        miservo2.write(pos2); // indica al servo que vaya a la posición almacenada en la variable
        delay(2); // espera 20ms para que el servo alcance la posición
      }
    }
  }
}

Saludos
Claro que no va a funcionar usas delay de 3 y 10 s.

Busca el ejemplo BlinkWithOut Delay en el IDE y aprende a como usar millis(), de esa manera puede atender a los dos servos. y hasta mas

Hola, osea que con millis puedo usar los servos simultáneamente? gracias.-

SI. Te permite realizar acciones por un tiempo establecido y atender otras cosas al mismo tiempo.

Debes crear métodos para manejar cada servo independientemente, y entre las llamadas en loop los delay.

Algo así:

Servo1();
delay(10);
Servo2();
delay(10);
Servo2();
delay(10);

termine haciendo esto, funciona por separado, pero no al mismo tiempo, con millis me estoy volviendo loco, no entiendo

#include <Servo.h>

Servo servo1;
Servo servo2;

const int boton1 = 22;
const int boton2 = 24;
const int led1 = 26;
const int led2 = 28;
const int led3 = 30;
const int led4 = 32;
int estadoboton1 = 0;
int estadoboton2 = 0;


void setup() {
  // put your setup code here, to run once:
  servo1.attach(8);
  pinMode(boton1, INPUT);
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  digitalWrite(led1, LOW);
  digitalWrite(led2, LOW);
  servo1.write(76);
  
  servo2.attach(9);
  pinMode(boton2, INPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);
  digitalWrite(led1, LOW);
  digitalWrite(led2, LOW);
  servo2.write(76);
}

void botona1()
{
  if (estadoboton1 == HIGH)
  {
    digitalWrite(led1, HIGH);
    digitalWrite(led2, LOW);
    delay(2000);
    digitalWrite(led1, LOW);
    digitalWrite(led2, HIGH);
    servo1.write(0);
    delay(5000);
    digitalWrite(led1, LOW);
    digitalWrite(led2, LOW); 
    servo1.write(76);    
    }
}

void botona2()
{
  if (estadoboton2 == HIGH)
  {
    digitalWrite(led3, HIGH);
    digitalWrite(led4, LOW);
    delay(2000);
    digitalWrite(led3, LOW);
    digitalWrite(led4, HIGH);
    servo2.write(0);
    delay(5000);
    digitalWrite(led3, LOW);
    digitalWrite(led4, LOW); 
    servo2.write(76);    
    }
}

void loop()
{
  // put your main code here, to run repeatedly:
  estadoboton1 = digitalRead(boton1);
  estadoboton2 = digitalRead(boton2);  
  botona1();
  botona2();
}

bueno he reescrito tu programa creando una minima máquina de estados.
Una Maquina de estados es un recurso de programación en el que se se arranca en un estado conocido y luego de cumplir cierta premisa (delay en este caso) se pasa al siguiente estado.
A ver que te parece y lo mas important si lo entiendes.

NOTA: Me da un error con el archivo <Servo.h>

#include <Servo.h>

Servo servo1;
Servo servo2;

const int boton1 	= 22;
const int boton2 	= 24;
const int led1 		= 26;
const int led2 		= 28;
const int led3 		= 30;
const int led4 		= 32;
int estadoboton1 	= 0;
int estadoboton2 	= 0;
byte estado1 = 1;
byte estado2 = 1;
unsigned long t_start1 = 0;
unsigned long t_start2 = 0;



void setup() {
  // put your setup code here, to run once:
  servo1.attach(8);
  pinMode(boton1, INPUT);
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  digitalWrite(led1, LOW);
  digitalWrite(led2, LOW);
  servo1.write(76);
  
  servo2.attach(9);
  pinMode(boton2, INPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);
  digitalWrite(led1, LOW);
  digitalWrite(led2, LOW);
  servo2.write(76);
}


void loop()
{
  // put your main code here, to run repeatedly:
  estadoboton1 = digitalRead(boton1);
  estadoboton2 = digitalRead(boton2);  
  botona1();
  botona2();
}

void botona1(){

  if (estadoboton1 == HIGH) {
  	if (t_start1 == 0) {
  		t_start1 = millis();   // inicializo t_start1 solo la primera vez
  	}
    switch(estado1) {
    	case 1: 
    			digitalWrite(led1, HIGH);
    			digitalWrite(led2, LOW);
    			if (millis() - t_start1 > 2000UL) {
    				estado1 = 2; 						// solo paso al estado 2 cuando se cumple la condición.
    				t_start1 = millis();
    			}
    			break;
    	case 2: 
    			digitalWrite(led1, LOW);
    			digitalWrite(led2, HIGH);
    			servo1.write(0);
    			//delay(5000);
    			if (millis() - t_start1 > 5000UL) {
    				estado1 = 3; 						// solo paso al estado 2 cuando se cumple la condición.
    			}
    			break;
    
    	case 3: 
    			digitalWrite(led1, LOW);
    			digitalWrite(led2, LOW);
    			servo1.write(76);
    			t_start1 = 0; 							// lo dejo listo para un proximo uso.
    			break;    
    }
   }
}

void botona2() {
  
  if (estadoboton2 == HIGH) {
  	if (t_start2 == 0) {
  		t_start2 = millis();   // inicializo t_start1 solo la primera vez
  	}
    switch(estado1) {
    	case 1: 
    			digitalWrite(led3, HIGH);
    			digitalWrite(led4, LOW);
    			if (millis() - t_start2 > 2000UL) {
    				estado2 = 2; 						// solo paso al estado 2 cuando se cumple la condición.
    				t_start2 = millis();
    			}
    			break;
    	case 2: 
    			digitalWrite(led3, LOW);
    			digitalWrite(led4, HIGH);
    			servo1.write(0);
    			//delay(5000);
    			if (millis() - t_start2 > 5000UL) {
    				estado2 = 3; 						// solo paso al estado 2 cuando se cumple la condición.
    			}
    			break;
    	case 3: 
    			digitalWrite(led3, LOW);
    			digitalWrite(led4, LOW);
    			servo1.write(76);
    			t_start2 = 0; 							// lo dejo listo para un proximo uso.
    			break;    
    }
  }
}