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

TEMA:

Nivel de Agua con Arduino y MPX5010 Ayuda 3 años 9 meses antes #224

Como lo harias tu Jose Luis y lo pruebo en un rato

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

Nivel de Agua con Arduino y MPX5010 Ayuda 3 años 9 meses antes #225

Yo es que ya plantearia el codigo de otra forma. No acabo de entender tu codigo por eso no puedo decirte que cambiar. Pero tengo claro que el problema esta en los flags y que cuando uno intenta activar la sirena, en la siguiente vuelta del loop el otro te lo esta desactivando.
El codigo esta pensado para un solo tanque, yo no sabia que ibas a usar dos, por eso te di solucicones faciles ahora hay que meditar un poco mas las cosas.

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

Nivel de Agua con Arduino y MPX5010 Ayuda 3 años 9 meses antes #226

He encontrado un fallo:
boolean flagcontrolsonido; // variable para el control del buzzer
Solo tengo un flagcontrolsonido, con lo cual es normal que no funcione pues cuando uno lo activa el otro lo desactiva, asi que he creado otro para el segundo deposito, pero sigue fallando.

He cogido otro buzzer y lo he colocado en otra salida solo para el deposito 2 y casi funciona, ya suenas los dos pero cuando el de la entrada A3 suena se vuelve un poco inestable la lectura de los depósitos durante los 3seg que dura.
Asín que si esta claro que el problema esta en los flag.
Hay otra manera de hacer que suene cuando baje del 5% durante 3seg y que no suene cuando se inicie el arduino si esta por debajo del 5%, pero una vez encendido si pasa del 5% y baja suene durante 3seg, que no se con flag?

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

Nivel de Agua con Arduino y MPX5010 Ayuda 3 años 9 meses antes #227

Perdón tenia un cable mal puesto, con otro buzzer a parte y el boolean flagcontrolsonido2 funciona perfecto.
Pero esto es hacer trampa lo suyo es que funciona con un solo altavoz.

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

Nivel de Agua con Arduino y MPX5010 Ayuda 3 años 9 meses antes #228

Ya te lo dije desde el principio, tienes un problema con los flags. Al poner dos zumbadores, los flags son diferentes y por eso el bloque de un tanque no se "mata" con el bloque del otro.

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

Nivel de Agua con Arduino y MPX5010 Ayuda 3 años 9 meses antes #229

Buenos puedo dejarlo con dos altavoces o empezar desde cero, casi que prefiero empezar desde cero, por que a esto código le quiero incluir el control de la calefacción de la caravana, una alarma de GAS, un inclinometro, etc...

El codigo principal es este, el cual no funciona bien porque si baja del 5% suena el pitodo, pero al usar delay el codigo de queda parado y aparte no hace las funcione mencionadas mas arriba:

Lo que si Jose Luis si no te importa orientarme un poco de como hacerlo, y me romperé la cabeza para sacarlo.

// variables para los pines de los depositos
int sensor = A2;
int valorsensor;
int porcentaje;
int sensor2 = A3;
int valorsensor2;
int porcentaje2;

int buzzer = 10; // variable para el pin del altavoz



void setup() {
Serial.begin(9600);

pinMode(sensor, INPUT);
pinMode(sensor2, INPUT);
pinMode(buzzer, OUTPUT);

}

void loop() {

// Caluclo para los niveles de los depositos

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, 180, 0, 100); // Mapeamos para pasar las medidas a porcentaje de 0 a 100% para un futuro reflejarlo en una pantalla.

valorsensor2 = analogRead(sensor2) - 36;
porcentaje2 = map (valorsensor2, 0, 180, 0, 100);

if (porcentaje <= 5)
{
tone(buzzer, 300);
delay(300);
noTone(buzzer);
}

if (porcentaje2 <= 5)
{
tone(buzzer, 300);
delay(300);
noTone(buzzer);
}

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);
}
Adjuntos:

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

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