//Actividad 2 TP2
int ubicacionpin[10]={15,2,0,4,16,17,6,18,19,21};
#define Encendido 1
#define Apagado 0
int estado;
int intervalo=0;
int restador=1;
int sumador=1;
int encender1;
int encender2;
int encender3;
int encender4;
int apagar1;
int apagar2;
int apagar3;
int apagar4;
int igualarint=0;
void parametrosLed(int posiIn, int posiFin, int Estado){
Serial.println(Estado);
if (Estado==Apagado){ //0
if (posiIn < posiFin){ // 3<7
intervalo=posiFin-posiIn;// 7-3=4
encender1=posiFin+sumador; //enc1=7+1=8
if (posiFin < encender1 && encender1<10){ //7<8<10 s=1+1=2 7+2=9 7<9<10 s=2+1 7+3=10 7<10
digitalWrite(ubicacionpin[encender1], HIGH);
sumador++;
}
encender2=posiIn-restador;// 3-1=2 2<3
if (encender2>=0 && encender2<posiIn){ //2<3 r=1+1 3-2=1 1<3 r=2+1 3-3=0
digitalWrite(ubicacionpin[encender2], HIGH);
restador++;
}
if (igualarint<intervalo){//0<4 igualarint 1 pos4+0
// 1<4 igualarinr 1+1 pos4+1=5 ; 2<4 igualint2+1 3<4 pos4+2; 3<4 igualint3+1 4<4 pos4+4
digitalWrite(ubicacionpin[posiIn++], LOW);
Serial.println("apagar");
Serial.println(igualarint);
igualarint++;
}
} else {//posifin<posiin
intervalo=posiIn-posiFin;
encender3=posiIn+sumador;
if (posiIn > encender3 && encender3<=10){
sumador++;
digitalWrite(ubicacionpin[encender3], HIGH);
}
encender4=posiFin-restador;
if (posiFin>encender4 && encender4>=0){
restador++;
digitalWrite(ubicacionpin[encender4], HIGH);
}
if (igualarint<intervalo){
igualarint++;
digitalWrite(ubicacionpin[posiFin++], LOW);
Serial.println("apagar");
Serial.println(igualarint);
}
}
}
if (Estado==Encendido){
if (posiIn < posiFin){
intervalo=posiFin-posiIn;
apagar1=posiFin+sumador;
if (posiFin > apagar1 && apagar1<=10){
sumador++;
digitalWrite(ubicacionpin[apagar1], LOW);
}
apagar2=posiIn-restador;
if (apagar2>=0 && apagar2<posiIn){
restador++;
digitalWrite(ubicacionpin[apagar2], LOW);
}
if (igualarint<intervalo){
igualarint++;
digitalWrite(ubicacionpin[posiIn++], HIGH);
Serial.println("encender");
Serial.println(igualarint);
}
}else {//posifin<posiin
intervalo=posiIn-posiFin;
Serial.println(intervalo);
if (posiIn< apagar3 && apagar3<10){
apagar3=posiIn+sumador;
sumador++;
digitalWrite(ubicacionpin[apagar3], LOW);
Serial.println("apagar3");
Serial.println(apagar3);
}
if (posiFin>apagar4 && apagar4>=0){
apagar4=posiFin-restador;
restador++;
digitalWrite(ubicacionpin[apagar4], LOW);
Serial.println("Apagar: 'apagar4' ");
Serial.println(apagar4);
}
if (igualarint<intervalo){
igualarint++;
int posicionfinal=posiFin++;
digitalWrite(ubicacionpin[posiFin++], HIGH);
Serial.println("encender");
Serial.println(igualarint);
}
}
}
delay(250);
}
void setup(){
Serial.begin(115200);
for (int pin=0; pin<10; pin++ ){
pinMode(ubicacionpin[pin], OUTPUT);
}
}
void loop(){
parametrosLed(7,4,0);
// put your main code here, to run repeatedly:
delay(10); // this speeds up the simulation
}