Come gestire contemporaneamente più output sotto la funzione if?

Come gestisco sotto la funzione if degli output che manterranno lo stato HIGH per tutta la durata della condizione e contemporaneamente altri output il cui stato sarà HIGH e LOW sempre per tutta la durata della condizione.
Ad esempio se realizzassi un dispositivo per rilevare il gas in una stanza se la condizione è vera, quindi ci fosse gas, potrei far attivare un output, un motore che attivi una ventola che aspiri il gas fuori. Contemporaneamente vorrei attivare dei dispositivi di segnalazione, acustici e visivi tramite buzzer o LED. Quest’ultimi finché persiste la condizione vera devono passare dallo stato HIGH a LOW e viceversa con intervalli di tempo ad esempio di un secondo.
Come faccio a gestire questa situazione?
Devo scrivere nel codice fra le prime due parentesi quadre dopo if, lunghe e interminabili righe di delay(1000);?

Spero di essermi spiegato bene, se cosi non fosse abbiate pietà di me!!

Questo arduino mi sta prendendo proprio non vedo l'ora di riuscire passo passo a realizzare progetti più impegnativi.

Grazie a tutti in anticipo.

un pin comandato alto o basso con una digitalWrite rimane alto o basso fino a nuovo ordine (ops, nuova digitalWrite)
quindi il tuo problema si riduce a quello di comandare i pin quando serve e interrrogare la millis per sapere quando devi farlo
se cerchi qui di esempi ne trovi a bizzeffe

PS if non è una funzione, almeno i docenti debbono avere la proprietà del linguaggio, visto che aspettarsela da partecipanti "normali" è una pura illusione

PPS ho cambiato firma, leggila bene...........

Ciao! Cerca "programmiamo i compiti con millis()" va bene te lo cerco io :slight_smile:
https://www.leonardomiliani.com/2013/programmiamo-i-compiti-con-millis/

Tu cosa dovrai fare di diverso?? Usare una variabile nell'if() di millis(), se true o 1 l'if viene eseguito, se messa a false o 0 l'if non viene eseguito.

In questo modo SE C'è GAS if(gas), abilito la condizione di millis()

  byte flag=0;
  if(gas)
       flag=1;
  else
       flag=0;

  unsigned long currentMillis = millis();
  if(flag==1 && currentMillis - previousMillis > interval) {
    previousMillis = currentMillis; //save the last time you blinked the LED
    //if the LED is off turn it on and vice-versa:
    ledState ^= 1;
    digitalWrite(ledPin, ledState);
  }

Considera che un motore a spazzole produce scintille, così come un relè che commuta. Se il gas è infiammabile, quindi, gli elementi di potenza di ogni uscita dovranno essere statici: transistor PNP o NPN, MOSFET o simili, e il motore dovrà essere a pilotaggio elettronico, senza spazzole.

Standardoil:
Un pin comandato alto o basso con una digitalWrite rimane alto o basso fino a nuovo ordine (ops, nuova digitalWrite) quindi il ....

Grazie per le indicazioni, non si finisce mai di imparare.
Pe gli esempi cosa intendi con il se cerchi qui? Sul forum?
A riguardo se hai link dove poter studiare, visionare, materiale interessante manda pure.
Ops perdonami errore sulle proprietà del linguaggio, ho tanto da imparare su questo piccolo ma grande mondo che gira intorno ad Arduino. Se non sbaglio ancora if è un'istruzione facente parte della struttura di controllo, giusto?
Per il quesito da me segnalato mi aspettavo ci fosse un’istruzione “breve” che permettesse di fare questo.

Potresti cercare 'aiutateci ad aiutarvi'
Li abbiamo concentrato un po' di link e consigli..

torn24:
Ciao! Cerca "programmiamo i compiti con millis()" va bene te lo cerco io :)...

Grazie 1000!! Immaginavo ci potesse essere una soluzione da adattare a questo tipo di situazioni. Darò un'occhiata ben volentieri al materiale da te inviatomi. Inoltre condividerò il sito web anche sul mio www.mthw.it cosi da aiutare altri a trovare risorse utili più facilmente.

Datman:
Considera che un motore a spazzole produce scintille, così come un relè che commuta. Se il gas è infiammabile, quindi, gli elementi di potenza di ogni uscita dovranno essere statici: transistor PNP o NPN, MOSFET o simili, e il motore dovrà essere a pilotaggio elettronico, senza spazzole.

Grazie anche a te per il contributo. Per quanto segnalato sicuramente si farà un approfondimento a riguardo. Cosi che i ragazzi capiscano l’importanza della sicurezza utilizzando i dispositivi più adatti al problema da risolvere.