Problema comunicacion serial RF

Muy buenas, este es mi primer post, llevo ya dias buscando por el foro por si alguien le ha ocurrido lo mismo que a mi, pero la verdad que no lo encuentro, a continuacion os paso a detallar el problemilla que me ha surgido en mi proyecto que es el siguiente:
Tengo un deposito de agua a unos 20 mts de mi casa que lo utilizo para regar la huerta, mi primera intencion fue a traves de dos modulos de RF APC220 saber que nivel tenia el deposito de agua y cuando le faltara pues lo llenaba. Al principio todo iba bien, tenia unos led en el receptor el cual me indicaba el nivel y con el tiempo me dije de incluir una salida del receptor a una electrovalvula para que se llenara automaticamente y aqui viene mi fracaso. El emisor lo tengo alimentado con una bateria de 12V 7Ah pues no tengo posibilidad de suministro electrico directo, antes cuando se me agotaba la bateria, el panel led se me quedaba apagado y sabia que habia que cargar la bateria, pero ahora (me ha ocurrido dos veces) si se agota la bateria del emisor y si este habia mandado la orden de llenado, el receptor se queda enclavado con esa orden y no cambia de estado, con lo cual el deposito ha desbordado dos veces (la primera vez no preste mucha atencion). A continuacion os pongo el codigo:

Emisor:

 // Emisor 8 canales
const int PULS = 2; // pin 2 conectado al pulsador (conectado a masa y una resistencia+5v)
const int PULS1 = 3;
const int PULS2 = 4;
const int PULS3 = 5;
const int PULS4 = 6; 
const int PULS5 = 7;
const int PULS6 = 8;
const int PULS7 = 9;

// variable que cambiara:
int estadoPULS = 0; 
int estadoPULS1 = 0;
int estadoPULS2 = 0;
int estadoPULS3 = 0;// variable para ver el estado del boton 
int estadoPULS4 = 0; 
int estadoPULS5 = 0;
int estadoPULS6 = 0;
int estadoPULS7 = 0;


void setup() 
{
  Serial.begin(2400);      // Inicia la velocidad de transmision para Tx 

  pinMode(PULS, INPUT);  //declaramos los pulsadores como entradas
  pinMode(PULS1, INPUT);
  pinMode(PULS2, INPUT);
  pinMode(PULS3, INPUT);
  pinMode(PULS4, INPUT); 
  pinMode(PULS5, INPUT);
  pinMode(PULS6, INPUT);
  pinMode(PULS7, INPUT);
  ;
      
}

void loop()
{
  // lee si el pulsador esta suelto 0 o pulsado 1
  estadoPULS = digitalRead(PULS);
  estadoPULS1 = digitalRead(PULS1);
  estadoPULS2 = digitalRead(PULS2);
  estadoPULS3 = digitalRead(PULS3);
  estadoPULS4 = digitalRead(PULS4);
  estadoPULS5 = digitalRead(PULS5);
  estadoPULS6 = digitalRead(PULS6);
  estadoPULS7 = digitalRead(PULS7);
 
  

  if (estadoPULS == LOW) 
  {                              // si el boton no ha sido pulsado (esta sonda esta al reves):    
         
    Serial.print('A');           // Enviamos 'A' por Tx (puerto serie)
    delay(1000);                  // Retardo de 1 s
  } 
  
  if (estadoPULS == HIGH) 
  {                              // si el boton ha sido pulsado:    
         
    Serial.print('B');           // Enviamos 'B' por Tx (puerto serie)
    delay(1000);                  // Retardo de 1 s
  } 
     
     
     if (estadoPULS1 == HIGH) 
  {                                  
         
    Serial.print('C');           
    delay(1000);                  
  } 
  
  if (estadoPULS2 == HIGH) 
  {                                  
         
    Serial.print('D');           
    delay(1000);                  
  } 
  
  if (estadoPULS3 == HIGH) 
  {                                  
         
    Serial.print('E');           
    delay(1000);     
  } 
  if (estadoPULS4 == HIGH) 
  {                                  
         
    Serial.print('F');           
    delay(1000);                  
  } 
      if (estadoPULS5 == HIGH) 
  {                                  
         
    Serial.print('G');           
    delay(1000);                  
  } 
  
  if (estadoPULS6 ==HIGH) 
  {                                  
         
    Serial.print('H');           
    delay(1000);                  
  } 
 
  if (estadoPULS7 ==HIGH) 
  {                                  
         
    Serial.print('I');           
    delay(1000);                  
  }  
    
  delay(3000);
}

