Aupa
Hace un tiempo pedi ayuda con una instalacion interactiva donde mediante unos piezo electricos, captabamos la vibración mediante la pisada, y la intensidad de prendido de los leds variaban,
La cosa es que creiamos tenerlo arreglado pero de nuevo nos vuelve el mismo promeblema, no conseguimos estabilizar el valor del voltaje recivido, y el primer problema nace de que no se nos mantienen apagados los leds cuando nadie interactua. Al principio si, pero despues de que alguien alla interactuado, se nos quedan encendidos.
Si alguien puediera revisar el codigo para ver que podria fallar, seria perfecto.
Muchas gracias
saludos
int salida=13;
int contador=0;
int EntradaAnaloga=1;
int Nivel, NivelAnt, Delta, DeltaCambio, Alarma;
void setup()
{
Serial.begin(9600);
pinMode(salida, OUTPUT);
DeltaCambio=100;//a 30 queda encendido mucho tiempo,a 100 es muy sensible
Alarma=950;
}
void loop()
{
Nivel = analogRead(EntradaAnaloga);
Delta = Nivel-NivelAnt;
/*
Serial.print("Nivel ");
Serial.println(Nivel);
Serial.print("Delta ");
Serial.println(Delta);
delay(1000);
*/
//Si no hay vibración por encima del Delta definido, Apagar Led
if (abs(Delta) < DeltaCambio)
{
NivelAnt=Nivel;
digitalWrite(salida, LOW);
//goto leer;
}
else
{
/* Serial.print("Nivel ");
Serial.println(Nivel); */
digitalWrite(salida, HIGH); //Encender Led
//delay(500); if (Nivel mayor-o-igual Alarma) { contador++; Serial.print("Alarma "); Serial.println(contador); Serial.print("Nivel "); Serial.println(Nivel); digitalWrite(salida, HIGH); delay(300); digitalWrite(salida, LOW); delay(300); digitalWrite(salida, HIGH); delay(300); digitalWrite(salida, LOW); delay(300); digitalWrite(salida, HIGH); //Encender Led }
//Serial.println(' a los '+millis()/1000);
}
NivelAnt=Nivel;
}