riempitore per piscina

buongiorno a tutti, volevo fare un sistema che (durante la notte) rilevasse il livello dell'acqua della piscina e nel caso fosse basso aprisse un'elettrovalvola in modo da riempirla. il problema sta nel sensore. Se collego il sensore ad un voltmetro il segnale è netto (1,0), se lo leggo con digitalRead() mi segnala sempre il livello basso, se lo leggo in analogico (con intervalli di 1/2 secondo) il segnale passa da 1023 a 900, poi 400 poi 0 e viceversa.
Qual'è il problema???

grazie in anticipo

// Progetto di apertura automatica dell'acqua di riempimento della piscina

#define ELETTROVALVOLA 12
#define SENSORE A2
#define COUNTDOWN 0 //tempo in secondi rimanenti all'inizio dell'attivazione
#define GIORNO 86400 //i secondi in un giorno
#define INTERVALLO 14400//i secondi che deve durare il tempo del riempimento
#define PAUSA 10000 //i millisecondi in cui deve stare in pausa per la stabilità del sistema
#define STATOSENSORE HIGH //lo stato del sensore nel momento in cui il livello dell'acqua è basso



unsigned long starttime = 0;
int aperto=0;

void setup ()
{
	pinMode(ELETTROVALVOLA, OUTPUT);
	pinMode(SENSORE, INPUT);
        Serial.begin(9600);
        starttime = millis()/1000;
}

void loop ()
{
     while(((millis()/1000)-starttime > COUNTDOWN) && ((millis()/1000)-starttime < (COUNTDOWN + INTERVALLO))){ 
        if(analogRead(SENSORE)>900&&aperto==0){
            digitalWrite(ELETTROVALVOLA, LOW);
            aperto = 1;
            Serial.println(analogRead(SENSORE));
            delay(10); //per la stabilità del sistema
            
            delay(PAUSA);
        }
        else if(aperto == 1){ //se c'è acqua ma l'elettrovalvola è aperta
            digitalWrite(ELETTROVALVOLA, HIGH);
            aperto = 0;
            Serial.println(analogRead(SENSORE));
            delay(10); //per la stabilità del sistema
            
            delay(PAUSA);
        }
     }
     if(aperto==1){
     digitalWrite(ELETTROVALVOLA, HIGH);
     aperto=0;
     Serial.println("chiuso");
     }
     if((millis()/1000)-starttime>GIORNO){
        starttime=millis()/1000;
     }
delay(1);
}

Qual'è il problema???

Il primo problema é che non sappiamo che sensore hai.
Ciao Uwe