-
Jose Luis
-
-
Fuera de línea
-
Navegador Platino
-
-
Mensajes: 1144
-
Gracias recibidas: 229
-
-
|
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.
|
-
DEA
-
Autor del tema
-
Fuera de línea
-
Navegador Dorado
-
-
Mensajes: 294
-
Gracias recibidas: 84
-
-
|
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.
|
-
Jose Luis
-
-
Fuera de línea
-
Navegador Platino
-
-
Mensajes: 1144
-
Gracias recibidas: 229
-
-
|
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.
|
-
DEA
-
Autor del tema
-
Fuera de línea
-
Navegador Dorado
-
-
Mensajes: 294
-
Gracias recibidas: 84
-
-
|
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.
|
-
Jose Luis
-
-
Fuera de línea
-
Navegador Platino
-
-
Mensajes: 1144
-
Gracias recibidas: 229
-
-
|
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.
|
-
DEA
-
Autor del tema
-
Fuera de línea
-
Navegador Dorado
-
-
Mensajes: 294
-
Gracias recibidas: 84
-
-
|
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