       reiniciaSaidas();
     }
   } else if (!alarme_ativo) {
+    escreveSerial("Preparando para iniciar trabalho.");
     delay(3000); // Espera 3 segundos após energização
     stand_by = VERDADEIRO; // Libera funcionamento
+    escreveSerial("Tudo pronto!");
   }
 }
 

  return digitalRead(pino);
}

void liga(byte saida, String texto){
  if (desligado(saida)){
    digitalWrite(saida, LIGA);
    escreveSerial(texto + " Ligado.");
  }
}

void desliga(byte saida, String texto){
  if (ligado(saida)){
    digitalWrite(saida, DESLIGA);
    escreveSerial(texto + " Desligado.");
  }
}

  unsigned long inativo = ciclo_PWM - ativo;
  if (maquina_ligada and !alarme_ativo){
    if (millis() > *inicio && millis() <= (*inicio + ativo)){
      liga(saida);
    } else if (millis() > (*inicio + ativo) && millis() < (*inicio + ciclo_PWM)){
      desliga(saida);
    } else if (millis() >= (*inicio + ciclo_PWM)) {
      *inicio = millis();
    }
  } else {
    desliga(saida);
  }
}

