Spegnere il circuito

Ragazzi ho il seguente problema…
Per imparare sto creando un mio progetto diviso in 2 parti…per adesso sto alla prima parte,il tutto funziona perfettamente,ma quando termina la sequenza di codice e arriva il momento di spegnere il circuito tramite pulsante,noto che il led si spegne correttamente ,ma prima di spegnere il circuito mi riesegue nuovamente la sequenza.Come riesco a spegnerlo senza che riparta appunto la sequenza???

Ecco il codice:

#include <Servo.h>

int servoPin  = 5;
int servoGrad = 79;
int led_pin = 2;
int button_pin = 4;
int stato = LOW;
int stato1 = HIGH;
int Buzzer = 3; 
int redpin = 9;
int greenpin = 11;
int blupin = 10;
int fotores = A0;
int Nota;

Servo myservo;


void setup() {
     pinMode(led_pin, OUTPUT);
     pinMode(button_pin, INPUT);
     pinMode(Buzzer, OUTPUT);
     pinMode(redpin, OUTPUT); 
     pinMode(greenpin, OUTPUT); 
     pinMode(blupin, OUTPUT);
     Serial.begin (9600);
     myservo.attach( servoPin );
     myservo.write( servoGrad );
}

     
void loop()
{
     int in1 = digitalRead(button_pin);
     
     Nota = (analogRead (fotores));
     
     Serial.println(Nota);
     
     if (in1 == HIGH){
             stato=!stato;
             digitalWrite(led_pin, stato);
     }

      delay(2000);
      
      if(in1 == HIGH){  
        
      if (Nota < 10){                  
 
      noTone(Buzzer);
      
      digitalWrite(redpin,  LOW);
      
      delay (500);
      
      tone(Buzzer,900 );
      
      digitalWrite(redpin,  HIGH);
      
      delay (500);
      
      noTone(Buzzer);
      
      digitalWrite(redpin,  LOW);
      
      delay (500);
      
      tone(Buzzer,900 );
      
      digitalWrite(redpin,  HIGH);
      
      delay (500);
      
      noTone(Buzzer);
      
      digitalWrite(redpin,  LOW);
      
      delay (500);
      
      tone(Buzzer,900 );
      
      digitalWrite(redpin,  HIGH);
      
      delay (500);
      
      noTone(Buzzer);
      
      digitalWrite(redpin,  LOW);
      
      delay (500);
      
      tone(Buzzer,900 );
      
      digitalWrite(redpin,  HIGH);
      
      delay (500);
      
      noTone(Buzzer);
      
      digitalWrite(redpin,  LOW);
      
      delay (500);
      
      tone(Buzzer,900 );
      
      digitalWrite(redpin,  HIGH);
      
      delay (500);
      
      noTone(Buzzer);
      
      digitalWrite(redpin,  LOW);
      
      delay (500);
      
      tone(Buzzer,900 );
      
      digitalWrite(redpin,  HIGH);
      
      delay (500);
      
      noTone(Buzzer);
      
      digitalWrite(redpin,  LOW);
      
      delay (500);
      
      tone(Buzzer,900 );
      
      digitalWrite(redpin,  HIGH);
      
      delay (500);
      
      noTone(Buzzer);
      
      digitalWrite(redpin,  LOW);
      
      delay (500);
      
      tone(Buzzer,900 );
      
      digitalWrite(redpin,  HIGH);
      
      delay (500);
      
      noTone(Buzzer);
      
      digitalWrite(redpin,  LOW);
      
      delay (500);
      
      tone(Buzzer,900 );
      
      digitalWrite(redpin,  HIGH);
      
      delay (500);
      
      noTone(Buzzer);
      
      digitalWrite(redpin,  LOW);
      
      delay (500);
      
      tone(Buzzer,900 );
      
      digitalWrite(redpin,  HIGH);
      
      delay (500);
      
      noTone(Buzzer);
      
      digitalWrite(redpin,  LOW);
      
      delay (1500);
      
      tone(Buzzer,900 );
      
      digitalWrite(blupin,  HIGH);
      
      delay (500);
      
      noTone(Buzzer);
      
      digitalWrite(blupin,  LOW);
      
      delay (500);
      
      tone(Buzzer,900 );
      
      digitalWrite(blupin,  HIGH);
      
      delay (500);
      
      noTone(Buzzer);
      
      digitalWrite(blupin,  LOW);
      
      delay (500);
      
      tone(Buzzer,900 );
      
      digitalWrite(blupin,  HIGH);
      
      delay (500);
      
      noTone(Buzzer);
      
      digitalWrite(blupin,  LOW);
      
      delay (500);
      
      servoGrad=servoGrad+90;
      
      myservo.write( servoGrad );
      
      delay (1500);
      
      tone(Buzzer,900 );
      
      digitalWrite(greenpin,  HIGH);
      
      delay (500);
      
      noTone(Buzzer);
      
      digitalWrite(greenpin,  LOW);
      
      delay (500);
      
      tone(Buzzer,900 );
      
      digitalWrite(greenpin,  HIGH);
      
      delay (500);
      
      noTone(Buzzer);
      
      digitalWrite(greenpin,  LOW);
      
      delay (500);
      
      tone(Buzzer,900 );
      
      digitalWrite(greenpin,  HIGH);
      
      delay (500);
      
      noTone(Buzzer);
      
      digitalWrite(greenpin,  LOW);
      
      delay (500);
      
      servoGrad=servoGrad-180;
      
      myservo.write( servoGrad );
      
      delay (2500);
      
      servoGrad=servoGrad+90;
      
      myservo.write( servoGrad );
      
      delay (500);
      
      noTone(Buzzer);
      
      digitalWrite(redpin,  LOW);
      
      delay (500);
      
      tone(Buzzer,900 );
      
      digitalWrite(redpin,  HIGH);
      
      delay (500);
      
      noTone(Buzzer);
      
      digitalWrite(redpin,  LOW);
      
      delay (500);
      
      tone(Buzzer,900 );
      
      digitalWrite(redpin,  HIGH);
      
      delay (500);
      
      noTone(Buzzer);
      
      digitalWrite(redpin,  LOW);
      
      delay (500);
      
      tone(Buzzer,900 );
      
      digitalWrite(redpin,  HIGH);
      
      delay (500);
      
      noTone(Buzzer);
      
      digitalWrite(redpin,  LOW);
      
      noTone(Buzzer);
      
      digitalWrite(redpin,  LOW);
      
      delay (500);
      
      tone(Buzzer,900 );
      
      digitalWrite(redpin,  HIGH);
      
      delay (500);
      
      noTone(Buzzer);
      
      digitalWrite(redpin,  LOW);
      
      delay (500);
      
      tone(Buzzer,900 );
      
      digitalWrite(redpin,  HIGH);
      
      delay (500);
      
      noTone(Buzzer);
      
      digitalWrite(redpin,  LOW);
      
      delay (500);
      
      tone(Buzzer,900 );
      
      digitalWrite(redpin,  HIGH);
      
      delay (500);
      
      noTone(Buzzer);
      
      digitalWrite(redpin,  LOW);
      
      noTone(Buzzer);
      
      digitalWrite(redpin,  LOW);
      
      delay (500);
      
      tone(Buzzer,900 );
      
      digitalWrite(redpin,  HIGH);
      
      delay (500);
      
      noTone(Buzzer);
      
      digitalWrite(redpin,  LOW);
      
      delay (500);
      
      tone(Buzzer,900 );
      
      digitalWrite(redpin,  HIGH);
      
      delay (500);
      
      noTone(Buzzer);
      
      digitalWrite(redpin,  LOW);
      
      delay (500);
      
      tone(Buzzer,900 );
      
      digitalWrite(redpin,  HIGH);
      
      delay (500);
      
      noTone(Buzzer);
      
      digitalWrite(redpin,  LOW);
      
      delay (500);
      
      tone(Buzzer,900 );
      
      digitalWrite(redpin,  HIGH);
      
      delay (500);
      
      noTone(Buzzer);
      
      digitalWrite(redpin,  LOW);
      
      if (in1 == LOW){
              stato=!stato;
              digitalWrite(led_pin, stato1);
      }

      delay(2000);
      
      if(in1 == LOW){
      
      } else {
      
      delay(10);
      
      }
      
      }
      
      }
      
      
}

