#define TIME_PULSE 100 int NeonA[3] = {23, 22, 25}; int NeonB[3] = {24, 27, 26}; int NeonC[5] = {29, 28, 31, 30, 33}; void setup() { // put your setup code here, to run once: for(int i=0; i<16; i++) { pinMode(22 + i, OUTPUT); digitalWrite( 22 + i, HIGH); } for(int i=0; i<3; i++) { digitalWrite( NeonA[i], LOW); //delay(1000); } pinMode(12, INPUT_PULLUP); // for(int i=0; i<3; i++) // { // digitalWrite( NeonB[i], LOW); // //delay(1000); // } // for(int i=0; i<5; i++) // { // digitalWrite( NeonC[i], LOW); // //delay(1000); // } } unsigned long time_sec1_A = millis(); void secuencia1() { if ((millis()-time_sec1_A)>=3000) { if ((millis()-time_sec1_A)<4000) digitalWrite(NeonA[0], HIGH); else if ((millis()-time_sec1_A)<(4000 + TIME_PULSE)) { digitalWrite(NeonA[0], LOW); digitalWrite(NeonA[1], HIGH); } else if ((millis()-time_sec1_A)<8000) digitalWrite(NeonA[1], LOW); else if ((millis()-time_sec1_A)<9000) digitalWrite(NeonA[2], HIGH); else if ((millis()-time_sec1_A)<10000) digitalWrite(NeonA[2], LOW); else if ((millis()-time_sec1_A)>=15000) time_sec1_A = millis(); } else { for(int i=0; i<3; i++) digitalWrite( NeonA[i], LOW); } } unsigned long time_sec2_A = millis(); void secuencia2() { if ((millis()-time_sec2_A)>=1000) { if ((millis()-time_sec2_A)<(1000 + TIME_PULSE)) digitalWrite(NeonB[0], HIGH); else if ((millis()-time_sec2_A)<4000) digitalWrite(NeonB[0], LOW); else if ((millis()-time_sec2_A)<(4000 + TIME_PULSE)) digitalWrite(NeonB[1], HIGH); else if ((millis()-time_sec2_A)<5000) digitalWrite(NeonB[1], LOW); else if ((millis()-time_sec2_A)<6000) digitalWrite(NeonB[2], HIGH); else if ((millis()-time_sec2_A)<7000) digitalWrite(NeonB[2], LOW); else if ((millis()-time_sec2_A)<(7000 + TIME_PULSE)) digitalWrite(NeonB[2], HIGH); else if ((millis()-time_sec2_A)<10000) digitalWrite(NeonB[2], LOW); else if ((millis()-time_sec2_A)>=15000) time_sec2_A = millis(); } else { for(int i=0; i<3; i++) digitalWrite( NeonB[i], LOW); } } unsigned long time_sec3_A = millis(); void secuencia3() { if ((millis()-time_sec2_A)>=2000) { if ((millis()-time_sec3_A)<(2000 + TIME_PULSE)) digitalWrite(NeonC[1], HIGH); else if ((millis()-time_sec3_A)<6000) digitalWrite(NeonC[1], LOW); else if ((millis()-time_sec3_A)<(6000 + TIME_PULSE)) digitalWrite(NeonC[2], HIGH); else if ((millis()-time_sec3_A)<7000) digitalWrite(NeonC[2], LOW); else if ((millis()-time_sec3_A)<8000) digitalWrite(NeonC[0], HIGH); else if ((millis()-time_sec3_A)<9000) digitalWrite(NeonC[0], LOW); else if ((millis()-time_sec3_A)<(9000 + TIME_PULSE)) digitalWrite(NeonC[2], HIGH); else if ((millis()-time_sec3_A)<10000) digitalWrite(NeonC[2], LOW); else if ((millis()-time_sec3_A)<(10000 + TIME_PULSE)) digitalWrite(NeonC[4], HIGH); else if ((millis()-time_sec3_A)<15000) digitalWrite(NeonC[4], LOW); else time_sec3_A = millis(); } else { for(int i=0; i<5; i++) digitalWrite( NeonC[i], LOW); } } void secuencia1B() { if ((millis()-time_sec1_A)>=2000) { if ((millis()-time_sec1_A)<(2000 + 500)) digitalWrite(NeonA[0], HIGH); else if ((millis()-time_sec1_A)<4000) digitalWrite(NeonA[0], LOW); else if ((millis()-time_sec1_A)<(4000 + TIME_PULSE)) digitalWrite(NeonA[0], HIGH); else if ((millis()-time_sec1_A)<10000) digitalWrite(NeonA[0], LOW); else if ((millis()-time_sec1_A)<(10000 + TIME_PULSE)) digitalWrite(NeonA[0], HIGH); else if ((millis()-time_sec1_A)<20000) digitalWrite(NeonA[0], LOW); else if ((millis()-time_sec1_A)>=20000) time_sec1_A = millis(); } else { digitalWrite( NeonA[0], LOW); } } void secuencia2B() { if ((millis()-time_sec1_A)>=1000) { if ((millis()-time_sec1_A)<(1000 + TIME_PULSE)) digitalWrite(NeonA[1], HIGH); else if ((millis()-time_sec1_A)<3000) digitalWrite(NeonA[1], LOW); else if ((millis()-time_sec1_A)<(3000 + 1000)) digitalWrite(NeonA[1], HIGH); else if ((millis()-time_sec1_A)<5000) digitalWrite(NeonA[1], LOW); else if ((millis()-time_sec1_A)<(5000 + TIME_PULSE)) digitalWrite(NeonA[1], HIGH); else if ((millis()-time_sec1_A)<8000) digitalWrite(NeonA[1], LOW); else if ((millis()-time_sec1_A)<(8000 + 500)) digitalWrite(NeonA[1], HIGH); else if ((millis()-time_sec1_A)<20000) digitalWrite(NeonA[1], LOW); else if ((millis()-time_sec1_A)>=20000) time_sec1_A = millis(); } else { digitalWrite( NeonA[1], LOW); } } void secuencia3B() { if ((millis()-time_sec1_A)>=2000) { if ((millis()-time_sec1_A)<(2000 + TIME_PULSE)) digitalWrite(NeonA[2], HIGH); else if ((millis()-time_sec1_A)<6000) digitalWrite(NeonA[2], LOW); else if ((millis()-time_sec1_A)<(6000 + TIME_PULSE)) digitalWrite(NeonA[2], HIGH); else if ((millis()-time_sec1_A)<7000) digitalWrite(NeonA[2], LOW); else if ((millis()-time_sec1_A)<(7000 + TIME_PULSE)) digitalWrite(NeonA[2], HIGH); else if ((millis()-time_sec1_A)<10000) digitalWrite(NeonA[2], LOW); else if ((millis()-time_sec1_A)<(10000 + 500)) digitalWrite(NeonA[2], HIGH); else if ((millis()-time_sec1_A)<20000) digitalWrite(NeonA[2], LOW); else if ((millis()-time_sec1_A)>=20000) time_sec1_A = millis(); } else { digitalWrite( NeonA[2], LOW); } } void loop() { if (digitalRead(12)) { secuencia1B(); secuencia2B(); secuencia3B(); } else { for(int i=0; i<3; i++) digitalWrite(NeonA[i], LOW); } // put your main code here, to run repeatedly: }