este es el receptor

// Receptor de 8 canales y control de entrada de agua

int led =  2; //salida a la que conecto el led
int led1 = 3;
int led2 = 4;
int led3 = 5;
int led4 = 6;
int led5 = 7;
int led6 = 8;

void setup() {
  Serial.begin(2400);  // Inicia la velocidad de transmision para Tx 
  pinMode(led, OUTPUT); //declaramos los led como salidas
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT); 
  pinMode(led4, OUTPUT);
  pinMode(led5, OUTPUT);
  pinMode(led6, OUTPUT);
  
}


void loop() {
  
  if (Serial.available() ) {
    int byte_entrada = Serial.read();  // almaceno en byte_entrada el dato que llega al puerto
    if (byte_entrada == 'A'){  // busca el caracter A y si lo encuentra enciende el led
      digitalWrite(led, HIGH); //enciende led
      delay(1000);             // espera 1.5 seg
      digitalWrite(led, LOW);  // apaga led
    }
    if (byte_entrada == 'B'){  // busca el caracter B y si lo encuentra apaga el led
     digitalWrite(led1, HIGH);
     delay(1000);
     digitalWrite(led1, LOW);
    } 
     if (byte_entrada == 'C'){
      digitalWrite(led1, HIGH);
      delay(1000);
      digitalWrite(led1, LOW);
    }
    
    if (byte_entrada == 'D'){
     digitalWrite(led2, HIGH);
     delay(1000);
     digitalWrite(led2, LOW);
    } 
    
    if (byte_entrada == 'E'){
     digitalWrite(led3, HIGH);
     delay(1000);
     digitalWrite(led3, LOW);
    } 
    
    if (byte_entrada == 'F'){
     digitalWrite(led4, HIGH);
     delay(1000);
     digitalWrite(led4, LOW);
    } 
    
    if (byte_entrada == 'G'){
     digitalWrite(led5, HIGH);
     delay(1000);
     digitalWrite(led5, LOW);
    } 
    
    if (byte_entrada == 'H'){
     digitalWrite(led6, HIGH);
    } 
    
    if (byte_entrada == 'I'){
     digitalWrite(led6, LOW);
    } 
   }
}

Con lo cual mi pregunta seria la siguiente:
¿Existe alguna orden dentro de la funcion Serial para que pasado un cierto tiempo, si esta dejara de recibir datos, para poder poner una orden para que la salida de la electrovalvula pasara a estado LOW?

Agradeciendo vuestra ayuda de antemano se despide un novato en Arduino.
P.D. Este codigo viene de un codigo de timbre inalambrico que anda en la red.

Porque no mides en el emisor la tensión de batería como una manera de prestarle atención.
Cuando en el receptor veas que la batería llega a 6.5 o 7V segun tu criterio haces sonar un buzzer.
Solo un divisor resistivo (dos resistencias) mides tensión y envias ese dato.

Otra cosa. Veo que tienes un sistema ya sea capacitivo o de boyas de nivel. Para indicarte el nivel, no entiendo tu criterio A a E pero cada cual sabe como entenderse.

