Sensor de lluvia y apagado de bomba

Hola, estoy haciendo un programa que lleve un sensor de tierra (humedad) y con un sensor de lluvia, mi programa tiene el fallo que cuando detecta que no hay humedad el relay se prende y apaga muchas veces y si al mismo tiempo detecta que hay lluvia se queda estable (encendido), lo que quiero lograr con el programa que cuando haya suficiente humedad y lluvia la bomba no se encienda y si no hay humedad y si hay lluvia la bomba tampoco se active, pero si no hay humedad la bomba se active.

muchas gracias por su ayuda!

int sensorPin= 9;
int bomba= 13;
int sensor = 8;
int val;
void setup() {
  pinMode(13,OUTPUT);
  pinMode(8,INPUT);
  Serial.begin(9600);   
  pinMode(sensorPin, INPUT);
}

void loop() {
   val = digitalRead(8);
  int value = 0;
  value = digitalRead(sensorPin );  
 
  if (value == HIGH) {
      Serial.println("NO Detectada lluvia");}
  if(val ==LOW)
  {
  digitalWrite(bomba,HIGH);
  }
  else
  {
  digitalWrite(bomba,LOW);
  }
  delay(400);

if (value == LOW) {
      Serial.println("Detectada lluvia");
  
if( sensor >= 50  ) {
digitalWrite(bomba, LOW);
Serial.println("Debe regar");
}
}
else{
digitalWrite(bomba, HIGH);
Serial.println("NO Debe regar");
}
Serial.println("=======================================================================");
}

con tanto if termine hecho bolas, lo que si note es que tienes uno que dice: "if( sensor >= 50 )"

¿De donde sale ese 50?, recuerda que estas usando digitalRead, por lo tanto solo tienes 2 estados (HIGH o LOW), (1 o 0), (true o false)