Se queda estancado en una función

Hola buenas tardes

Estoy intentando un sistema de monitoreo de entrada y salidas

tengo 8 entrada y 3 salidas, es para un HVAC

tengo que tener 7 entradas abiertas y 1 cerrada que seria el control de temperatura.

hay funciones que se ejecutan cuando se activa alguna de las 7 entradas

mandando abrir las salidas.

pero al momento de usarlo y cargarlo en mi VBB VIRTUAL BREADBOARD se estanca al cerrar las entradas en las funciones que solo deberían de desplegarse cuando se esta "HIGH" no?

dejo mi codigo y conexiones quisiera saber si es por que no lo estoy probando en fisico y no por errores de codigo.

saludos.

#include <Wire.h> 
#include <LiquidCrystal.h>

//LCD pin a Arduino
const int pin_RS = 12; 
const int pin_EN = 3; 
const int pin_d4 = 4; 
const int pin_d5 = 5; 
const int pin_d6 = 6; 
const int pin_d7 = 7;  
LiquidCrystal lcd( pin_RS,  pin_EN,  pin_d4,  pin_d5,  pin_d6,  pin_d7);

//Entradas
const int CtrlTemp = 13; int CtrlState = 0; 
const int PsttoAlta = A0; int PsAlState = 0; 
const int PsttoBaja = A1; int PsBjState = 0; 
const int CmpsParo = A2; int CompState = 0; 
const int PalFlujo = A3;int FluState = 0; 
const int FailVent1 = A4;int Vent1State = 0; 
const int FailVent2 = A5;int Vent2State = 0; 
const int FailComp = 2;int CompFState = 0; 

//Salidas
const int Vnt1 = 8;
const int Vnt2 = 9;
const int Cmps = 10;

//Estatos GLOBALES
bool Inicio_st = false;
bool Paro_st = true;
bool alarma = false;


void setup() {
  //lcd y logo 
    Serial.begin(9600);
   attachInterrupt(digitalPinToInterrupt(2),Interupt, RISING);
    lcd.begin(16,2);
    lcd.setCursor(2, 0);
    lcd.print("DEVELOPED");
    lcd.setCursor(2, 1);
    lcd.print("by COSEIR");
    Serial.print("ffsfs");
    //Pines
    pinMode(CtrlTemp, INPUT);
    pinMode(PsttoAlta, INPUT);
    pinMode(PsttoBaja, INPUT);
    pinMode(CmpsParo, INPUT);
    pinMode(PalFlujo, INPUT);
    pinMode(FailVent1, INPUT);
    pinMode(FailVent2, INPUT);
    pinMode(FailComp, INPUT);
    pinMode(Vnt1, OUTPUT);
    pinMode(Vnt2, OUTPUT);
    pinMode(Cmps, OUTPUT);
    digitalWrite(Cmps, HIGH);
    digitalWrite(Vnt1, HIGH);
    digitalWrite(Vnt2, HIGH);
    delay(1000);
    lcd.clear();
}

