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

TEMA:

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

Pues lo apunto como opciones. Asi mas claro viendo tu opinion. Lo de Singlent es que trae todo desbloqueado, Rigol muchas opciones que vienen en el osciloscopio bloqueadas, que hay pagarlas aparte.
Si veo que no me voy a mover de mi zona, lo comprare, a ver si se aclara algo mi futuro.
Oye tu usas Skype, yo hace tiempo que no lo uso, pero un dia si quieres charlamos 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 #174

Pues hace también tiempo que no lo uso, pero lo instalo y charlamos el dia que quieras.

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 #175

Cuando lo tengas instalado, me pasas por un mensaje privado tu direccion y te añado.

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 #179

Buenas Jose Luis como te mando un privado, no encuentro como hacerlo.

Bueno he echo pruebas con el sensor y el código, en vez de colocar el sensor puse un potenciometro para hacer las primeras pruebas
en la mesa.
Pero tengo un pequeño problema en estas linea:
if (porcentaje > 5 )
{
flagTanque1 = true;
noTone(buzzer);
}
else
{
if ( flagTanque1)
{
tone(buzzer, 300);
delay(300);
noTone(buzzer);
}
}
Funciona como habíamos dicho si esta por debajo del 5% y se inicia el sistema no suena, en cuanto se lleva y se va vaciando y vuelve a llegar al
5% suena el pitido, y aquí es donde esta el problema, no para de pitar hasta que llenemos el deposito y supera el 5%, como hago para que pite solo unos segundo y
no vuelva a pitar hasta que no se llene y vuelva al 5% otra vez.

Otra cosa que me gustaría solucionar en que cuando imprime en la Nextion si el porcentaje se queda en entre dos numero, por ejemplo entre el 14 y 15%, se queda
todo el tiempo cambiando de 14 a 15 y viceversa. Haber que se me ocurre para que el numero no fluctué.

Os Dejo el código como va de momento y la Nextion
Adjuntos:

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 #180

Para lo de que solo suene un tiempo la alarma yo veo dos formas de hacerlo :

1.- Para esta primera, que seria la que mejor usaria los metodos de programacion, has de modificar la tarde de codigo donde tienes el tone() con el delay(300), por millis(). Yo cmabiaria esa parte y añadiria un flag mas. El flag que se desactive cuando sono la primera vez y sonaria los segundos que tnegas configurado, que asu vez los estarias controlando con millis(). Una vez que sube del 5% volverias a activar el flag para la siguiente vez que para que si baja vuelva a sonar. Vamos algo parecido a lo que ya hemos hecho con el flagTanque, pero añadiendoles millis() para que suene los segundos que desees.

2.- y mas chapucera, hacer un bucle for donde tenes en tone() .. delay ... notone. Como sabes que ese ciclo dura 300milisegundos., si el for lo repites 10 veces duraria 3 segundos la sirena. Añadiendo tambien un flag para que no sonara mas de ese tiempo hasta el siguiente ciclo.


La parte de que no oscile entre dos numeros es mas complicado, hay que pensar algo mas. Yo como supongo que los tanques los llenas tu, no puede subir el nivel del tanque nunca, salvo que quede entre dos numeros.Pues bien, en este caso me quedaria con el numero mas bajo si paso de 15 a 14 y luego vuelve a 15, me quedaria con 14. Solo actualizaria el numero a uno superios si la diferencia es mayo de un % grande (para que sepa el sistema cuando los llenaste). Es una idea, pero como no se como haces quiza no sirva.

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

Última Edición: por Jose Luis.

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

Vale, lo de los millis lo he echo asin, creo que esta bien, lo que no veo como hacer es lo del otro flag, ya que sin el, lo que acabo de hacer no funciona, creo que me estoy
saturando un poco.

int tbuzzer = 2000; // tiempo que estara sonando el zumbador
byte temp = 0; // estado del temporizador
unsigned long tiempoAnterior = 0; // guarda tiempo de referencia para comparar

if (porcentaje > 5 )
{
flagTanque1 = true;
noTone(buzzer);
}
else
{
if ( flagTanque1)
{
tiempoAnterior = millis(); //guarda el tiempo actual como referencia
temp = 1; // indica que esta activo el temporizador
tone(buzzer, 300); // activa el zumbador
}

if ((millis() - tiempoAnterior >= tbuzzer) && temp == 1)
{
noTone(buzzer); // Apaga el zumbador
temp = 0; // y desactiva el temporizador
}
}

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

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