/*
Piezo
Enciende LEDs conectados a los pines digitales 13-12-11 y motores en los pines 10-9-8
según la señal del mic conectado a el pin analogico 5
La sensibilidad es controlada por un Pote
*/
//Guerda el umbral de sensibilidad que disparará la acción
int Umbral[100];
long Umbralx;
int Umbrali;
int xx;
int tomas;
void setup()
{
tomas=40;
pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
pinMode(11, OUTPUT);
pinMode(10, OUTPUT);
pinMode(9, OUTPUT);
pinMode(8, OUTPUT);
analogReference(EXTERNAL);
Serial.begin(9600);
}
void loop()
{
xx=xx+1;
if (xx>tomas)
{
xx=1;
Umbralx;
for (int yy=1;yy<tomas+1;yy++)
{
Umbralx=Umbralx+Umbral[yy];
}
Umbralx=Umbralx/tomas;
}
Umbrali=analogRead(5);//Lee el valor del mic
// estabilizacion **************
//if (Umbrali<500)
//{
// Umbrali=Umbral[xx];
//}
//******************************
Umbral[xx]=Umbrali;
Serial.print(Umbralx,DEC);
Serial.println(0);
if (Umbralx<1000)
{
if (Umbralx > 880)
{
digitalWrite(13,HIGH);
digitalWrite(12,LOW);
digitalWrite(11,LOW);
digitalWrite(10,HIGH);
digitalWrite(9,LOW);
digitalWrite(8,LOW);
}
else
{
if (Umbralx >800)
{
digitalWrite(13,HIGH);
digitalWrite(12,HIGH);
digitalWrite(11,LOW);
digitalWrite(10,HIGH);
digitalWrite(9,HIGH);
digitalWrite(8,LOW);
}
else
{
digitalWrite(13,HIGH);
digitalWrite(12,HIGH);
digitalWrite(11,HIGH);
digitalWrite(10,HIGH);
digitalWrite(9,HIGH);
digitalWrite(8,HIGH);
}
}
}
else
{
digitalWrite(13,LOW);
digitalWrite(12,LOW);
digitalWrite(11,LOW);
digitalWrite(10,LOW);
digitalWrite(9,LOW);
digitalWrite(8,LOW);
}
}
No hay comentarios:
Publicar un comentario