aiuto progetto depurazione

ciao ragazzi chiedo a voi un aiuto.
un mio amico ha creato una simulazione di un impianto di depurazione con arduino ma non riusciamo a farlo funzionare.
allego il programma.
per esempio la pompafiume deve partire se il sensore ultrasuonigrezza rileva una distanza di >11cm altrimenti se la distanza è < di 3 cm la pompa si deve bloccare. poi il resto del ciclo è simile ma siamo bloccati già con la prima pompa. Il problema è che il sesnore a monitor seriale misura correttamente ma dopo la prima lettura (per esempio mettendo la mano davanti al sesnore) non torna allo stato iniziale.

In più usiamo un blocco rele da 8 abbiamo collegato la fonte di alimentazione esterna come sui vari schemi e con un programma vuoto i led del banco rele risultano essere tutti accesi quindi lavorando al contrario.

//const int emergenza = 3;
const int pompaaria = 22;      //deve andare sempre
const int pompafiume = 24;     // deve andare fino a che ultrasuoni grezza non rileva 11 cm, quando vede 3 cm si deve fermare
const int pompafiltro = 26;      // va sempre, si ferma quando rileva 6 cm. fa partire insieme anche eletrovalvola 1 e 2.
const int pompactrl = 28;     // quando vasca depurata è 3 cm fa partire pompa ctrl, di seguito partono le valvole 3 e 4.
const int pomparilancio = 30 ;  //va sempre, si ferma quando ultrasuoni torre legge 7 cm.
const int elettrovalvola34 = 32;   //parte quando parte pompa ctrl
const int elettrovalvola12 = 34;  //parte quando parte pompafiltro
const int triggerPin1 = 36;  //ultrasuoni serbatoio. quando rileva 5 ferma la pompa rilancio
const int echoPin1 = 38;
const int triggerPin2 = 40;   //ultrasuoni filtro. quando rileva 6cm ferma pompa filtro
const int echoPin2 = 42;
const int triggerPin3 = 44;   // ultrasuoni vasca depurata. quando rileva 3cm ferma pompa filtro. quando è a 11 ferma pompa rilancio
const int echoPin3 = 46;
const int triggerPin4 = 48;   // ultrasuoni vasca grezza.  quando rileva 3 ferma la pompa fiume. quando rileva 11 ferma la pompa filtro
const int echoPin4 = 50;
//int val = 0;
long durata1;
long distanza1;
long durata2;
long distanza2;
long durata3;
long distanza3;
long durata4;
long distanza4;





void setup() {
// pinMode (emergenza, INPUT);
 pinMode (echoPin1, INPUT);
 pinMode (echoPin2, INPUT);
 pinMode (echoPin3, INPUT);
 pinMode (echoPin4, INPUT);
 pinMode (triggerPin1, OUTPUT);
 pinMode (triggerPin2, OUTPUT);
 pinMode (triggerPin3, OUTPUT);
 pinMode (triggerPin4, OUTPUT);
 
 pinMode (pompaaria, OUTPUT);
 pinMode (pompafiume, OUTPUT);
 pinMode (pompafiltro, OUTPUT);
 pinMode (pompactrl, OUTPUT);
 pinMode (pomparilancio, OUTPUT);
 pinMode (elettrovalvola34, OUTPUT);
 pinMode (elettrovalvola12, OUTPUT);
 Serial.begin(9600);
}





 
 

 void loop() {



//SENSORE GREZZA 

digitalWrite( triggerPin4, LOW );
//invia un impulso di 10microsec su trigger
digitalWrite( triggerPin4, HIGH );
delayMicroseconds( 10 );
digitalWrite( triggerPin4, LOW );
 
long durata4 = pulseIn( echoPin4, HIGH );
 
long distanza4 = 0.034 * durata4 / 2;
 
Serial.println("distanza sensore vasca grezza cm: ");
Serial.print(distanza4);

if( distanza4 < 3) digitalWrite(pompafiume, LOW);
else { digitalWrite(pompafiume, HIGH);}
if( distanza4 > 11) digitalWrite(pompafiltro, LOW);
else { digitalWrite(pompafiltro, HIGH);}
delay(100);

}



  }

... prima che passi un mod a "sgridarti", dovresti editare il post e mettere il codice fra i tag "code", grazie ... :wink:

>nicola_t: ti ricordo che in conformità al regolamento, punto 7, devi editare il tuo post (quindi NON scrivendo un nuovo post, ma utilizzando il bottone More → Modify che si trova in basso a destra del tuo post) e racchiudere il codice all’interno dei tag CODE (… sono quelli che in edit inserisce il bottone con icona fatta così: </>, tutto a sinistra).

In pratica, tutto il tuo codice dovrà trovarsi racchiuso tra due tag: [code] _il _tuo_ codice_ [/code] così da non venire interpretato e non dare adito alla formazione di caratteri indesiderati o cattiva formattazione del testo. Grazie.

Guglielmo