Traspasar liquido de un deposito a otro con control de caudal

Hola a todos,
Soy novato en los temas de Arduino, y lo cierto es que no se por donde empezar..
Bueno, resulta que quiero controlar una bomba de agua, para traspasar el liquido de un deposito a otro,
con la salvedad de que al detectar que ya no hay flujo la bomba se pare, todo esto siempre manteniendo el pulsador de llenado.
El problema surge al principio, cuando no hay agua en el circuito, como el sensor de flujo está enviando señal de vacio, nunca dejaría activar la bomba, para solucionar esto se me ocurre
agregar un timer al inicio para que active el relé de la bomba y de esta forma empezar el ciclo..
La verdad es que no se por donde empezar, respecto al harware he pensado utilizar un arduino Uno
una placa de relé optoacoplado y el caudalimetro tengo uno con un relé reed que funciona correctamente.
Pero en cuanto al codigo... no se como empezar..
Quedaría agradecido, si alguna alma caritativa diese luz a mi idea.
Muchas gracias

Buenas, y muchas gracias por contestar (ArduMyth),

Verás en realidad no se trata de un caudalimetro, si nó de un detector de flujo de agua, en realidad
no cuenta nada, simplemente detecta que no pasa liquido y cierra un contacto.

La idea inicial sería, que al inicio activamos un interruptor e inmediatamente activasemos
la bomba con un retardo para dar tiempo a cebar el circuito y de esta manera activar el sensor de flujo,
seguiríamos llenado el deposito de destino, pero si el deposito de vaciado se queda sin liquido, entonces
el sensor lo detectaría y pararía la bomba.

Evidentemente si reiniciasemos la secuencia volvería a activar la bomba durante el tiempo inicial, pero enseguida detectaría que no hay flujo y pararía.

En fin espero que quede claro..
La verdad es que estoy muy verde y no se como enfocarlo....
A ver si alguien me dá una idea.
Gracias de nuevo.

Un sensor de flujo no sirve para mantener caudal constante. Es mas que básico!!
Se trata de un problema de control muy típico del comienzo de las materias de control clásico.
Para llevarlo adelante se requiere un caudalímetro.

Tu título dice "Traspasar liquido de un deposito a otro con control de caudal" o sea hablas de caudal.
Con un sensor de flujo no podras hacerlo ya que es un sensor que tiene una resistencia sobrecalentada adrede para que cambia de temperatura con la circulación de agua vs otra sin calentar que actúa como referencia, la diferencia de tempertura le dice si circula o no. Suelen ser resistencia PT100.
Es una forma simple y barata de saber si hay o no flujo. Nada mas. Un sensor digital. Hay o no hay.

Con eso es imposible lograr un control de caudal.

Necesitas un buen caudalímetro o un buen sensor de nivel.

Hola ArduMyth,

La idea no es de controlar el caudal, si no el descebado de la linea, para ello tengo un sensor
de estos Sensor de Flujo Eicos FE18B02 - Detector de Flujo 1/8"G para Agua.

En cuanto al hardware, lo tengo claro usar ur Arduino Uno, con la shield de relé optoacoplado,
para el control de la Bomba.
Un interruptor de control, y el sensor de cebado que te adjunto el Link.
En cuanto a tu propuesta:

¿Pasa agua? Bomba encendida. ¿No pasa? Bomba apagada.

No lo veo claro, piensa que al iniciar la secuencia, las tuberias estarian descebadas,
con lo que no pasaria agua, por eso decía yo de arrancar sin tener en cuenta el estado
de las tuberias, iniciando un delay de un tiempo razonable para que llegue liquido
al sensor y detecte el paso, a partir de aquí, ya estaríamos sensando el detector,
para parar la bomba en caso de que no pase liquido por haberse vaciado el deposito principal.

Hola surbyte,

Disculpa al no haber deallado correctamente el subject de mi post..
Despues de la explicación creo que queda mas o menos clara mi idea.
Se que no es complicada para los que sabeis programar, pero yo no tengo mucha idea,
de como plantearlo.
Muchas gracias por vuestro interes..
Que tengais un feliz domingo.

Moderador: Enlace editado

Ok,
Entiendo.
Gracias

Bueno el sensor me dejó sorprendido.
Mide aumento o disminución de flujo... de modo digital asi que supongamos que dentro de los parámetros del sensor podrias usarlo... es como un SI/NO que tienes que aprovechar para mantenerlo siempre entre ambos niveles.

