Anyone can help advise me how to shorten this sketch because I need to add more library later for radio,...
/*
Written by Ben W. on 21 Nov 2017
benarto_@yahoo.com
*/
// Prevent multiple inputs trigger more than 1 output, only 1 output at 1 time allowed
// these are the pins that Arduino are using
int bp1 = 3;
int bp2 = 4;
int bp3 = 5;
int bp4 = 6;
int bp5 = 7;
int led1 = 8;
int led2 = 9;
int led3 = 10;
int led4 = 11;
int led5 = 12;
int led6 = A0;
void setup()
{
//-----( Initialize Pins so all leds and relays are inactive at reset)-----
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
digitalWrite(led5, HIGH);
digitalWrite(led6, HIGH);
Serial.begin(9600);
//-----( THEN set pins as outputs )-----
pinMode(led1, OUTPUT); // E.STOP relay and red LED on
pinMode(led2, OUTPUT); // OFF relay 3,4,5 and green LED on
pinMode(led3, OUTPUT); // relay 3 and blue LED1 on
pinMode(led4, OUTPUT); // relay 4 and blue LED2 on
pinMode(led5, OUTPUT); // relay 5 and blue LED3 on
pinMode(led6, OUTPUT); // 4 channel relay module supply-on transistor 6
pinMode(bp1, INPUT); // E.STOP signal, IC 7
pinMode(bp2, INPUT); // OFF relay 3,4,5 signal, D0 receiver
pinMode(bp3, INPUT); // relay 3 signal, D1 receiver
pinMode(bp4, INPUT); // relay 4 signal, D2 receiver
pinMode(bp5, INPUT); // relay 5 signal, D3 receiver
}
void loop()
{
delay(1000); // delay 1 minute for 4 channel relay module supply-on
digitalWrite(led6, LOW);
if ((bp1 == HIGH) && (bp2 == LOW) && (bp3 == LOW) && (bp4 == LOW) && (bp5 == LOW))
{
digitalWrite(led1, LOW);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
digitalWrite(led5, HIGH);
delay(3600000); // delay 1 hour maintenance while prevent from any reset
}
else
{
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
digitalWrite(led5, HIGH);
}
if ((bp1 == LOW) && (bp2 == HIGH) && (bp3 == LOW) && (bp4 == LOW) && (bp5 == LOW))
{
digitalWrite(led1, HIGH);
digitalWrite(led2, LOW); // immediate off all relays except E.STOP
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
digitalWrite(led5, HIGH);
}
else
{
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
digitalWrite(led5, HIGH);
}
if ((bp1 == LOW) && (bp2 == LOW) && (bp3 == HIGH) && (bp4 == LOW) && (bp5 == LOW))
{
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led4, HIGH);
digitalWrite(led5, HIGH);
delay(1000UL); // delay 1 second to start while other button pins can reset
digitalWrite(led3, LOW);
}
else
{
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
digitalWrite(led5, HIGH);
}
if ((bp1 == LOW) && (bp2 == LOW) && (bp3 == LOW) && (bp4 == HIGH) && (bp5 == LOW))
{
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led5, HIGH);
delay(1000UL); // delay 1 second to start while other button pins can reset
digitalWrite(led4, LOW);
}
else
{
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
digitalWrite(led5, HIGH);
}
if ((bp1 == LOW) && (bp2 == LOW) && (bp3 == LOW) && (bp4 == LOW) && (bp5 == HIGH))
{
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
delay(1000UL); // delay 1 second to start while other button pins can reset
digitalWrite(led5, LOW);
}
else
{
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
digitalWrite(led5, HIGH);
}
}