// Project - Automatic Switching System
int aca=31; //Falha de Alimentação AC A
int acb=46; //Falha de Alimentação AC B
int baa=22; //Botão de Seleção do Retificador A
int bab=24; //Botão de Seleção do Retificador B
int bsm=20; //Botão de Seleção de Manutenção
int dba=25; //Processo de Descarga da Bateria A
int dbb=40; //Processo de Descarga da Bateria B
int fga=21; //Falha Geral do Retificador A
int fgb=36; //Falha Geral do Retificador B
int fia=27; //Falha de Fusível Interrompido A
int fib=42; //Falha de Fusível Interrompido B
int tea=23; //Tensão Elevada no Consumidor A
int teb=38; //Tensão Elevada no Consumidor B
int ura=29; //Falha da Unidade Retificadora A
int urb=44; //Falha da Unidade Retificadora B
int lsm=26; //LED de Sinalização de Manutenção
int lsa=28; //LED de Sinalização Retificador A Ativo
int lsb=30; //LED de Sinalização Retificador B Ativo
int raa=12; //Relé de Chaveamento Alimentação AC A
int rab=14; //Relé de Chaveamento Alimentação AC B
int rba=16; //Relé de Chaveamento Bateria A
int rbb=18; //Relé de Chaveamento Bateria B
int vbsm=0;
int vbaa=0;
int vbab=0;
void setup() {
pinMode(aca,INPUT);
pinMode(acb,INPUT);
pinMode(baa,INPUT);
pinMode(bab,INPUT);
pinMode(bsm,INPUT);
pinMode(dba,INPUT);
pinMode(dbb,INPUT);
pinMode(fga,INPUT);
pinMode(fgb,INPUT);
pinMode(fia,INPUT);
pinMode(fib,INPUT);
pinMode(tea,INPUT);
pinMode(teb,INPUT);
pinMode(ura,INPUT);
pinMode(urb,INPUT);
pinMode(lsm,OUTPUT);
pinMode(lsa,OUTPUT);
pinMode(lsb,OUTPUT);
pinMode(raa,OUTPUT);
pinMode(rab,OUTPUT);
pinMode(rba,OUTPUT);
pinMode(rbb,OUTPUT);
digitalWrite(raa,HIGH); //Aciona a Chave do Retificador A
digitalWrite(rba,HIGH); //Aciona a Chave da Bateria A
digitalWrite(lsa,HIGH); //Acende o LED do Retificador A
}
void loop() {
if(raa=HIGH){
if(aca=LOW){
goto chavearB;
}
if(dba=LOW){
goto chavearB;
}
if(fga=LOW){
goto chavearB;
}
if(fia=LOW){
goto chavearB;
}
if(tea=LOW){
goto chavearB;
}
if(ura=LOW){
goto chavearB;
}
vbsm=digitalRead(bsm);
digitalWrite(lsm,vbsm);
if(vbsm==HIGH){
digitalWrite(lsm,HIGH);
vbab=digitalRead(bab);
if(vbab==HIGH){
delay(500);
digitalWrite(raa,LOW);
digitalWrite(rab,HIGH);
digitalWrite(rba,LOW);
digitalWrite(rbb,HIGH);
digitalWrite(lsa,LOW);
digitalWrite(lsb,HIGH);
}
else{
vbaa=digitalRead(baa);
if(vbaa==HIGH){
do{
delay(500);
digitalWrite(lsa,LOW);
delay(500);
digitalWrite(lsa,HIGH);
}
while(vbaa==HIGH);
}
}
}
}
}