Interrompere ciclo Loop? O simile?

Salve a tutti,
qualcuno potrebbe spiegarmi essendo un neofita come potrei fare per:
Tramite fotoresistenza accendere un led quando la luce è scarsa,
ma a differenza dei crepuscolari mi dovrebbe rimanere acceso fino a quando io non premo un pulsante e non con il tornar della luce. (Solo premendo un pulsante lo potrei spegnere).
Qualcuno mi può indicare lo sketch? o spiegare come potrei fare? Grazie mille.

Una variabile bool che può valere solo true (vero) o false (falso) (esempio di nome StatoLed)
La fai partire in false, poi quando accendi il led "accendi" anche quella variabile mettendola a true.
Il programma dovrà avere un grosso if( StatoLed==false)
se false esegui la parte di codice crepuscolare,
se true esegui la parte di codice che verifica se premi un tasto

scusate per l'ignoranza, ma essendo un neofita, qualcuno potrebbe postare un esempio di sketch? :frowning:

Ma tu hai almeno uno sketch che almeno accende il led quando la luce è poca ? Iniziamo da quello.

Eccolo:

#define fotoresistenza A0  
#define led 12  
void setup()  
{  
pinMode(A0,INPUT);  
pinMode(12,OUTPUT);  
Serial.begin(9600); // Inizializzo la comunicazione seriale  
}  

void loop()  
{  
int val = analogRead(fotoresistenza); // salvo il valore fotoresistenza dentro alla variabile val  
Serial.println(val, DEC); // Scrivo il valore della fotoresistenza, espresso in numeri decimali  
 
if(val<800) //se il valore letto dalla fotoresistenza (luminosità) è basso, accendo il led  
digitalWrite(led,HIGH);  
else  
digitalWrite(led,LOW); //altrimenti lo spengo (o lo lascio spento)  
 
}

In poche parole dovrei dirgli che fino a che val>800 il led rimane spento e quando val<800 accende il led ma lo lascia acceso fino a quando non premo io un pulsante per dirgli stop, anche se la condizione torna ad essere val<800.

Il codice devi racchiuderlo nei tag code, vedi sezione 7 del regolamento, spiega bene come fare ( pulsante </> ).
Altrimenti parte del codice può essere visualizzata male o mancare perchè interpretato come attributo del testo stesso.

Come ho detto prima, tu dichiara una variabile bool di nome StatoLed che parte a false
Poi la parte che fa il test del sensore la fai solo se StatoLed è false

if(StatoLed==false) 
{ int val = analogRead(fotoresistenza); // salvo il valore fotoresistenza dentro alla variabile val  
  Serial.println(val, DEC); // Scrivo il valore della fotoresistenza, espresso in numeri decimali  
  if(val<800) //se il valore letto dalla fotoresistenza (luminosità) è basso, accendo il led  
  { digitalWrite(led,HIGH);  
    StatoLed=true;   // led acceso, al prossimo giro di loop() passa da else
  }
}
else
{   // qui verifico se viene premuto un pulsante
}

P.S. nel tuo dice se dichiari le costanti #define per dire quali pin usi, usale anche nelle pinMode

pinMode(fotoresistenza,INPUT);  
pinMode(led,OUTPUT);