far funzionare un relè come un pulsante al variare di un sensore

salve
ho usato due sensori per umidità terreno come sensori per rilevare la presenza di acqua dentro un serbatoio (lo so è sbagliato ma questi mi trovo)

il codice attuale mi accende o spegne un relè a seconda se il serbatoio è pieno o vuoto (lo uso per svuotare il serbatoio)

vorrei variare il funzionamento del relè, cioè non deve stare acceso o spento, ma accendersi e spegnersi per 1 sec, il problema che non riesco a risolvere è che se uso il delay il tutto si ripete ciclicamente io invece vorrei che si fornisse l'impulso solo al variare della soglia cioè quando scendi sotto il minimo un impulso poi fermo fino a quando il livello non raggiunge nuovamente il massimo e quindi un'altro solo impulso

riassumo:

serbatoio pieno = arduino rileva che il sensore di massimo è in contatto con l'acqua e da un acceso spento al relè che attiva la pompa per lo svuotamento

serbatoio vuoto = arduino rileva che il sensore di minimo non è in contatto con l'acqua e da un acceso (LOW) spento (HIGH) al relè che disattiva la pompa per lo svuotamento.

per poi riattivarsi quando sarà nuovamente pieno

PS il serbatoio è alimentato da una sorgente in automatico

ecco il codice che ho scritto e non riesco a modificare

/*Sketch per rilevare l'umidita' del terreno (valore analogico) e accendere un led se si raggiunge una soglia critica. */
/*
    50 led rosso livello acqua min 
    51 led verde livello acqua max 
    52 led rosso pompa spenta
    53 led verde pompa accesa
    A0 sensore livello acqua max
    A1 sensore livello acqua min 
    22 relè pompa
    
*/
#define pompa 22 // relè pompa
#define led_liv_min 50
#define led_liv_max 51
#define led_pompa_off 52
#define led_pompa_on 53
#define liv_max A0
#define liv_min A1




const int soglia_minima = 800; //sensore di livello mimino
const int soglia_massima = 400; //sensore di livello massimo

void setup()
{
  Serial.begin(9600);
  pinMode(50, OUTPUT);  //led rosso livello acqua min 
  pinMode(51, OUTPUT);  //led verde livello acqua max 
  pinMode(52, OUTPUT);  //led verde pompa accesa
  pinMode(53, OUTPUT);  //led rossa pompa spenta
  pinMode(pompa, OUTPUT);  //relè pompa
  pinMode(A0, INPUT);   // sensore livello acqua min 
  pinMode(A1, INPUT);   // sensore livello acqua max 

 

}

void loop()
{
  
  
  int sensorValue_1 = analogRead(A0); //Legge il valore analogico liv MAX
  {

    if (sensorValue_1 <= soglia_massima)
    {
      Serial.println("pompa accesa livello acqua ok");
      digitalWrite(pompa, LOW); //Accendi pompa
      digitalWrite(led_pompa_on, HIGH); //Accendi led VERDE pompa
      digitalWrite(led_liv_max, HIGH); //Accendi led VERDE liv MAX
      digitalWrite(led_liv_min, LOW); //Spegni led ROSSO liv min
      digitalWrite(led_pompa_off, LOW); //Spegni led ROSSO pompa
      
    }
  }

  int sensorValue_2 = analogRead(A1); //Legge il valore analogico liv Min
  {

    if (sensorValue_2 >= soglia_minima)
    {
      Serial.println("pompa spenta livello acqua Basso" );
      digitalWrite(pompa, HIGH); //spegni pompa
      digitalWrite(led_pompa_on, LOW); //Spegni led VERDE pompa
      digitalWrite(led_liv_max, LOW); //Spegni led VERDE liv MAX
      digitalWrite(led_liv_min, HIGH); //Accendi led ROSSO liv min
      digitalWrite(led_pompa_off, HIGH); //Accendi led ROSSO pompa
    }
  }

  delay(2000); //Attende due secondi
}

>spe_: il cross-posting è proibito dal regolamento e tu stai discutendo di questo/simile argomento già QUI ed anche QUI ed ancora, stesso codice, QUI (non mi ero accorto che era cross-posting o li chiudevo entrambi) ...
... ti prego di continuare nel thread che hai già aperto e dove ti sono state già date delle risposte e di NON aprire altri thread sempre relativi a "variazioni" sullo stesso codice. Grazie.

Guglielmo