Cómo invertir el giro de un motor y evitar q se active más de una vez

El problema es quiero invertir el giro de un motor sin tener q correr el riesgo de que el motor siga girando después de activarlo una vez y arruine mi proyecto, lo puedo controlar pero corro el riesgo de que si lo presiona 2 veces el botón en mi aplicación se arruine lo que conlleva el motor , mi pregunta es q si hay alguna forma de condicionar un

Switch (estado) {

Case ' a':

{Int offtime =2500;

DigitalWrite (Abrir , HIGH);
Delay(offtime);
Digital Write(Abrir, LOW);
}

break;

De tal forma que cuando ejecute esa acción desde mi aplicación en appinventor cuando la quiera volver a presionar ya no se pueda hasta q presione el otro botón para invertir el giro del motor

Case ' b' :

{Int offtime2 =2500;

DigitalWrite (Cerrar , HIGH);
Delay (offtime2);
Digital Write(Cerrar ,LOW);
}

break;

Y la otra opción q encontré es invertir el giro con un solo botón pero no sé la manera de adaptarlo de un pulsador físico a uno digital.

Posdata es mi primera vez en los foros de Arduino...

Si es que lo quieres de manera digital asumo que estás enviando los mensajes a través de alguna aplicación de un celular o a través del monitor serie de Arduino, de cualquiera de las dos maneras podrías hacer dos comandos distintos uno para cerrar y otro para abrir, me explico, al apretar un botón en la pantalla de tu celular envíe un mensaje “abrir” y al apretar otro botón distinto en la pantalla de tu celular mande un mensaje a Arduino que sea “cerrar”, luego de esto en el código de Arduino utilizas el comando if y el comando para leer el puesto serial creo que esta serialread, quedaría algo así if serial read = “abrir” entonces ejecute digitalWrite High, else no haga nada, eso va a ocasionar que por mil veces que apretés ese botón siempre lo va abrir y luego haces lo mismo pero con if serialread = “cerrar” digitalWrite Low, lo que va a ser que por mil veces que aprietes este botón siempre va cerrar

Muchas gracias , quiero especificar un poco mas, acerca del funcionamiento que debe tener el motor que ocupare ;abrir quiere decir que el eje del motor girará en el sentido del reloj para abrir una persiana y cerrar será para invertir el sentido del giro todo esto con un puente H claro, creo q te entendí un poco mal , eh hecho lo de crear dos comandos distintos para cerrar y abrir las persianas pero mi problema es q no quiero q una ves que se ejecute el comando de cierre o apertura se vuelva a activar , porque la fuerza que posee el motor puede arruinar las persianas, quisiera que una vez q presione cerrar no se vuelva a activar hasta q presione abrir y viceversa...

Muchas gracias por responderme...

Por favor lee las normas del foro porque vienes haciendo consultas en lugares que no corresponde y posteando códigos sin etiquetas.

Te envié privado con instrucciones. Leelas por favor!!