controlar lavadora con digital dañado

gracias por responder, botonA botonB y botonC se refiere a tres programaciones diferente, uno hace un ciclo completo el otro solo enjuagado y C solo exprimir, los botones es un control RF de 4 botones que envia un pulso.

el uso de delay lo utilice porque al momento del ciclo no importa si esta ocupado el arduino ya que no esta
esperando ninguna otra instrucción. y son muchas lineas las que me ahorro con el delay

solo espera instrucciones para saber cual programa escojer al inicio y luego la del llenado que es la que no
he podido programar :frowning:

aqui es exactamente donde esta mi problema

buttonState1 = digitalRead(botonA);
  if (buttonState1 == HIGH) {
    Serial.println("BOTON A PRESIONADO");
    llenado(); lavado1(); llenado(); lavado2();

como se ve el orden al presionar el boton A es

llenado - lavado1 - llenado - lavado 2

pero nose hacer para que se lea la secuencia de llenado hasta que el estado cambie de HIGH a LOW y pase a la siguiente secuencia en este caso lavado 1

void llenado() {
  buttonState4 = digitalRead(presostato);
  while (buttonState4 == HIGH) {
    Serial.println("PRENDER BOMBA LLENADO");
    digitalWrite(bombaagua, HIGH);
    delay(1000);
  }
}