Semplice lanciarazzi Lego

ecco il codice indentato meglio:

#include <Servo.h>
Servo myServo;

unsigned long prevMillis = 0; // variabile per il conteggio del tempo precedente
unsigned long currMillis = 0; // variabile per il conteggio del tempo attuale
const long segLed = 550; // durata di 0,55 sec del segmento led acceso
int pulsanteStato = 0; // variabile per verificare lo stato del pulsante
int angolo = 0; // variabile per impostare l'angolo di rotazione del servo
int ledPin = 0; // variabile per i pin del display
int notes[] = { 392 }; // nota sol


void setup() {
  for (int ledPin = 3; ledPin <= 11; ledPin++) { // i led del display numerico e il piezo vanno dal pin 3 al 11
    pinMode(ledPin, OUTPUT); // pin dei led e del piezo in output
    digitalWrite(ledPin, LOW);// tutti led e piezo spenti 
  }
  ledPin = 4; // imposto il primo segmento del display da accendersi (segmento C)
  pinMode(2, INPUT); // imposto il pin 2 del pulsante in input
}

void loop() {
  pinMode(12, OUTPUT);
  digitalWrite(12, LOW); // comando del servo a zero
  currMillis = millis();
  pulsanteStato = digitalRead(2); // leggo lo stato del pulsante per verificare se e´ premuto
  if (pulsanteStato == LOW) { // se non ho premuto il pulsante
    if (currMillis - prevMillis >= segLed) { // controllo se son passati gli 0,55 sec dall'accensione del segmento led di prima
      if (ledPin != 9) { // se non ho ancora acceso l'ultimo segmento del display
        digitalWrite(ledPin, LOW); // spengo il segmento acceso in precedenza
        ledPin++; // incremento la variabile dei pin del display per accendere il segmento successivo
        digitalWrite(ledPin, HIGH); // accendo il segmento
      } else { // quando ho acceso l'ultimo segmento collegato al pin Arduino 9
        digitalWrite(ledPin, LOW);
        ledPin = 4; // re-imposto la variabile dei led a 4, pin di Arduino collegato al primo segmento, e inizio nuovamente la sequenza
        digitalWrite(ledPin, HIGH);
      }
      prevMillis = currMillis;
    } 
  }
  if (pulsanteStato == HIGH) { // se ho premuto il pulsante
    lanciapinnar(); // vado alla sequenza di lancio
  }
}

/*
sequenza di attivazione servo con conto alla rovescia
*/

