/* 

  *   effetto superncarcon tastierino

  *   start  scelta  senso  funzione

 *    0      0         0      nop

 *    0      0         1     nop

 *    0      1         0      nop

 *    0      1         1      nop

 *    1      0         0     prima striscia/senso orario

 *    1      0         1     prima striscia/senso anti orario

 *    1      1         0     seconda sriscia/senso orario

 *    1      1         1    seconda sriscia/senso anti orario

 *   

 *

 *    striscia1 dal pin2 led1 al pin8 led7, seconda striscia dal pin18 led8 al pin13 led12

 *

 */

 

//dichiarazione delle variabili

 

const int start=0;

const int scelta=1;

const int senso=2;

int led[]={3,4,5,6,7,8,9,10,11,12,13};

 

int stato_senso=0;

int start_stato=0;

int scelta_stato=0;

int caso=0;

int ana0=0;

int ritardo=1;

int i=0,ii=0;

void setup() {

  // put your setup code here, to run once:

     for(i=0;i<11;i++)

         {

          pinMode(led[i],OUTPUT);

         }

     pinMode(start,INPUT);

     pinMode(scelta,INPUT);

     pinMode(senso,INPUT);

}

 

  

void loop() {

  // put your main code here, to run repeatedly:

 

   

     start_stato=digitalRead(start);

       scelta_stato=digitalRead(scelta);

       stato_senso=digitalRead(senso);

       ana0=analogRead(0);

       ritardo=ritardo+ana0/10;

        if(start_stato==0 &&scelta_stato==0 && stato_senso==0){caso=0;}

        if(start_stato==0 &&scelta_stato==0 && stato_senso==1){caso=0;}

        if(start_stato==0 &&scelta_stato==1&& stato_senso==0){caso=0;}

        if(start_stato==0 &&scelta_stato==1 && stato_senso==1){caso=0;}

        if(start_stato==1 &&scelta_stato==0&& stato_senso==0){caso=1;}//prima stringa senso orario

        if(start_stato==1 &&scelta_stato==0 && stato_senso==1){caso=2;}//prima stringa senso anti orario

        if(start_stato==1 &&scelta_stato==1&& stato_senso==0){caso=3;} //seconda stringa senso orario

        if(start_stato==1 &&scelta_stato==1 && stato_senso==1){caso=4;}//seconda stringa senso anti orario orario

 

         switch(caso)

         {

          case 0:

               { 

                  //no operation

           

               }

                break;

          case 1:

               {

                   //effetto super car prima stringa senso orario

                  for(i=0;i<6;i++)

                  {

                   digitalWrite(led[i],HIGH); delay(ritardo);digitalWrite(led[i],LOW); delay(ritardo);

                  }

                  break;

         case 2:    //prima stringa senso anti orario

                for(i=5;i>-1;i--)

                {

                  digitalWrite(led[i],HIGH); delay(ritardo);digitalWrite(led[i],LOW); delay(ritardo);

                }

               

               }

              break;

        case 3:

               {

                  //effetto super car seconda stringa di led senso orario

                 

                      for(i=5;i<11;i++)

                  {

                   digitalWrite(led[i],HIGH); delay(ritardo);digitalWrite(led[i],LOW); delay(ritardo);

                  }

                  break;

         case 4://seconda stringa senso anti orario        

                for(i=10;i>4;i--)

                {

                  digitalWrite(led[i],HIGH); delay(ritardo);digitalWrite(led[i],LOW); delay(ritardo);

                }

               

 

               }

                                    break;

                 

         }         ritardo=1;

}