SUGERENCIA: porque no pones un MPX5050DP para 5mts o 5010DP para 1mt de altura de H2O. Con el sensor medirás la altura de agua. Asi mido yo mi tanque de agua sin problemas.
Envias ese dato y apagas de arduino por digamos 30 segundos y vuelves a medir y enviar dato de altura y de la batería.
Eso alargará tu batería de manera importante.
Lo mismo puedes hacer con lo que ya tienes instalado.
Solo mides, apagas, despiertas vuelves a leer, enviar, y a dormir.

Buenas surbyte, gracias por responder, a lo que me dices sobre el sensor de presion para mi es inviable, pues el agua es muy dura (es agua de un pozo echo en una roca caliza) y te puedo asegurar que el conducto se terminaria cegando y la medida seria incorrecta, pues el motor electrico del pozo esta controlado por variador de velocidad y lleva un sensor de presion y hay que limpiarlo muy de vez en cuando, por lo que te he comentado antes, con lo cual para medir los niveles de agua opte por boyas flotadores que contienen en su interior un interruptor reed accionado por un iman y la verdad no me ha dado problema en mas de dos años. Tambien intente medir el nivel mediante ultrasonidos con el modulo ultrasonico HC-SR04 pero al poco tiempo me dio problemas, supongo que por la humedad (llegaba a condensar gotas de agua en las capsulas en verano).
Lo que me comentas de medir la tension, tampoco lo veo viable, pues es una casa en el campo la cual solo voy tres veces a la semana, con lo cual cuando empezara a sonar el buzzer si no estoy presente no es solucion, por eso comentaba lo de la instruccion serial...

P.D. La bateria suele de durar casi una semana y tengo que llenar el deposito cada 6 seis dias +/-

Claro que si tu sistema funciona no hay razón para cambiarlo.

Yo tengo sensores de presion colocados en cisternas con aguas y material céptico de modo que si mido nivel de este modo es porque esta garantizado.
El truco es que abajo tengo una campana metálica con un peso. la campana termina en una manguera neumática especial (no se corroe por el medio acído) y funciona en varios pozos de mi ciudad de se modo. La cooperativa de Agua cambio su sistema anterior cuando le mostré un pozo controlado de esta manera.
Luego te doy mas datos.
La idea no es mía. Mi hermano usaba bombas Fligt (una marca internacional) y vimos que en sus equipos usaban esta idea. Dijimos EXCELENTE!! porque no? y no hay situación que se resista!!!

Me has despertado la curiosidad de lo que me has comentado y estare espectante a lo que enseñaras, pues las aguas de las fosas septicas contienen un alto nivel de solidos en suspension, pero te vuelvo a insistir es un agua muy dura, las incrustaciones de cal son alucinantes (me rio yo del anuncio de la tele de Viakal aplicado al telefonillo de la ducha), en verano con las altisimas temperaturas, los latiguillos del goteo es que se obtruyen que da gusto, vamos que la cal se hace piedra, por eso tengo que limpiar asiduamente con agua fuerte el sensor de presion del pozo.

No encuentro una imagen que sirva pero imagina un cilindro con una tapa superior. Un ofificio con un conector apropiado a la manguera neumática y de ahi al sensor de presión.
Con el debido peso, la campana, se irá al fondo. La manguera la mantienes abierta del lado del sensor. Tendrá aire claro.
Sino habría empuje a la campana. Luego conectas al sensor en uno de las conexiones diferenciales. Y ya está.
Medirás la altura del tanque sin problemas. Según el sensor
MPX5010DP para 1 metro
MPX5050DP para 5 metros
MPX5100DP para 10 metros de columna de agua

