Ayuda, ejecutar instrucciones en paralelo

Hola, soy nuevo en el foro, y nuevo usando arduino, mi problema es el siguiente, tengo un programa el cual necesito que se ejecuten ciertas instrucciones en paralelo, por ejemplo, que active 2 entradas a la vez y me saque las dos salidas, o al momento de que ejecute una entrada con un poco de tiempo de retardo se ejecuten las 2 salidas con sus respectivos tiempos, les dejo abajo el código esperando puedan ayudarme, de ante mano muchas gracias!

void setup()
{
pinMode(2, INPUT);
digitalWrite(2, HIGH);
pinMode(3,INPUT);
digitalWrite(3, HIGH);
pinMode(12,OUTPUT);
digitalWrite(12, LOW);
pinMode(13,OUTPUT);// This code will only run once, after each powerup or reset of the board
digitalWrite(13,LOW);
}

void loop()
{
if (digitalRead (2) == LOW){
digitalWrite(13, HIGH);
delay (1000);
digitalWrite(13,LOW);
}
else if (digitalRead (3) == LOW){
digitalWrite(12, HIGH);
delay(2000);
digitalWrite(12,LOW);
}
}

Tienes que usar lo que se llama time triggered patters.

Básicamente es crear un control de tiempo mediante un tic, luego ejecutas cada función cuando lo necesites. No se ejecutan en paralelo real pero es una simulación cercana.

Aquí tienes una explicación buenísima en español para crear un tic en arduino escrita por IgorR:

Y aquí un libro en inglés con explicación exhaustiva de Time-Triggered Patterns
http://www.tte-systems.com/books/pttes