Veo que es posible pero solo para el caudal del sensor.

Has pensado en la posibilidad de actuar en el deposito de donde proviene el agua?podrias usar algun tipo de boya ,sensor ultrasonico,etc.si hay agua la bomba funciona ,si no o baja de un determinado nivel se para la bomba.

Buenas:

Lo más fácil y rápudo es esto.

Fuente:

Saludos.

Buenos dias,
Me parece muy buena idea la de colocar los sensores de nivel, en el deposito principal,
pero la idea principal es de poder usar el sistema en cualquier entorno, sin modificar nada.
Yo estaba pensando en en siguiente diagrama de flujo:

INICIO > Miramos si está activo el switch de llenado

NO > Seguimos Mirando....
SI > Activamos la bomba con un delay para cebar el circuito ( 1min.+/-)
Miramos si el detector de caudal ha detectado liquido en la linea.
NO > volvemos a activar bomba durante otro delay de (1 min.)
SI > comprobamos detector de caudal, entramos en un bucle
If endif hasta que veamos que ya no hay caudal, en cuyo caso
apagamos bomba para evitar que trabaje en vacio.

No sé si os queda clara mi idea....

Gracias

Sinceramente a veces creo que uno pierde el tiempo gratuitamente!! Es lo mismo que dice ArduMyth con el tema de delay().
Si quieres mantener un caudal constante necesitas un sensor que te de en tiempo real valores de caudal o de altura. Sin ello no puedes arma un PID que corrija la situación de control del flujo de agua para lo que se requiere una valvula de control proporcional.
Todo lo demas es una tontería, y comprende que no me enojo con nadie sino con el ida y vuelta de una situación que tal vez este malinterpretando.

Qué tiene que ver el control de caudal con lo que propone Metanconta que por cierto lo ha aportado con la mejor buena voluntad.

Dime cómo sensores de nivel a diferentes alturas te puede permitir mantener caudal contante?
Si, claro, podrias en el intervalo entre cada detector de nivel hacer correcciones pero eso dista de lograr un control efectivo.

EDITADO por haber léido algunos errores de redacción y porqué se borró un comentario sobre la alternativa propuesta por Metaconta.

ArduMyth. Gracias por la Karmada.

El autor del post, que coja el Paint de Windows, dibuje un boceto de forma clara de sus ideas para coger el mismo concepto y sacar nuestras propias conclusiones.

Saludos.

Buen dia a todos!
Creo que no se ha entendido lo que el autor del post quiere y se armo una tremenda confusión.
A mi entender el solo quiere saber si hay agua fluyendo en el tubo de la bomba (no quiere medir caudal, ni niveles de agua ni nada por el estilo) solo: ¿hay o no hay flujo de agua en la tubería?, y en caso de no tener un fujo apagar la bomba para evitar su daño.
El sensor que indica en el link se calibra a un flujo determinado, dando un 1 en caso de tener igual o mas flujo al calibrado y un 0 en caso de tener menos.
Así que con riesgo a equivocarme esto es lo que necesitas ea3abn

//AQUI USE LOS PINES 3, 4 Y 5 PUEDES USAR LOS QUE QUIERAS
int boton=3;                     //pulsador de encendido
int relay=4;                    //Relay de bomba
int sensor=5;                   //sensor de flujo

bool estado_boton=false;                //Variables de estado
bool estado_ant_boton=false;
bool estado_sensor=false;
bool encendido=false;
int espera=60000;                         //tiempo que quieras que dure encendida la bomba cuando queda sin caudal de agua 
bool activa=false;                       //la uso para capturar el tiempo en que cambio de estado el sensor para usarlo en el millis
unsigned long temporizador=0;


void setup()
{
  pinMode(boton, INPUT);                     //BLA BLA BLA
  pinMode(relay,OUTPUT);                      //BLA BLA BLA
  pinMode(sensor, INPUT);
  digitalWrite(relay, LOW);

}