Hola buenas noches amigos, una pregunta: Que haces con esos puertos que colocas en HIGH y luego los pones en LOW al pasar 1 seg? es extraño lo que te esta pasando. No entiendo mucho para que deseas enviar 7 instrucciones. Es decir, si lo que buscas es verificar el nivel del pozo pues como muy bien lo tienes allí esperas la señal del flotador para activar una bomba. Para que quieres un modulo TX-Rx? cual es el papel del TX? No entiendo mucho el sistema para poderte ayudar. En mi casa tengo un sistema muy simple con 2 flotadores. Uno se activa por nivel bajo y el otro por nivel alto. Una vez que se activa por nivel bajo, energizo la bobina del contactor de la bomba y la dejo enclavada. Esta se va a apagar con la señal del flotador de nivel alto. No necesite de emisor ni transmisor ni nada de eso a menos que a manera de hobby quisiera saber cuando la bomba esta encendida o conocer el nivel de agua del pozo. Por favor explícame un poquito mas a detalle que significan esas letras que envías al receptor para tener una mejor idea y poderte ayudar.
Saludos

Envía letras porque esa es la forma que el encontró para transmitir los niveles del pozo.
Mas fácil sería esto.

 estadoPULS = digitalRead(PULS);
  estadoPULS1 = digitalRead(PULS1);
  estadoPULS2 = digitalRead(PULS2);
  estadoPULS3 = digitalRead(PULS3);
  estadoPULS4 = digitalRead(PULS4);
  estadoPULS5 = digitalRead(PULS5);
  estadoPULS6 = digitalRead(PULS6);
  estadoPULS7 = digitalRead(PULS7);
  byte dato = estadoPULS + estadoPULS1 << 1 + estadoPULS1 << 2 + estadoPULS1 << 3 + 
                      estadoPULS1 << 4 + estadoPULS1 << 5 + estadoPULS1 << 6 + estadoPULS1 << 7;
  Serial.print(dato); // dato de 0 a 255

No es mas facil?

En el receptor tengo una columna de led dispuesto en vertical que simula la longitud del deposito, con lo cual me refleja la cantidad de agua del mismo. El efecto que se ve es un simil al del coche fantastico, ves la barra subir y volver a empezar desde cero. Las dos ultimas instrucciones del receptor son las que me activaba la bomba. Lo vuelvo a repetir, aunque la distancia no es mucha, por temas que son dificiles de explicar no tengo posibilidad de electricidad en el deposito y la otra es mi experiencia en programacion, eso si, estoy interesado en aprender, el proyecto original del que me baso es un pulsador a distancia de un tal faludi mediante un modulo X-bee.

Surbyte probare lo que has puesto y te cuento.

Lo que te he propuesto hace que tus 8 entradas reporten un unico valor que obviamente será un numero de 0 a 255.
Del mismo modo puedes encender tus leds del lado receptor.
Es escalonamiento de los números será discreto, 0, 1, 3, 7, 15, 31, 63,127,255.
A ver como te va?

Buenas Surbyte, he probado tu codigo

// Emisor 8 canales
const int PULS = 2; // pin 2 conectado al pulsador (conectado a masa y una resistencia+5v)
const int PULS1 = 3;
const int PULS2 = 4;
const int PULS3 = 5;
const int PULS4 = 6; 
const int PULS5 = 7;
const int PULS6 = 8;
const int PULS7 = 9;

// variable que cambiara:
int estadoPULS = 0; 
int estadoPULS1 = 0;
int estadoPULS2 = 0;
int estadoPULS3 = 0;// variable para ver el estado del boton 
int estadoPULS4 = 0; 
int estadoPULS5 = 0;
int estadoPULS6 = 0;
int estadoPULS7 = 0;



void setup() 
{
  Serial.begin(2400);      // Inicia la velocidad de transmision para Tx 

  pinMode(PULS, INPUT);  //declaramos los pulsadores como entradas
  pinMode(PULS1, INPUT);
  pinMode(PULS2, INPUT);
  pinMode(PULS3, INPUT);
  pinMode(PULS4, INPUT); 
  pinMode(PULS5, INPUT);
  pinMode(PULS6, INPUT);
  pinMode(PULS7, INPUT);
  ;
      
}

