Sistema de riego: La bomba de agua sigue funcionando con el depósito vacio

El estado "0" indica que el tanque está lleno. Hay 2 formas de usar el sensor de nivel de líquidos, boca arriba o boca abajo, yo lo dejo en el agua y es el resultado que me da el código.

La doble asignación es un error, tienes toda la razón, sobra "digitalWrite(water_pump, HIGH)"; debió quedar ahí cuando hice pruebas con un relé.

Kike_GL:
Estas seguro que 0 es tanque lleno ?

Porque la doble asignación de water_pump ? comenta con // alguno en todo caso.

analogWrite(water_pump, water_pump_speed);

digitalWrite(water_pump, HIGH);