aiuto!! conta marce moto non riesco ad fare saltare un programmma

salve mi chiamo Giovanni faccio il fabbro ma ho una passione nel campo dell'electronica ho un po di dimestichezza sulla programmazione sono un pesce fuori dall'acqua sto imparando da quasi un mese ho un problema con il programma che ho creato essendo alle prime armi sono riuscito a creare quello che volevo ma :confused: il panico arriva quando lo provo sulla moto :(che delusione non ho messo in considerazione che la moto a il punto morto cioe la (N) che dame lo riconosco tramite un interruttore 1/0

vi prego datemi una mano sto uscendo pazzo

// Definizione dei pin
int led1 = 2;
int led2 = 3;
int led3 = 4;
int led4 = 5;
int led5 = 6;
int led6 = 7;

int bottoneSu = 9;
int bottoneGiu = 10;
int Neutro = 11;

// Definizione delle variabili
int led = 2;  // led da accendere neurale          //vorrei che il programma inizierebbe solo se il'interruttore neutro e acceso 

void setup () {
  // Impostazione dei pin come uscite
        Serial.begin(9600);
  pinMode (led1, OUTPUT);
  pinMode (led2, OUTPUT);
  pinMode (led3, OUTPUT);
  pinMode (led4, OUTPUT);
  pinMode (led5, OUTPUT);
  pinMode (led6, OUTPUT);
        
  // Impostazione dei pin come ingressi
  pinMode (bottoneSu, INPUT);
  pinMode (bottoneGiu, INPUT);
  pinMode (Neutro, INPUT);
        
  // Abilitazione delle resistenze di PullUp interne sugli ingressi
        
  digitalWrite (bottoneSu, HIGH);
  digitalWrite (bottoneGiu, HIGH);
  digitalWrite (Neutro, HIGH);
  
}

void loop () {
        
        Serial.println(led);      // mi serve solo per provare il programma poi lo cancellero
        delay(500);

  if (digitalRead (bottoneSu) == 1){   //se il pulsante è premuto
    led++;       // Incrementa la variabile led
    if (led>7) {   // Se la variabile supera il valore 6
      led=6;       // Riporta la variabile a 5
    }
    delay (500);   // Pausa per antirimbalzo
  }

   if (digitalRead (bottoneGiu) == 1){   //se il pulsante è premuto
    led--;         // Decrementa la variabile le
    if (led<1) {   // Se la variabile è inferiore al valore 1
      led=1;       // Riporta la variabile a 1
    }
    delay (500);   // Pausa per antirimbalzo
   }

   if (led==1) {
    digitalWrite (led1, HIGH);   // Accendi il led1
    digitalWrite (led2, LOW);    // Spegni il led2
    digitalWrite (led3, LOW);   // Spegni il led3
    digitalWrite (led4, LOW);    // Spegni il led4
    digitalWrite (led5, LOW);    // Spegni il led5
    digitalWrite (led6, LOW);    // Spegni il led5             
  }
  if (led==2) {                                                          //(led==2) e il neutrale (vorrei che questo programma saltasse se l'interrutore neutro non e acceso
                                                                           //se e acceso vorrei che si accende solo questo
    digitalWrite (led1, LOW);   // Spegni il led1
    digitalWrite (led2, HIGH);    // Accendi il led2
    digitalWrite (led3, LOW);   // Spegni il led3
    digitalWrite (led4, LOW);    // Spegni il led4
    digitalWrite (led5, LOW);    // Spegni il led5
    digitalWrite (led6, LOW);    // Spegni il led6             
  }
    if (led==3) {
    digitalWrite (led1, LOW);   // Spegni il led1
    digitalWrite (led2, LOW);    // Spegni il led2
    digitalWrite (led3, HIGH);   // Accendi il led3
    digitalWrite (led4, LOW);    // Spegni il led4
    digitalWrite (led5, LOW);    // Spegni il led5
    digitalWrite (led6, LOW);    // Spegni il led6             
  }
    if (led==4) {
    digitalWrite (led1, LOW);   // Spegni il led1
    digitalWrite (led2, LOW);    // Spegni il led2
    digitalWrite (led3, LOW);   // Spegni il led3
    digitalWrite (led4, HIGH);    // Accendi il led4
    digitalWrite (led5, LOW);    // Spegni il led5
    digitalWrite (led6, LOW);    // Spegni il led6             
  }
       if (led==5) {
    digitalWrite (led1, LOW);   // Spegni il led1
    digitalWrite (led2, LOW);    // Spegni il led2
    digitalWrite (led3, LOW);   // Spegni il led3
    digitalWrite (led4, LOW);    // Spegni il led4
    digitalWrite (led5, HIGH);    // Accendi il led5 
    digitalWrite (led6, LOW);    // Spegni il led6            
  }
    if (led==6) {
    digitalWrite (led1, LOW);   // Spegni il led1
    digitalWrite (led2, LOW);    // Spegni il led2
    digitalWrite (led3, LOW);   // Spegni il led3
    digitalWrite (led4, LOW);    // Spegni il led4
    digitalWrite (led5, LOW);    // Spegni il led5
    digitalWrite (led6, HIGH);    // Accendi il led6 
               
  }
     
   
}

Buonasera,
prima di tutto, essendo il tuo primo post, nel rispetto del regolamento della sezione Italiana del forum (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con MOLTA attenzione il su citato REGOLAMENTO ...

... poi, in conformità al suddetto regolamento, punto 7, devi editare il tuo post (quindi NON scrivendo un nuovo post, ma utilizzando il bottone More -> Modify che si trova in basso a destra del tuo post) e racchiudere il codice all'interno dei tag CODE (... sono quelli che in edit inserisce il bottone con icona fatta così: </>, tutto a sinistra).

In pratica, tutto il tuo codice dovrà trovarsi racchiuso tra due tag: [code] _il _tuo_ codice_ [/code] così da non venire interpretato e non dare adito alla formazione di caratteri indesiderati o cattiva formattazione del testo. Grazie.

Guglielmo

  1. presentati (se non lo hai già fatto)
  2. racchiudi il codice tra i tag code come detto da Guglielmo
  3. spiega che cosa vuoi ottenere, con che hardware, e che cosa invece ottieni, perché se devo essere onesto non riesco a comprenderlo

>fgb1988: ... ho cancellato il tuo post errato ... leggi esattamente cosa devi fare nel mio post #1, grazie.

Guglielmo