void loop()
{
  // lee si el pulsador esta suelto 0 o pulsado 1
  estadoPULS = digitalRead(PULS);
  estadoPULS1 = digitalRead(PULS1);
  estadoPULS2 = digitalRead(PULS2);
  estadoPULS3 = digitalRead(PULS3);
  estadoPULS4 = digitalRead(PULS4);
  estadoPULS5 = digitalRead(PULS5);
  estadoPULS6 = digitalRead(PULS6);
  estadoPULS7 = digitalRead(PULS7);
 
  

  byte dato = estadoPULS + estadoPULS1 << 1 + estadoPULS1 << 2 + estadoPULS1 << 3 + 
                      estadoPULS1 << 4 + estadoPULS1 << 5 + estadoPULS1 << 6 + estadoPULS1 << 7;
  Serial.print(dato); // dato de 0 a 255 
  delay(1000);
}

y a traves del puerto serial de IDE de arduino lo unico que se lee es "0", por mucho que modifique las entradas. ¿Que es lo que he echo mal?

pequeÑo error aqui. No se si fue mal copiado y pasteado

// En el setup al final dice
pinMode(PULS7, INPUT);
  ;

PERDONA!!!!!!!!!!!!!!!!!!!! mira que tontería

 byte dato = estadoPULS + estadoPULS1 << 1 + estadoPULS2 << 2 + estadoPULS3 << 3 + 
                      estadoPULS4 << 4 + estadoPULS5 << 5 + estadoPULS6 << 6 + estadoPULS7 << 7;

una cosa aparte de todo lo anterior: ¿porque no pones una placa solar para cargar la bateria?
no sé que tal son, ya que no he comprado, pero hay esto por 18€
esto

Buenas Surbyte, nuestra relacion aparentemente parece ser que va a estar condenada al fracaso :wink:

/ Emisor 8 canales
const int PULS = 2; // pin 2 conectado al pulsador (conectado a masa y una resistencia+5v)
const int PULS1 = 3;
const int PULS2 = 4;
const int PULS3 = 5;
const int PULS4 = 6; 
const int PULS5 = 7;
const int PULS6 = 8;
const int PULS7 = 9;

// variable que cambiara:
int estadoPULS = 0; 
int estadoPULS1 = 0;
int estadoPULS2 = 0;
int estadoPULS3 = 0;// variable para ver el estado del boton 
int estadoPULS4 = 0; 
int estadoPULS5 = 0;
int estadoPULS6 = 0;
int estadoPULS7 = 0;



void setup() 
{
  Serial.begin(2400);      // Inicia la velocidad de transmision para Tx 

  pinMode(PULS, INPUT);  //declaramos los pulsadores como entradas
  pinMode(PULS1, INPUT);
  pinMode(PULS2, INPUT);
  pinMode(PULS3, INPUT);
  pinMode(PULS4, INPUT); 
  pinMode(PULS5, INPUT);
  pinMode(PULS6, INPUT);
  pinMode(PULS7, INPUT);
  
      
}

void loop()
{
  // lee si el pulsador esta suelto 0 o pulsado 1
  estadoPULS = digitalRead(PULS);
  estadoPULS1 = digitalRead(PULS1);
  estadoPULS2 = digitalRead(PULS2);
  estadoPULS3 = digitalRead(PULS3);
  estadoPULS4 = digitalRead(PULS4);
  estadoPULS5 = digitalRead(PULS5);
  estadoPULS6 = digitalRead(PULS6);
  estadoPULS7 = digitalRead(PULS7);
 
   byte dato = estadoPULS + estadoPULS1 << 1 + estadoPULS2 << 2 + estadoPULS3 << 3 + 
                      estadoPULS4 << 4 + estadoPULS5 << 5 + estadoPULS6 << 6 + estadoPULS7 << 7;

   Serial.print(dato); // dato de 0 a 255 

  
  delay(1000);
}

