int inPin = P1_6; int aux = P1_7; int pc = P2_7; int tv = P2_6; int ON = P1_0; int sensorON=P1_1; int testOFF=0; int testON=0; int TVon=0; int TVoff=0; int PCon=0; int PCoff=0; int AUXon=0; int AUXoff=0; int Standby = 0; int delayON=1500; //delay between switching the lights ON int delayOFF=200; //delay between switching the lights OFF int ON_indicator=0; int AUX_indicator=0; int PC_indicator=0; int TV_indicator=0; int y=0; int x=0; int r=0; int t=0; long lastDebounceTime = 0; // the last time the output pin was toggled long debounceDelay = 5000; int buttonStateON; // the current reading from the input pin int lastButtonStateON = LOW; // the previous reading from the input pin void setup() { // initialize the digital pin as an output. pinMode(aux, OUTPUT); pinMode(pc, OUTPUT); pinMode(tv, OUTPUT); pinMode(ON, OUTPUT); pinMode(sensorON, INPUT); pinMode(inPin, INPUT); digitalWrite(aux, LOW); digitalWrite(pc, LOW); digitalWrite(tv, LOW); digitalWrite(ON, LOW); Standby = 0; } void loop() { int valON = digitalRead(sensorON); int valE; r=0; y=0; if (ON_indicator == 1) { testON = 1; Standby = 1; } else { testON = 0; } if (AUX_indicator == 1) { AUXon = 1; } else { AUXon = 0; } if (PC_indicator == 1) { PCon = 1; } else { PCon = 0; } if (TV_indicator == 1) { TVon = 1; } else { TVon = 0; } ////////////////////////////////////////////////////////////////////inicijacija pojacala/initiation of the amplifier//////////////////////////////////////////////////////////////////////////////////////// if(Standby == 0) { Standby = 1; digitalWrite(tv, HIGH); TV_indicator = 1; delay(1500); valE=digitalRead(inPin); if ( valE == HIGH ) { digitalWrite(ON, HIGH); ON_indicator = 1; } else { digitalWrite(tv, LOW); TV_indicator = 0; delay(200); digitalWrite(pc, HIGH); PC_indicator = 1; delay(1500); valE=digitalRead(inPin); if ( valE == HIGH ) { digitalWrite(ON, HIGH); ON_indicator = 1; } else { digitalWrite(pc, LOW); PC_indicator = 0; delay(200); digitalWrite(aux, HIGH); AUX_indicator = 1; delay(1500); valE=digitalRead(inPin); if ( valE == HIGH ) { digitalWrite(ON, HIGH); ON_indicator = 1; } } } } ////////////////////////////////////////////////////////////////////prebacivanje kanala / input switching//////////////////////////////////////////////////////////////////////////////////////// if (valON != lastButtonStateON) { lastDebounceTime = millis(); if ((millis() - lastDebounceTime) > debounceDelay) { buttonStateON = valON; } digitalWrite(valON, buttonStateON); if( (valON==1) && (testON == 0) && (AUXon == 0) && (PCon == 0)&& (TVon == 0) ) { digitalWrite(aux, LOW); digitalWrite(pc, LOW); digitalWrite(tv, HIGH); delay(100); digitalWrite(ON, HIGH); TV_indicator = 1; ON_indicator = 1; delay(delayOFF); } if( (valON==1) && (testON == 1) && (AUXon == 0) && (PCon == 0)&& (TVon == 1) ) { digitalWrite(tv, LOW); digitalWrite(aux, LOW); digitalWrite(pc, HIGH); delay(100); digitalWrite(ON, HIGH); TV_indicator = 0; AUX_indicator = 0; PC_indicator = 1; ON_indicator = 1; delay(delayOFF); } if( (valON==1) && (testON == 1) && (AUXon == 0) && (PCon == 1)&& (TVon == 0) ) { digitalWrite(pc, LOW); digitalWrite(tv, LOW); digitalWrite(aux, HIGH); delay(100); digitalWrite(ON, HIGH); TV_indicator = 0; AUX_indicator = 1; PC_indicator = 0; ON_indicator = 1; delay(delayOFF); } if( (valON==1) && (testON == 1) && (AUXon == 1) && (PCon == 0)&& (TVon == 0) ) { digitalWrite(pc, LOW); digitalWrite(aux, LOW); digitalWrite(tv, HIGH); delay(100); digitalWrite(ON, HIGH); TV_indicator = 1; AUX_indicator = 0; PC_indicator = 0; ON_indicator = 1; delay(delayOFF); } if( (valON==1) && (testON == 0) && ((AUXon == 1) || (PCon == 1) || (TVon == 1)) ) { digitalWrite(ON, HIGH); ON_indicator = 1; delay(delayOFF); } t=0; lastButtonStateON = valON; } ////////////////////////////////////////////////////////////////////detekcija ulaza/ input detection/////////////////////////////////////////////////////////////////////////////////////// valE = digitalRead(inPin); if( (testON == 1) && ( valE == LOW ) ) { delay(10); t++; if(t > 9000) { digitalWrite(ON, LOW); ON_indicator = 0; delay(delayOFF); t=0; } } if( (testON==1) && ( valE == HIGH ) ) { t=0; } if( (testON==0) && ( valE == HIGH ) && ((AUXon == 1) || (PCon == 1) || (TVon == 1)) ) { digitalWrite(ON, HIGH); ON_indicator = 1; delay(delayOFF); } } //}