void loop()
{   
  estado_boton=digitalRead(boton);
  estado_sensor=digitalRead(sensor);

    if (!encendido)                      //Si la variable encendido esta en 0 la bomab permanece apagada
     digitalWrite(relay,LOW);
     
    if (estado_boton && !estado_ant_boton){    //se presionó el boton de encendido de la bomba
        
        encendido = !encendido;             //cambio de estado la variable encendido               
         activa=true;
           }
      estado_ant_boton=estado_boton;

    
   if (encendido && !estado_sensor){             //Si enciende la bomba, y  no hay señal de flujo del sensor
    digitalWrite (relay,HIGH);
          if (activa){
            temporizador=millis();               //capturo el tiempo solo una vez
             activa=false;}
            
        if (millis() - temporizador >= espera){    //compara millis con el tiempo capturado  y transcurrido el tiempo definido en la variable espera apaga la bomba
                 encendido=false;
                 activa=true;           
          }
   }
       
    if(estado_sensor && encendido){               //si se recibe señal del sensor antes del tiempo de espera la bomba continua encendida
       digitalWrite(relay,HIGH); 
       activa=true;                                //cambia la variable para en caso de quedar sin flujo vuelva a comenzar el temporizaor
    }

    
  
      
  
}

Explico un poco de lo que se trata:
El sistema tiene un pulsador de encendido al presionarlo enciende la bomba y valida la señal del sensor de flujo, si no hay flujo (porque la linea esta descebada) espera un minuto y si aun no hay flujo apaga la bomba; si dentro de ese minuto hay flujo la bomba sigue encendida hasta que se presione el pulsador o en caso que deje de fluir agua apaga la bomba después de un minuto
Bueno espero que sea lo que necesitas ea3abn

reo que no se ha entendido lo que el autor del post quiere y se armo una tremenda confusión.
A mi entender el solo quiere saber si hay agua fluyendo en el tubo de la bomba (no quiere medir caudal, ni niveles de agua ni nada por el estilo) solo: ¿hay o no hay flujo de agua en la tubería?, y en caso de no tener un fujo apagar la bomba para evitar su daño.

El titulo dice: Traspasar liquido de un deposito a otro con control de caudal

Que otra interpretación le puedes dar?

Si, te entiendo, pero tambien debes entender que en el foro estamos gente de distintos paises y algunas palabras se pueden malinterpretar,y por lo menos aqui en Mexico una palabra puede significar varias cosas, hay quienes usan la palabra "control" como "monitorear", o tambien en este caso del caudal, la usan para determinar el cuanto quieres dejar pasar.
El talves quiso decir "verificando la presencia de caudal".
Haciendo un lado el titulo erroneo, en los post el explica lo que quiere

¿Pasa agua? Bomba encendida. ¿No pasa? Bomba apagada.

NO > Seguimos Mirando....
SI > Activamos la bomba con un delay para cebar el circuito ( 1min.+/-)
Miramos si el detector de caudal ha detectado liquido en la linea.
NO > volvemos a activar bomba durante otro delay de (1 min.)
SI > comprobamos detector de caudal, entramos en un bucle
If endif hasta que veamos que ya no hay caudal, en cuyo caso
apagamos bomba para evitar que trabaje en vacio.

y eso es lo que yo entendí, esperemos que nos dice el autor

Bueno, que suerte que yo no hablo argentino e intento escribir con un español neutral.

De todas formas si van 4 o 5 post donde le reclamamos la parte de CONTROL el sentido común dicta que hagas una aclaración.

Respecto de ese comentario que citas luce como que tienes razón.

Pero ya me preocupa mucho esto porque ya ocurrió en otro post que alguien dice que quería enclavar un relay y luego comenta que le da otro significado a enclavar diferente al que todos conocemos, que para el enclavar es energizar y ahora resulta que control quiere decir monitorear, la verdad que #18 posts y estamos dando vuelta alrededor del sentido de lo que se pretende hacer.

Las normas dicen que debemos ser cuidadosos con los modismos, regionalismos.
Es dificil entender las explicaciones y si ahora debemos prestar especial atencion a que se quiere decir... tecnicamente hablando, dificulta las cosas, dar respuestas.

Por si acaso cito la norma

Hay mucha diversidad en la comunidad de habla hispana que participa en este foro. Personas de América como de Europa que hablan español con diferentes regionalismos, palabras o frases típicas de cada región.
Por supuesto que hay muchas ventajas de ser una comunidad con mucha diversidad pero el principal problema y sobre todo en este medio escrito es el mismo idioma que varía un poco en cada región, por tal motivo trata de ser claro y utilizar un lenguaje general para que todos puedan entender.
Recuerda que es un foro y no una red social.

Gracias a tu observación @RIG reconozco que ese es el sentido del control que quiere darle.