int Red = 0 ; int Blue = 0 ; int Green = 0 ; int Phase = 0 ; int FullCycles = 0 ; double WPstart = 0.0 ; double PPstart = 0.0 ; void RGB(); void Leds(); void setup() { pinMode( 2 , INPUT); pinMode( 3 , INPUT); pinMode( 5 , OUTPUT); pinMode( 7 , OUTPUT); pinMode( 13 , OUTPUT); pinMode( Green , OUTPUT); pinMode( Blue , OUTPUT); pinMode( Red , OUTPUT); pinMode( 8 , OUTPUT); digitalWrite( 5 , LOW ); digitalWrite( 7 , LOW ); digitalWrite( 13 , HIGH ); Red = 9 ; Blue = 10 ; Green = 11 ; Phase = 1 ; FullCycles = 0 ; WPstart = millis() ; } void loop() { Leds(); RGB(); if (( ( ( Phase ) == ( 1 ) ) && ( ( ( millis() - WPstart ) ) > ( 3000000 ) ) )) { FullCycles = ( FullCycles + 1 ) ; Phase = 2 ; PPstart = millis() ; } else { if (( ( ( Phase ) == ( 2 ) ) && ( ( ( millis() - PPstart ) ) > ( 600000 ) ) )) { Phase = 3 ; } } if (( ( ( digitalRead(2) ) == ( HIGH ) ) && ( ( Phase ) == ( 3 ) ) )) { Phase = 1 ; WPstart = millis() ; } if (( ( ( digitalRead(3) ) == ( HIGH ) ) && ( ( Phase ) == ( 1 ) ) )) { Phase = 3 ; } } void RGB() { if (( ( FullCycles ) < ( 8 ) )) { analogWrite(Green , map ( FullCycles , 0 , 16 , 0 , 255 ) ); } if (( ( ( FullCycles ) >= ( 4 ) ) && ( ( FullCycles ) <= ( 12 ) ) )) { analogWrite(Blue , map ( FullCycles , 0 , 16 , 0 , 255 ) ); } if (( ( FullCycles ) > ( 8 ) )) { analogWrite(Red , map ( FullCycles , 0 , 16 , 0 , 255 ) ); } } void Leds() { if (( ( Phase ) == ( 1 ) )) { digitalWrite( 8 , HIGH ); } else { digitalWrite( 5 , LOW ); } if (( ( Phase ) == ( 2 ) )) { digitalWrite( 7 , HIGH ); } else { digitalWrite( 5 , LOW ); } if (( ( Phase ) == ( 3 ) )) { digitalWrite( 5 , HIGH ); digitalWrite( 7 , LOW ); digitalWrite( 8 , LOW ); } else { } }