Ho modificato il codice inserendo la sequenza in una sotto funzione

#include <Servo.h>

int servoPin  = 5;
int servoGrad = 79;
int led_pin = 2;
int button_pin = 4;
int stato = LOW;
int stato1 = HIGH;
int Buzzer = 3; 
int redpin = 9;
int greenpin = 11;
int blupin = 10;
int fotores = A0;
int Nota;

Servo myservo;


void setup() {
  pinMode(led_pin, OUTPUT);
  pinMode(button_pin, INPUT);
  pinMode(Buzzer, OUTPUT);
  pinMode(redpin, OUTPUT); 
  pinMode(greenpin, OUTPUT); 
  pinMode(blupin, OUTPUT);
  Serial.begin (9600);
  myservo.attach( servoPin );
  myservo.write( servoGrad );
}


void loop()
{
  int in1 = digitalRead(button_pin);
  Nota = analogRead(fotores);
  Serial.println(Nota);
  if (in1 == HIGH){
    stato=!stato;
    digitalWrite(led_pin, stato);
  }
  delay(2000);
  if(in1 == HIGH){  
    if (Nota < 10){                  
      sequenza(); // 30 secondi
      if (in1 == LOW){
        stato=!stato;
        digitalWrite(led_pin, stato1);
      }
      delay(2000);
      if(in1 == LOW){      
      // do nothing
      } 
      else {
        delay(10);
      }
    }
  }
} // End Loop

