Prime armi allarme casa

Ciao a tutti e' da pochi giorni che provo a fare dei programmi con arduino,quindi premetto sono alle prime armi ....ma propio prime. Voglio creare un progetto di allarme casa.interfacciando l'arduino con la centralina di allarme, premetto per me non e' un problema la parte hardware ma lo e' la parte di programmazione, sto provando con ardublock...la mia questione e' la seguente: quando imposto che l'ingresso 2 (allarme inserito) di arduino va hight deve eseguire delle operazioni, in queste operazioni c'e' un ritardo sempre di 5 minuti...( delay)poi ho impostato ingresso 3 che va alto quando c'e' una intrusione in casa ..la mia domanda e'se qualcuno entra in casa durante il ritardo di 5 minuti e quindi il programma e' fermo e non sta girando,se entra qualcuno in casa e quindi va alto l'ingresso 3 ,l'arduino non fa l'operazioni che deve fare perche' il programma e' fermo?

francesco2474:
Ciao a tutti e' da pochi giorni che provo a fare dei programmi con arduino,quindi premetto sono alle prime armi ....ma propio prime. Voglio creare un progetto di allarme casa.i

Intanto ciao e benvenuto. Ti invito alla lettura del regolamento del forum:

Tornando al tuo quesito.... il progetto di un antifurto non è una cosa da usare per iniziare a studiare la programmazione. Parti come hanno fatto tutti, con il blink di un led, con il cambio di rfrequenza del led conun pulsante, con l'uso di un display LCD per visualizzare delle scritte, con la lettura di sensori ecc... Pian piano poi acquisirai esperienza e conoscenza del linguaggio e potrai cimentarti con le cose più complesse. Altrimenti va a finire che il progetto te lo faremo noi e tu non avrai imparato nulla :slight_smile:

Ti ringrazio della risposta ok faccio come dici te, hai pienamente ragione,ma non e’ che mi puoi dare una risposta a questo quesito?Intanto cosi’ ho imparato gia’ qualcosa… cioe se l’arduino esegue un programma e durante questo programma sta facendo un delay di 10 secondi se va alto un pin durante il ritardo, l’arduino non lo sente perche’ il ciclo del loop e’ fermo oppure nonostante il ritardo continua a girare il loop?

Cerca nel reference Millis ... :wink:
Buono studio.

Certo se il loop è dentro un delay non viene rilevata nessuna variazione sui pin fino al termine di questo delay(n), per questo ti è stato consigliato l’uso del millis().

long lastMillis ;
long delayMillis = 5000 ;

void setup()
{
  // salvo il tempo iniziale
  lastMillis = millis() ;
}

void loop()
{
  // controllo che dall'ultimo tempo registrato siano passati "delayMillis"
  if ( millis() > ( lastMillis + delayMillis)) {
    lastMillis = millis() ;
    // inserisci il tuo codice che vuoi attuare dopo delayMillis
  }
  // inserisci qui il codice che vuoi attuare ad ogni loop
 }

Ciao, questo è un esempio da Sketch di come eseguire correttamente un'azione dopo determinato tempo, senza bloccare
l'esecuzione del loop...

-Tantissimo grazie amici siete bravissimi.... una ultima cosa sapete mica come si fa un ritardo con millis su ardublock? Non riesco propio... qualcuno mi puo' dare una mano?
ciao a tutti e ringrazio gia' a chi mi puo' dare una dritta...