hola
Tengo un mega y utilice todos los pines,el squech que muestro funciona ,lo que hace es al detectar un sonido uno de los led patron (led,A,B,C,D,E) se apaga y enciende 2 led con un delay ,esto lo repite 3 veces,no es aleatorio ya que yo los elijo, y vario el orden led(C,E,A),(B,A,C) (D,E,A).
Lo que no resuelvo es : caja1, caja2, caja3, ect son el contador para que no se repita, al sacarlo el squech funciona pero a su antojo repitiendo a veces y cambiando el orden, hasta aca podría servirme, lo que quiero es una vez que el ciclo de 3 veses se realice, se enciendan de nuevo todos los led,A,B,C,D,E.
Le suprimo el contador, pero no logro, que repita. Tengo 50 efec diferentes, pero no logro por ejemplo al final de este mismo enceder los 5 leds para repetir otra frecuencia y otra, y otra y asi.
int pin[]={0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68};
//int caja1=1;
//int caja2=1;
//int caja3=1;
//int caja4=1;
//int caja5=1;
int mic=1;
int i;
int son=0;
int n=0;
int cont=0;
void setup(){
for(i=0;i<=68;i++){
pinMode(pin[i],OUTPUT);
digitalWrite(pin[i],HIGH);
}
digitalWrite(12,LOW);// led a
digitalWrite(16,LOW);// led b
digitalWrite(29,LOW);// led c
digitalWrite(42,LOW);// led d
digitalWrite(68,LOW);// led e
pinMode(mic,INPUT);
}
void efec_4(){ //we repeat the same code with the second led pattern
if(caja4<=1){
for(n=0;n<=11;n++){
son=digitalRead(mic);
if(son==HIGH){
while(digitalRead(mic)==HIGH &digitalRead(42),LOW);
digitalWrite(42,HIGH); //apago la caja
caja4=caja4+1;//apago la caja
digitalWrite(46,LOW);
delay(700);
digitalWrite(46,HIGH);
digitalWrite(36,LOW);
delay(500);
digitalWrite(36,HIGH);
}
else
digitalWrite(46,HIGH);
digitalWrite(36,HIGH);
return;
}
}
}
void efec_1(){
if(caja1<=1){
for(n=0;n<=11;n++){
son=digitalRead(mic);
if(son==HIGH){
while(digitalRead(mic)==HIGH &digitalRead(12),LOW);
digitalWrite(12,HIGH); //apago la caja
caja1= caja1+1;//apago la caja
digitalWrite(5,LOW);
delay(650);
digitalWrite(5,HIGH);
digitalWrite(6,LOW);
delay(650);
digitalWrite(6,HIGH);
}
else
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
return;
}
}
}
void efec_5(){
if(caja5<=1){
for(n=0;n<=12;n++){
son=digitalRead(mic);
if(son==HIGH){
while(digitalRead(mic)==HIGH &digitalRead(68),LOW);
digitalWrite(68,HIGH); //apago la caja
caja5=caja5+1;//apago la caja
digitalWrite(62,LOW);
delay(550);
digitalWrite(62,HIGH);
digitalWrite(59,LOW);
delay(550);
digitalWrite(59,HIGH);
}
else
digitalWrite(59,HIGH);
digitalWrite(62,HIGH);
return;
}
}
}
void loop(){
efec_4();
efec_1();
efec_5();
}