void sequenza()
{
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(redpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(redpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(redpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(redpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(redpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(redpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(redpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(redpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(redpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(redpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  delay (1500);
  tone(Buzzer,900 );
  digitalWrite(blupin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(blupin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(blupin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(blupin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(blupin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(blupin,  LOW);
  delay (500);
  servoGrad=servoGrad+90;
  myservo.write( servoGrad );
  delay (1500);
  tone(Buzzer,900 );
  digitalWrite(greenpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(greenpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(greenpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(greenpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(greenpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(greenpin,  LOW);
  delay (500);
  servoGrad=servoGrad-180;
  myservo.write( servoGrad );
  delay (2500);
  servoGrad=servoGrad+90;
  myservo.write( servoGrad );
  delay (500);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(redpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(redpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(redpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(redpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(redpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(redpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(redpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(redpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(redpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(redpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW); 
}

Considera che la sequenza di circa 30 secondi non è interrompibile.
Considerando che la sequenza parte se il pulsante è HIGH, hai messo la pull-down sul pin del pulsante?

Se intendi la resistenza si...

Si, una cosa così

Si si c'e' secondo me si tratta di un errore di sintassi..

Spiega cosa vuoi che faccia il programma.

quello qua sotto dovrebbe fare questo (cioè quello che mi sembra di aver capito ti serva)
se schiacci il pulsante accende il led, aspetta 2 secondi e controlla se nota <10, se è così fa partire la sequenza
finita la sequenza se rischiacci il pulsante spoegne il led

#include <Servo.h>

int servoPin  = 5;
int servoGrad = 79;
int led_pin = 2;
int button_pin = 4;
int stato = LOW;
int stato1 = HIGH;
int Buzzer = 3; 
int redpin = 9;
int greenpin = 11;
int blupin = 10;
int fotores = A0;
int Nota;

Servo myservo;


void setup() {
  pinMode(led_pin, OUTPUT);
  pinMode(button_pin, INPUT);
  pinMode(Buzzer, OUTPUT);
  pinMode(redpin, OUTPUT); 
  pinMode(greenpin, OUTPUT); 
  pinMode(blupin, OUTPUT);
  Serial.begin (9600);
  myservo.attach( servoPin );
  myservo.write( servoGrad );
}


void loop()
{
  int in1 = digitalRead(button_pin);
  
  Nota = analogRead(fotores);
  
  Serial.println(Nota);
  
  if (in1 == HIGH){
    stato=!stato;
delay(10);}
    
    if (stato==LOW){
      digitalWrite(led_pin, LOW);
delay(10);}
      
      if (stato==HIGH){
        digitalWrite(led_pin, HIGH);
        delay(2000);
        
         if (Nota < 10){                  
      sequenza(); // 30 secondi
      }
    }
   
    
  
     
  
  
  
  
} // End Loop

void sequenza()
{
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(redpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(redpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(redpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(redpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(redpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(redpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(redpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(redpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(redpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(redpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  delay (1500);
  tone(Buzzer,900 );
  digitalWrite(blupin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(blupin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(blupin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(blupin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(blupin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(blupin,  LOW);
  delay (500);
  servoGrad=servoGrad+90;
  myservo.write( servoGrad );
  delay (1500);
  tone(Buzzer,900 );
  digitalWrite(greenpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(greenpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(greenpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(greenpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(greenpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(greenpin,  LOW);
  delay (500);
  servoGrad=servoGrad-180;
  myservo.write( servoGrad );
  delay (2500);
  servoGrad=servoGrad+90;
  myservo.write( servoGrad );
  delay (500);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(redpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(redpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(redpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(redpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(redpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(redpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(redpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(redpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(redpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(redpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW); 
}

non l’ho provato e considera che non sono bravo ma dovrebbe andare

Sisi..il tutto funziona bene,pero' quando devo spegnere il circuito tramite pulsante(che spegne anche il led),mi ripete tutta la sequenza.Ecco io vorrei spegnere senza far ripartire la sequenza.Saluti

ma hai provato il codice che ho messo? non dovrebbe ripartire la sequenza...

Apparte che prima mi pareva solo un quote non avevo capito che era stato modificato il codice hehehehe Cmq ho il seguente errore:

error: expected unqualified-id before 'if'

Mi correggo..il codice e' valido..ma le cose son peggiorate.

1)La sequenza continua all'infinito 2)Non si spegne ne il led tanto meno il circuito

a me compila senza errori.... controlla di averlo copiato bene

sc4nn4gr1ll1: Apparte che prima mi pareva solo un quote non avevo capito che era stato modificato il codice hehehehe Cmq ho il seguente errore:

error: expected unqualified-id before 'if'

Mi correggo..il codice e' valido..ma le cose son peggiorate.

1)La sequenza continua all'infinito 2)Non si spegne ne il led tanto meno il circuito

Mi ero appena corretto...

prova evidente che ancora non sono in grado di fare un codice senza aver in mano l'hardware e averci provato qualche volta... mi dispiace ci ho provato :D

Ma che scherzi!!Grazie infinite per averci provato :-D

ah credo di aver capito perchè fa così
dopo che parte la sequenza stato rimane HIGH e quindi appena riparte il loop legge high e parte di nuovo…
devi fare un’altra variabile (credo si dica così) tipo stato da modificare alla fine della melodia e giocando con gli if e incrociando stato e l’altra variabile fargli capire quando anche se stato è high la melodia è gia stata eseguita e bisogna aspettare una nuova istruzione

ecco prova a mettere questo

#include <Servo.h>

int servoPin  = 5;
int servoGrad = 79;
int led_pin = 2;
int button_pin = 4;
int stato = LOW;
int stato1 = HIGH;
int Buzzer = 3; 
int redpin = 9;
int greenpin = 11;
int blupin = 10;
int fotores = A0;
int Nota;

Servo myservo;


void setup() {
  pinMode(led_pin, OUTPUT);
  pinMode(button_pin, INPUT);
  pinMode(Buzzer, OUTPUT);
  pinMode(redpin, OUTPUT); 
  pinMode(greenpin, OUTPUT); 
  pinMode(blupin, OUTPUT);
  Serial.begin (9600);
  myservo.attach( servoPin );
  myservo.write( servoGrad );
}


void loop()
{
  int in1 = digitalRead(button_pin);
  
  Nota = analogRead(fotores);
  
  Serial.println(Nota);
  
  if (in1 == HIGH){
    stato=!stato;
delay(10);}
    
    if (stato==LOW){
      digitalWrite(led_pin, LOW);
delay(10);}
      
      if (stato==HIGH){
        if(stato1==HIGH){
        digitalWrite(led_pin, HIGH);
        delay(2000);
        
         if (Nota < 10){                  
      sequenza(); // 30 secondi
      }
    }
if(stato1==LOW){
  stato1=!stato1;}}
   
    
  
     
  
  
  
  
} // End Loop

void sequenza()
{
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(redpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(redpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(redpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(redpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(redpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(redpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(redpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(redpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(redpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(redpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  delay (1500);
  tone(Buzzer,900 );
  digitalWrite(blupin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(blupin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(blupin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(blupin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(blupin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(blupin,  LOW);
  delay (500);
  servoGrad=servoGrad+90;
  myservo.write( servoGrad );
  delay (1500);
  tone(Buzzer,900 );
  digitalWrite(greenpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(greenpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(greenpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(greenpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(greenpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(greenpin,  LOW);
  delay (500);
  servoGrad=servoGrad-180;
  myservo.write( servoGrad );
  delay (2500);
  servoGrad=servoGrad+90;
  myservo.write( servoGrad );
  delay (500);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(redpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(redpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(redpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(redpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(redpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(redpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(redpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(redpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(redpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW);
  delay (500);
  tone(Buzzer,900 );
  digitalWrite(redpin,  HIGH);
  delay (500);
  noTone(Buzzer);
  digitalWrite(redpin,  LOW); 
  stato1=!stato1;
}

anche se ripensandoci dubito che vada bene anche così ma dovremmo esserci vicini direi…
senza poter provare e vedere gli effetti mi capita praticamente sempre di fare errori stupidissimi e dimenticarmi di scrivere qualche riga fondamentale ahaha

sc4nn4gr1ll1: Sisi..il tutto funziona bene,pero' quando devo spegnere il circuito tramite pulsante(che spegne anche il led),mi ripete tutta la sequenza.Ecco io vorrei spegnere senza far ripartire la sequenza.Saluti

Non mi sono chiare alcune cose. 1. Ma quando Arduino sta facendo il codice di Sequenza() tu vuoi "spegnerlo" ? Se si, per come hai fatto la funzione Sequenza(), non è possibile. 2. perchè due variabili di stato "stato" e "stato1" ?

Consiglio: - secondo me non basarti su stato=!stato; funziona ma potresti averlo usato male e poi lo usi in molti posti. Meglio essere sicuri e fare, semplifica la ricerca di eventuali errori:

if(in1==HIGH)
{ stato=HIGH;
  delay(10);
}
else
 stato=LOW;
}

Stessa cosa per stato1. Ad esempio dentro a funzione Sequenza() usi stato1=!stato1; Ma la funzione viene eseguita solo se "if(stato1==HIGH)" perciò tanto vale scrivere stato1=LOW; è più chiaro

  • per i pin (centra poco con il problema) meglio dichiararli "const byte":
const byte led_pin = 2;