void loop() {

  //VISOR
  //LECTURA DE ESTADOS DE ENTRADAS
   CtrlState = digitalRead(CtrlTemp);
   PsAlState= digitalRead(PsttoAlta);
   PsBjState= digitalRead(PsttoBaja);
   CompState= digitalRead(CmpsParo);
   FluState= digitalRead(PalFlujo);
   Vent1State= digitalRead(FailVent1);
   Vent2State= digitalRead(FailVent2);
   CompFState= digitalRead(FailComp);

  //TODO SIN ALARMAS
//  if(PsAlState == LOW && PsBjState == LOW && CompState == LOW && FluState == LOW && Vent1State == LOW  && Vent2State == LOW && CompFState == LOW){
//    alarma = false;
//    Inicio_st = true;
         //CAMBIO DE ESTADO CONTROL TEMPERATURA
  if (CtrlState == HIGH && alarma== false ) {
     Inicio(Inicio_st);
       } else {}
   // lcd.print("listo");
//  }else { 
//    alarma = true;
//    Inicio_st = false;
//}
         
   //CAMBIO DE ESTADO PRESOSTADO ALTA   
 if (PsAlState == HIGH) {
  PresionAlta();
    }else {    alarma = true;
    Inicio_st = false;}
         //CAMBIO DE ESTADO PRESOSTADO BAJA   
 if (PsBjState == HIGH) {
  PresionBaja();
      } else {    alarma = true;
    Inicio_st = false;}
         //CAMBIO DE ESTADO DANFOSS CMPRESOR  
 if (CompState == HIGH) {
  ParoComp();
      } else {    alarma = true;
    Inicio_st = false;}
         //CAMBIO DE ESTADO PALETA DE FLUJO   
 if (FluState == HIGH) {
      ParoFlu();
      } else {    alarma = true;
    Inicio_st = false;}
         //CAMBIO DE ESTADO ALGUN CONTACOR 
 if (Vent1State == HIGH) {
     Contactores();
     } else {    alarma = true;
    Inicio_st = false;}
 if (Vent2State == HIGH) {
     Contactores();
     } else {    alarma = true;
    Inicio_st = false;}
 if (CompFState == HIGH) {
     Contactores();
     } else {    alarma = true;
    Inicio_st = false;}   
}







void Paro(){
    digitalWrite(Cmps, LOW);
  digitalWrite(Vnt1, LOW);
  digitalWrite(Vnt2, LOW);
   }
void ParoComp(){
  Paro();
  lcd.clear();
  lcd.setCursor(4, 0);
  lcd.print("FALLO 75");
  lcd.setCursor(1, 1);
  lcd.print("IN DANFOSS");
  alarma = true;
  delay(500);
}
void ParoFlu(){
  Paro();
  lcd.clear();
  lcd.setCursor(4, 0);
  lcd.print("FALLO 74");
  lcd.setCursor(1, 1);
  lcd.print("FLUJO");
  alarma = true;
  delay(500);
}
void PresionAlta(){
  Paro();
  lcd.clear();
  lcd.setCursor(4, 0);
  lcd.print("FALLO 77");
  lcd.setCursor(1, 1);
  lcd.print("PSTO ALTA");
  alarma = true;
  delay(500);
}
void PresionBaja(){
  Paro();
  lcd.clear();
  lcd.setCursor(4, 0);
  lcd.print("FALLO 77");
  lcd.setCursor(1, 1);
  lcd.print("PSTO BAJA");
  alarma = true;
  delay(500);
}
void Contactores(){
      Paro();
  lcd.setCursor(0, 0);
  lcd.print("FALLO 73-71");
  lcd.setCursor(1, 1);
  lcd.print("CONTACTORES");
  alarma = true;
  delay(500);
}
void CtrlTmp(){
  DelayParo();
  lcd.clear();
  lcd.setCursor(0, 1);
  lcd.print("Iniciando...");
}

void DelayParo(){
 // bool stat = false;
  for (int i = 60; i>0; i--){
  // int d = i/1000;
   Serial.print(i);
     lcd.setCursor(1, 0);
    lcd.print(i);
    delay(250);
//    if (d=59){
//      
//    }
  }
}

void Inicio(bool stat){
  if (stat = true){
  DelayParo();lcd.clear();
  lcd.setCursor(0, 0); 
  lcd.print("Sistema Listo");
  lcd.setCursor(0, 1);
  lcd.print("Trabajando");
  digitalWrite(Cmps, HIGH);
  digitalWrite(Vnt1, HIGH);
  digitalWrite(Vnt2, HIGH);
  }
}

void Interupt(){
  digitalWrite(Cmps, LOW);
  digitalWrite(Vnt1, LOW);
  digitalWrite(Vnt2, LOW);
}

k8596:
tengo 8 entrada y 3 salidas, es para un HVAC

tengo que tener 7 entradas abiertas y 1 cerrada que seria el control de temperatura.

hay funciones que se ejecutan cuando se activa alguna de las 7 entradas

Que significas 7 entradas abiertas ? estas usando resistencia pull-down de 10K en cada entrada ?