 void checkButton() {
   if ((digitalRead(SEL_A) == 0) && (digitalRead(SEL_B) == 1)) //A
   {
-    if (digitalRead(BT_A) == 0)  //premuto
-    {
-      if (digitalRead(SEL_Gp)) //1 è piccolo
-      {
-        Serial.println("motore A orario");
+    if ((digitalRead(BT_A) == 0) && (digitalRead(BT_B) == 1)) //premuto A e non B
+    {
+      if (digitalRead(SEL_Gp)) //1 è piccolo
+      {
+        //Serial.println("motore A orario");
         muovi('p', vel_passetti, passetto, 0);
       }
       else
       {
-        Serial.println("motore C orario");
+        //Serial.println("motore C orario");
         muovi('g', vel_passetti, passetto,0);
       }
       delay(1000);
     }
-    else if (digitalRead(BT_B) == 1)  //premuto
-    {
-      if (digitalRead(SEL_Gp)) //1 è piccolo
-      {
-        Serial.println("motore A antiorario");
+    else if ((digitalRead(BT_B) == 0) && (digitalRead(BT_A) == 1)) //premuto B e non A
+    {
+      if (digitalRead(SEL_Gp)) //1 è piccolo
+      {
+        //Serial.println("motore A antiorario");
         muovi('p', vel_passetti, -passetto, 0);
       }
       else
       {
-        Serial.println("motore C antiorario");
+        //Serial.println("motore C antiorario");
         muovi('g',vel_passetti,-passetto, 0, 0);
       }
       delay(1000);
     }
+    else if ((digitalRead(BT_B) == 0) && (digitalRead(BT_A) == 0)) //premuto B e A
+    {
+      if (digitalRead(SEL_Gp)) //1 è piccolo
+      {
+        //Serial.println("motore A giro");
+        muovi('p', 4000, 360, 0);
+      }
+      else
+      {
+        //Serial.println("motore C giro");
+        muovi('g', 4000, 360, 0, 0);
+      }
+      delay(20000);
+    }
   }
   else if ((digitalRead(SEL_A) == 1) && (digitalRead(SEL_B) == 1)) //B
   {
-    if (digitalRead(BT_A) == 0)  //premuto
-    {
-      if (digitalRead(SEL_Gp)) //1 è piccolo
-      {
-        Serial.println("motore B orario");
+    if ((digitalRead(BT_A) == 0) && (digitalRead(BT_B) == 1))  //premuto
+    {
+      if (digitalRead(SEL_Gp)) //1 è piccolo
+      {
+        //Serial.println("motore B orario");
         muovi('p',vel_passetti,0, passetto);
       }
       else
       {
-        Serial.println("motore D orario");
+        //Serial.println("motore D orario");
         muovi('g',vel_passetti,0, passetto, 0);
       }
       delay(1000);
     }
-    else if (digitalRead(BT_B) == 1)  //premuto
-    {
-      if (digitalRead(SEL_Gp)) //1 è piccolo
-      {
-        Serial.println("motore B antiorario");
+    else if ((digitalRead(BT_B) == 0) && (digitalRead(BT_A) == 1)) //premuto
+    {
+      if (digitalRead(SEL_Gp)) //1 è piccolo
+      {
+        //Serial.println("motore B antiorario");
         muovi('p',vel_passetti,0, -passetto);
       }
       else
       {
-        Serial.println("motore D antiorario");
+        //Serial.println("motore D antiorario");
         muovi('g',vel_passetti,0, -passetto, 0);
       }
 
       delay(1000);
     }
+    else if ((digitalRead(BT_B) == 0) && (digitalRead(BT_A) == 0)) //premuto B e A
+    {
+      if (digitalRead(SEL_Gp)) //1 è piccolo
+      {
+        //Serial.println("motore B giro");
+        muovi('p', 4000, 0, 360);
+      }
+      else
+      {
+        //Serial.println("motore D giro");
+        muovi('g', 4000, 0, 360, 0);
+      }
+      delay(20000);
+    }
   }
   else if ((digitalRead(SEL_A) == 1) && (digitalRead(SEL_B) == 0)) //C
   {
-    if (digitalRead(BT_A) == 0)  //premuto
-    {
-      if (digitalRead(SEL_Gp)) //1 è piccolo
-      {
-        Serial.println("motore inesistente");
-      }
-      else
-      {
-        Serial.println("motore E orario");
+    if ((digitalRead(BT_A) == 0) && (digitalRead(BT_B) == 1))  //premuto
+    {
+      if (digitalRead(SEL_Gp)) //1 è piccolo
+      {
+        //Serial.println("tutti in senso orario");
+        muovi('g',2000,180, 0, 0);
+        delay(100);
+        muovi('p',2000,0, -180);
+      }
+      else
+      {
+        //Serial.println("motore E orario");
         muovi('g',vel_passetti,0, 0, passetto);
       }
       delay(1000);
     }
-    else if (digitalRead(BT_B) == 1)  //premuto
-    {
-      if (digitalRead(SEL_Gp)) //1 è piccolo
-      {
-        Serial.println("motore inesistente");
-      }
-      else
-      {
-        Serial.println("motore E antiorario");
+    else if ((digitalRead(BT_B) == 0)  && (digitalRead(BT_A) == 1)) //premuto
+    {
+      if (digitalRead(SEL_Gp)) //1 è piccolo
+      {
+        //Serial.println("tutti in senso antiorario");
+        muovi('g',2000,-180, 0, 0);
+        delay(100);
+        muovi('p',2000,0, 180);
+      }
+      else
+      {
+        //Serial.println("motore E antiorario");
         muovi('g',vel_passetti,0, 0, -passetto);
       }
       delay(1000);
     }
-  }
-}
+    else if ((digitalRead(BT_B) == 0) && (digitalRead(BT_A) == 0)) //premuto B e A
+    {
+      if (digitalRead(SEL_Gp)) //1 è piccolo
+      {
+        //Serial.println("motore inesistente");
+      }
+      else
+      {
+        //Serial.println("motore E giro");
+        muovi('g', 4000, 0, 0, 360);
+      }
+      delay(20000);
+    }
+  }
+}

    pinMode(channels[i], OUTPUT);
  }

  Serial.begin(9600);

  Serial2.begin(4800);
}

    // P 2000       >> set velocity of little cone to 2000
    // g 90 -90 90  >> move big cone
    // G 4000       >> set velocity of big cone
    if (//Serial.available() > 0) {
      Serial2.write(//Serial.read());
    }

    // Check button
