Tiempo para que haga algo y siga con el programa

Buenos dias, buenas tardes o buenas noches.

El caso es que estoy haciendo una maquina expendedora con una placa mega, un teclado matricial y servomotores y tengo casi todo listo, pero me falta una pequeña cosa, y es que con los servomotores trucados (por mi mismo) no soy capaz de encontar la manera de que giren durante x tiempo, es decir, que al seleccionar el producto, gire para que te lo expenda.

He sido capaz de hacer que gire de manera ilimitada o que gire solo 180º, pero lo que necesito es que gire sin fin durante x tiempo.

A continuación os dejo el programa.

"/PRUEBA DE MAQUINA EXPENDEDORA CON LCD Y TECLADO MATRICIAL/
#include <LiquidCrystal.h> /Libreria del LCD./
#include <Servo.h>
boolean confirmacion = true;
char key;
char key2;

Servo pepe2;
int pos = 0; /angulo/

#include <Keypad.h> /Libreria del teclado matricial 4x4, sacado de internet/

const byte rowsCount = 4; /Filas/
const byte columsCount = 4;/Columnas/

const char keys[rowsCount][columsCount] = { /La matriz del teclado/
{ ‘1’, ‘2’, ‘3’, ‘A’ },
{ ‘4’, ‘5’, ‘6’, ‘B’ },
{ ‘7’, ‘8’, ‘9’, ‘C’ },
{ ‘*’, ‘0’, ‘#’, ‘D’ }
};

const byte rowPins[rowsCount] = {22, 24, 26, 28}; /Pines de las filas/
const byte columnPins[columsCount] = {30, 32, 34, 36};/Pines de las columnas/

Keypad keypad = Keypad(makeKeymap(keys), rowPins, columnPins, rowsCount, columsCount); /Creamos una Key/
LiquidCrystal holaLCD(12, 11, 5, 4, 3, 2); /12 para RS, 11 para RW y el resto para los bits de información/

void setup() {
holaLCD.begin(16, 2);
Serial.begin(9600);

pepe2.attach(9);
}

void print_logo() {
holaLCD.setCursor(3, 1); /Poner el cursor de la pantalla LCD en la columna 5 y fila 2, ya que las filas del 2x16 van desde la 0 a la 15/
holaLCD.print(“Estafadora”); /Escribir ese texto en la posición antes definida/
holaLCD.setCursor(3, 0); /Poner un segundo cursor a la par del otro en la columna 3 y la fila 1/
holaLCD.print(“La Maquina”);/Texto en la fila de abajo, a la par del otro/
}

void loop() {
for (int x = 0; x <= 9; x++) {
}
key = keypad.getKey();
if (key == NO_KEY) { /Si no hay pulsación en el teclado matricial, aparece el texto seleccionado./
holaLCD.clear();
print_logo();
delay(100); /Delay en una espera de tiempo donde 1000 es 1 segundo/
}
else {
if (key != NO_KEY); /Si hay pulsación, aparece el numero durante 0,001s(no visible). La pantalla da un pequeño parpadeo./
holaLCD.clear();
Serial.println(key);
holaLCD.setCursor(14, 1);
holaLCD.print(key);
delay(1);
holaLCD.clear();
}

if (key == ‘1’) { /En todos estos comandos, si nota que ha sido pulsada una tecla, aparece texto dependiendo del numero que sea./
holaLCD.clear();
holaLCD.setCursor(4, 0);
holaLCD.print(“GOLOSINA”); /En el caso del 1, Aparecerá “GOLOSINA RADIOACTIVA”, esperará el delay, borrará y escribirá el “SURTIENDO…”/
holaLCD.setCursor(2, 1);
holaLCD.print(“RADIOACTIVA”);
delay(2000);

confirmacion = true;
while (confirmacion == true) {

holaLCD.clear();
holaLCD.setCursor(0, 0);
holaLCD.print(“Confirme con *”);
holaLCD.setCursor(0, 1);
holaLCD.print(“Cancele con #”);

delay(100);
key2 = keypad.getKey();
Serial.println(key2);

if (key2 == NO_KEY) {
false;
}
else {
if (key2 == ‘*’) {
holaLCD.clear();
holaLCD.setCursor(2, 0);
holaLCD.print(“CONFIRMANDO”);
delay(400);
holaLCD.clear();
holaLCD.setCursor(2, 1);
holaLCD.print(“SURTIENDO…”);
{
for(pos = 0; pos < 359; pos += 1) // goes from 0 degrees to 180 degrees
{ // in steps of 1 degree
pepe2.write(pos); // tell servo to go to position in variable ‘pos’
delay(15); // waits 15ms for the servo to reach the position
}/pepe2.write(360);
delay(100);
for(int a=1;a<=120;a+20){
pepe2.write(180);
delay(500);
break;}
/
delay(700);
confirmacion = false;
}
}
else if (key2 == ‘#’) {
holaLCD.clear();
holaLCD.setCursor(3, 0);
holaLCD.print(“DENEGANDO”);
delay(700);
confirmacion = false;
}
else {
holaLCD.clear();
holaLCD.setCursor(3, 1);
holaLCD.print(“No valido”);
delay(500);
}
}

delay(200);
}
}
}

Espero que alguien me pueda decir mas o menos. (creo que sea con un for, pero no se como obligarle a que gire x tiempo y luego continue el programa)

complejidad2.ino (3.99 KB)