   digitalWrite(solda_vertical, DESLIGA);
   digitalWrite(solda_horizontal, DESLIGA);
   digitalWrite(solda_datador, DESLIGA);
+  digitalWrite(53, DESLIGA); // Temporário, ver e apagar
 }
 
 
 void loop() {
   modoAlarme();
+
+  geraPWM(pot_solda_vertical, &tempo_PWM_vertical, solda_vertical, NomeSoldaVertical);
+  geraPWM(pot_solda_horizontal, &tempo_PWM_horizontal, solda_horizontal, NomeSoldaHorizontal);
+  geraPWM(pot_solda_datador, &tempo_PWM_datador, solda_datador, NomeSoldaDatador);
+
   if (!alarme_ativo){
     standBy();
     modoTeste();

}

void iniciaTrabalho(){
  geraPWM(pot_solda_vertical, &tempo_PWM_vertical, solda_vertical, NomeSoldaVertical);
  geraPWM(pot_solda_horizontal, &tempo_PWM_horizontal, solda_horizontal, NomeSoldaHorizontal);
  geraPWM(pot_solda_datador, &tempo_PWM_datador, solda_datador, NomeSoldaDatador);
}

void modoAlarme(){

void geraPWM(byte pot, unsigned long *inicio, byte saida, String nome){
  unsigned long ativo = map(analogRead(pot), 0, 1023, 0, ciclo_PWM);
  unsigned long inativo = ciclo_PWM - ativo;
  if (maquina_ligada and !alarme_ativo){
    if (millis() > *inicio && millis() <= (*inicio + ativo)){
      liga(saida, nome);
    } else if (millis() > (*inicio + ativo) && millis() < (*inicio + ciclo_PWM)){
      desliga(saida, nome);
    } else if (millis() >= (*inicio + ciclo_PWM)) {
      *inicio = millis();
    }
  } else {
    desliga(saida, nome);
  }
}

