Bienvenido, Invitado
Nombre de Usuario: Contraseña: Recordarme

TEMA:

Nivel de Agua con Arduino y MPX5010 Ayuda 5 años 4 días antes #239

Una pregunta, la sirena no suena hasta que los dos bidones pasen del 5% o bien si el tanque 1 sube del 5 % y luego baja ya sonaria ? ( el tanque 2 igual).

Por favor, Identificarse o Crear cuenta para unirse a la conversación.

Nivel de Agua con Arduino y MPX5010 Ayuda 5 años 4 días antes #240

Serian dos tanques independientes, si uno u otro baja del 5% debe sonar.

Por favor, Identificarse o Crear cuenta para unirse a la conversación.

Nivel de Agua con Arduino y MPX5010 Ayuda 5 años 3 días antes #241

Te he cambiado la entrada de los sensores por A0 y A1. He cambiando el map para que me diera entre 0 y 1023 enttre 0 y 100% para poder simularlo yo mas facil.
Creo que peude funcionar, solo hay un detalle. Si estan los dos por encima del 5% y una baja, suena la sirene 3 segundos. Si baja el segundo antes de que suba el primero, no sonara.
Si los dos vuelven a estar ok y baja cualquiera volvera a sonar.
No se como lo querias en ese punto, pero creo que asi funciona, si quieres hacerle alguna modificacion ya tienes l codigo base funcionando.
No lo probe muy detinidamente, pero creo que puede valer si a de funcionar como te dije.
// variables para los pines de los depositos

int sensor = A0;
int valorsensor;
int porcentaje;
int sensor2 = A1;
int valorsensor2;
int porcentaje2;
long tiempo =0;
int buzzer = 10;       // variable para el buzzer
int tiempoSirenaOn = 3000;
boolean flagTanque1 = false;  // varaibles para gestionar la alarma de vaciado
boolean flagTanque2 = false;

void setup() {
  Serial.begin(9600);
  pinMode(sensor, INPUT);
  pinMode(sensor2, INPUT);
  pinMode(buzzer, OUTPUT);
digitalWrite(buzzer,LOW);
}

void loop() {

  // Caluclo para los niveles de deposito de agua y envio a la pantalla

  valorsensor = analogRead(sensor) - 36; // Restamos 36 por que es lo que el sonsor mide en vacio y conseguimos que mida 0.
  porcentaje = map (valorsensor, 0, 1023, 0, 100); // Mapeamos para pasar las medidas a porcentaje de 0 a 100%
 
  // El valor 36 variara dependiendo del deposito de agua, habra que calcularlo.

  valorsensor2 = analogRead(sensor2) - 36;
  porcentaje2 = map (valorsensor2, 0, 1023, 0, 100);
  Serial.println(porcentaje2);
  if (porcentaje < 6 ) {
   if (flagTanque1) activarSirena();
    }else {
     flagTanque1 = true;    
        
    }
    
 if (porcentaje2 < 6 ) {
   if (flagTanque2) activarSirena(); 
 }else{ flagTanque2 = true;    
    }  
    
if ( (porcentaje >5 ) &&  (porcentaje2 > 5 )) tiempo=millis();
}   
void activarSirena(){
  if (((flagTanque1)&&(porcentaje < 6))||((flagTanque2)&&(porcentaje2 < 6 ))) {
    if ((millis() - tiempo) <tiempoSirenaOn) {
      digitalWrite(buzzer,HIGH);
    }else {
      digitalWrite(buzzer,LOW);
    }
  }
}

void imprimeNextion(){
   Serial.print("n0.val=");
  Serial.print(porcentaje);
  Serial.write(0xff);
  Serial.write(0xff);
  Serial.write(0xff);

  Serial.print("n1.val=");
  Serial.print(porcentaje2);
  Serial.write(0xff);
  Serial.write(0xff);
  Serial.write(0xff);
}

Por favor, Identificarse o Crear cuenta para unirse a la conversación.

Nivel de Agua con Arduino y MPX5010 Ayuda 5 años 2 días antes #242

Lo acabo de probar y si funciona perfectamente, salvo
Cito:
"Si estan los dos por encima del 5% y una baja, suena la sirene 3 segundos. Si baja el segundo antes de que suba el primero, no sonara."

Esto si es un pequeño inconveniente. por que imagínate que un deposito se vacía y estas en un sitio donde no lo puedes llenar, pero del otro deposito aun te queda mas del 80% cuando este segundo baje por debajo del 6% no sonara y no sabre el agua que me queda a menos que lo valla mirando.

Me puedes explicar esta parte:

if ( (porcentaje >5 ) && (porcentaje2 > 5 )) tiempo=millis();
}
void activarSirena(){
if (((flagTanque1)&&(porcentaje < 6))||((flagTanque2)&&(porcentaje2 < 6 ))) {
if ((millis() - tiempo) <tiempoSirenaOn) {
digitalWrite(buzzer,HIGH);
}else {
digitalWrite(buzzer,LOW);
}
}

Jose Luis te agradezco muchísimo tu ayuda, la verdad que has echo casi todo el trabajo, no se como agradecerlo.

Por favor, Identificarse o Crear cuenta para unirse a la conversación.

Nivel de Agua con Arduino y MPX5010 Ayuda 5 años 2 días antes #243

Bueno pues ahora viendo como va el tema, inenta modificarlo tu, sino, mas adelante le echo un ojo de nuevo.

Por favor, Identificarse o Crear cuenta para unirse a la conversación.

Nivel de Agua con Arduino y MPX5010 Ayuda 5 años 2 días antes #244

Si por favor déjame que lo intente haber si soy capaz

Graciassssssssssssss

Por favor, Identificarse o Crear cuenta para unirse a la conversación.

Tiempo de carga de la página: 0.100 segundos
Gracias a Foro Kunena