void lanciapinnar() {
  for (int ledPin = 3; ledPin <= 10; ledPin++) { // tutti led e piezo spenti
    pinMode(ledPin, OUTPUT); 
    digitalWrite(ledPin, LOW); 
  }

  digitalWrite(8, HIGH); // scrivo il numero 9, lampeggio DP e suono bip 1 volta
  digitalWrite(9, HIGH);
  digitalWrite(4, HIGH);
  digitalWrite(7, HIGH);
  digitalWrite(10, HIGH);
  digitalWrite(5, HIGH);
  digitalWrite(3, HIGH);
  tone(11, notes[1]);
  delay(100);
  digitalWrite(3, LOW);
  noTone(11);
  delay(900);

  digitalWrite(6, HIGH); // scrivo il numero 8, lampeggio DP e suono bip 1 volta
  digitalWrite(5, HIGH);
  digitalWrite(3, HIGH);
  tone(11, notes[1]);
  delay(100);
  digitalWrite(3, LOW);
  noTone(11);
  delay(900);

  digitalWrite(5, LOW); // scrivo il numero 7, lampeggio DP e suono bip 2 volte
  digitalWrite(6, LOW);
  digitalWrite(7, LOW);
  digitalWrite(10, LOW);
  digitalWrite(8, HIGH); 
  digitalWrite(9, HIGH);
  digitalWrite(4, HIGH);
  digitalWrite(3, HIGH);
  tone(11, notes[1]);
  delay(100);
  digitalWrite(3, LOW);
  noTone(11);
  delay(400);
  digitalWrite(3, HIGH);
  tone(11, notes[1]);
  delay(100);
  digitalWrite(3, LOW);
  noTone(11);
  delay(400);

  digitalWrite(8, HIGH); // scrivo il numero 6, lampeggio DP e suono bip 2 volte
  digitalWrite(9, LOW);
  digitalWrite(10, HIGH);
  digitalWrite(5, HIGH);
  digitalWrite(6, HIGH);
  digitalWrite(7, HIGH);
  digitalWrite(3, HIGH);
  tone(11, notes[1]);
  delay(100);
  digitalWrite(3, LOW);
  noTone(11);
  delay(400);
  digitalWrite(3, HIGH);
  tone(11, notes[1]);
  delay(100);
  digitalWrite(3, LOW);
  noTone(11);
  delay(400);

  digitalWrite(8, HIGH); // scrivo il numero 5,, lampeggio DP e suono bip 3 volte
  digitalWrite(9, LOW);
  digitalWrite(10, HIGH);
  digitalWrite(4, HIGH);
  digitalWrite(5, HIGH);
  digitalWrite(6, LOW);
  digitalWrite(7, HIGH);
  digitalWrite(3, HIGH);
  tone(11, notes[1]);
  delay(100);
  digitalWrite(3, LOW);
  noTone(11);
  delay(233);
  digitalWrite(3, HIGH);
  tone(11, notes[1]);
  delay(100);
  digitalWrite(3, LOW);
  noTone(11);
  delay(233);
  digitalWrite(3, HIGH);
  tone(11, notes[1]);
  delay(100);
  digitalWrite(3, LOW);
  noTone(11);
  delay(233);

  digitalWrite(8, LOW); // scrivo il numero 4, lampeggio DP e suono bip 3 volte
  digitalWrite(9, HIGH);
  digitalWrite(10, HIGH);
  digitalWrite(4, HIGH);
  digitalWrite(5, LOW);
  digitalWrite(6, LOW);
  digitalWrite(7, HIGH);
  digitalWrite(3, HIGH);
  tone(11, notes[1]);
  delay(100);
  digitalWrite(3, LOW);
  noTone(11);
  delay(233);
  digitalWrite(3, HIGH);
  tone(11, notes[1]);
  delay(100);
  digitalWrite(3, LOW);
  noTone(11);
  delay(233);
  digitalWrite(3, HIGH);
  tone(11, notes[1]);
  delay(100);
  digitalWrite(3, LOW);
  noTone(11);
  delay(233);

  digitalWrite(8, HIGH); // scrivo il numero 3, lampeggio DP e suono bip 4 volte
  digitalWrite(9, HIGH);
  digitalWrite(10, HIGH);
  digitalWrite(4, HIGH);
  digitalWrite(5, HIGH);
  digitalWrite(6, LOW);
  digitalWrite(7, LOW);
  digitalWrite(3, HIGH);
  tone(11, notes[1]);
  delay(100);
  digitalWrite(3, LOW);
  noTone(11);
  delay(150);
  digitalWrite(3, HIGH);
  tone(11, notes[1]);
  delay(100);
  digitalWrite(3, LOW);
  noTone(11);
  delay(150);
  digitalWrite(3, HIGH);
  tone(11, notes[1]);
  delay(100);
  digitalWrite(3, LOW);
  noTone(11);
  delay(150);
  digitalWrite(3, HIGH);
  tone(11, notes[1]);
  delay(100);
  digitalWrite(3, LOW);
  noTone(11);
  delay(150);

  digitalWrite(8, HIGH); // scrivo il numero 2, lampeggio DP e suono bip 4 volte
  digitalWrite(9, HIGH);
  digitalWrite(10, HIGH);
  digitalWrite(4, LOW);
  digitalWrite(5, HIGH);
  digitalWrite(6, HIGH);
  digitalWrite(7, LOW);
  digitalWrite(3, HIGH);
  tone(11, notes[1]);
  delay(100);
  digitalWrite(3, LOW);
  noTone(11);
  delay(150);
  digitalWrite(3, HIGH);
  tone(11, notes[1]);
  delay(100);
  digitalWrite(3, LOW);
  noTone(11);
  delay(150);
  digitalWrite(3, HIGH);
  tone(11, notes[1]);
  delay(100);
  digitalWrite(3, LOW);
  noTone(11);
  delay(150);
  digitalWrite(3, HIGH);
  tone(11, notes[1]);
  delay(100);
  digitalWrite(3, LOW);
  noTone(11);
  delay(150);

  digitalWrite(8, LOW); // scrivo il numero 1, accendo DP e suono bip 1 secondo
  digitalWrite(9, HIGH);
  digitalWrite(10, LOW);
  digitalWrite(4, HIGH);
  digitalWrite(5, LOW);
  digitalWrite(6, LOW);
  digitalWrite(7, LOW);
  digitalWrite(3, HIGH);
  tone(11, notes[1]);
  delay(1000);
  digitalWrite(3, LOW);
  noTone(11);

  for (int ledPin = 3; ledPin <= 10; ledPin++) { // spengo il display e il piezo
    pinMode(ledPin, OUTPUT); 
    digitalWrite(ledPin, LOW);
    }

  myServo.attach(12); // imposto il pin di comando del servo sul 12
  angolo = 90; // imposto l'angolo di 90 gradi per il servo
  myServo.write(angolo); // muovo il servo
  delay (1000); // attendo 1 secondo
  angolo = 0; // imposto l'angolo a 0 per il servo
  myServo.write(angolo); // riposiziono il servo
  delay(3000); // attendo 3 secondi
}