La cosa sigue igual, he quitado el ";" y he copiado como puedes ver tu rectificacion, pero sigo leyendo por el puerto serial del IDE arduino nada mas el dato "0", dando igual el estado de las entradas y en mi codigo el ";" no afecta para nada, me manda las letras prefijadas por mi, segun el nivel de la entrada, vuelvo a repetir soy novato, pero algo cabezon y siempre que pueda con ganas de aprender.
Ya efect2000, la verdad que me he planteado el tema de colocar una plaquita solar, pero lo que me ha echado atras ha sido el tema de instalarla, tendria que hacer un poco de obra para poder colocarla y es lo que me tira "patras" y la verdad como tengo dos baterias pues las voy cambiando y me dejo siempre una cargando, pero vamos como uno "va pa viejo" pues al final la pondré.
P.D. He estado urgando en la red y he visto esta: http://bateriasonline.com/es/3730-panel-solar-12v-5w-energia-solar.html y encima a 30 minutos de mi casa, con lo cual la compra seria "en directo" y la diferencia se puede observar a simple vista.

La cosa sigue igual, he quitado el ";" y he copiado como puedes ver tu rectificacion, pero sigo leyendo por el puerto serial del IDE arduino nada mas el dato "0", dando igual el estado de las entradas y en mi codigo el ";" no afecta para nada, me manda las letras prefijadas por mi, segun el nivel de la entrada, vuelvo a repetir soy novato, pero algo cabezon y siempre que pueda con ganas de aprender.

El comentario de que te manda las letras prefijadas por ti, me hace pensar que no estas grabando en el arduino emisor.
Lo estas haciendo en el EMISOR no?
No en el receptor. El receptor ahora recibirá numeros.

Buenas Surbyte, el codigo que he pegado es el del emisor con la rectificacion tuya , y la lectura serial se la hago al emisor, para verificar lo que manda, y como te digo tan solo manda el dato "0" cada segundo (pues se ha implementado ese delay 1000) y por mucho que cambie de estado las entradas, no cambia el Serialprint o por lo menos en mi monitor serial solo escribe "0".

Ante la duda he vuelto a escribir mi codigo y la lectura serial manda "las letras" segun el puerto que tenga activado.

Siempre hablamos del emisor.

eugeniohuet estuve ensayando con tu codigo modificado por Ricardo (Surbyte) haciendo pruebas en Proteus, y si, en efecto como indicas siempre envia 0 modifique el codigo y ahora hace lo que esperabamos que hiciera como diseño Ricardo aca te lo dejo:

// Emisor 8 canales
const int PULS = 2; // pin 2 conectado al pulsador (conectado a masa y una resistencia+5v)
const int PULS1 = 3;
const int PULS2 = 4;
const int PULS3 = 5;
const int PULS4 = 6; 
const int PULS5 = 7;
const int PULS6 = 8;
const int PULS7 = 9;

// variable que cambiara:
int estadoPULS = 0; 
int estadoPULS1 = 0;
int estadoPULS2 = 0;
int estadoPULS3 = 0;// variable para ver el estado del boton 
int estadoPULS4 = 0; 
int estadoPULS5 = 0;
int estadoPULS6 = 0;
int estadoPULS7 = 0;


void setup() 
{
  Serial.begin(2400);      // Inicia la velocidad de transmision para Tx 

  pinMode(PULS, INPUT_PULLUP);  //declaramos los pulsadores como entradas
  pinMode(PULS1, INPUT_PULLUP);
  pinMode(PULS2, INPUT_PULLUP);
  pinMode(PULS3, INPUT_PULLUP);
  pinMode(PULS4, INPUT_PULLUP); 
  pinMode(PULS5, INPUT_PULLUP);
  pinMode(PULS6, INPUT_PULLUP);
  pinMode(PULS7, INPUT_PULLUP);
      
}

void loop()
{
  // lee si el pulsador esta suelto 0 o pulsado 1
  estadoPULS = digitalRead(PULS);
  estadoPULS1 = digitalRead(PULS1)<<1;
  estadoPULS2 = digitalRead(PULS2)<<2;
  estadoPULS3 = digitalRead(PULS3)<<3;
  estadoPULS4 = digitalRead(PULS4)<<4;
  estadoPULS5 = digitalRead(PULS5)<<5;
  estadoPULS6 = digitalRead(PULS6)<<6;
  estadoPULS7 = digitalRead(PULS7)<<7;
 
  byte dato=estadoPULS + estadoPULS1 + estadoPULS2 + estadoPULS3 + estadoPULS4 +
       estadoPULS5 + estadoPULS6 + estadoPULS7;
  Serial.println(dato); // dato de 0 a 255 
  delay(1000);
}

No entiendo porque dejando el bitshit en la operacion de byte dato no funciona espero que alguno de ustedes me de una idea sin embargo aca dejo ese codigo funcional para que sigamos avanzando

Buenas Firius2010, efectivamente tu codigo si funciona, y agradezco tu reporte, lo he probado, pero, veo mas dificil para compilar el codigo del receptor, ¿motivo?, en el supuesto caso de que algun interruptor se quedara "pillado o bloqueado" (por el dichoso tema de la cal del agua) al ir subiendo el nivel del agua en el deposito, he estado probando el codigo y si me salto dicho interruptor, el numero de salida por el puerto Serial me varia, es decir:
entrada 1 high = 1
entrada 1 y 2 high =3
entrada 1+2+3 high=6
entrada 1=low, 2=low, 3=high=4
entrada 1=low y 2 high=2
y asi sucesivamente
con lo cual o tengo que programar todas las posibles variables o si solo programo las variables con todos los interruptores cerrados puede darse el caso de que al fallar un interruptor ningun led se encenderia en el receptor. Con lo cual tengo varias opciones, la placa solar que va a ser si o si, o probar como dijo en los primeros post el sensor de presion y ver que tal resulta con la cal del agua de mi pozo.

Ricardo ¿en donde se puede colocar el sensor de presion que comentaste?
Mejor dicho, ¿a que distancia se puede colocar dicho sensor de la boca del deposito?

El sensor se pone arriba junto a tu Arduino. Un la boca diferencial negativa al aire o a presion atmosférica y la otra a una manguera neumática que debe termina en un posible y aca viene el problema: tiene que ser un tubo o cilindro pesado pero también podría ser de PVC.
Explico la idea... imaginen un tubo de diametro mayor y otro bien conectado y rígido de díametro menor.
Si el primer cilindro es suficientemente pesado y logras que quede en el fondo sin que el empuje lo levante, esta resuelto.
SIno, una manera sería ponerle algo que le de rigidez para que permanezca en el sitio.
Supon que ese cilindro tiene 2 o 3" y al menos unos 20 a 30 cmts. Termina en una tapa y si logras que se mantenga ahi, luego sales con la manguera neumática que terminará conectada al sensor diferencial en un puerto restante.
El procedimiento de instalación requiere que ambos puertos del sensor esten inicialmente a presion atmosférica.
o sea... altura 0.
Luego introduces la campana o cilindro en el pozo. Y el sensor comenzará a mostrar presion de columna de agua mientras el aire se comprime en el cilindro inicial. NO deben existir fugas.
El agua subirá hasta alcanzar una altura.
Es un sistema patentado, no lo inventé yo.

Entiendo, Ricardo, que la campana va de pie para que no se llene de agua y que transmite la presión a través de un tubo al sensor, ¿no? Ingenioso.

Supongo que por muy buenas y herméticas conexiones siempre habrá alguna pequeña fuga, microfiltración del aire en el agua, ranas que respiran el aire de la campana :grin: ... o qué se yo; pero en resumen, que todo tiende al caos.

Es mera curiosidad, pero tú que tienes experiencia, ¿A medio o largo plazo, tienes que sacar y volver a meter la campana para vaciar el agua?