Hola buenas tardes.
Estoy preparando un secuenciador luminoso para un playbak de la escuela.
El arduino tiene que reproducir exactamente la secuencia de las 9 letras “BURLESQUE” durante
todo el vídeo.
No logro hacer que se inicie al apretar el pulsador. Sí, hace la secuencia si alimento al mismo
tiempo que tengo apretado el pulsador.
Al alimentarlo no tiene que hacer nada y estar a la espera de que se le pulse para iniciar secuencia. Una pista por favor.
Gracias.
El vídeo es este: Christina Aguilera-Show Me How You Burlesque HD - YouTube
//Encender 9leds diferentes tiempos
unsigned long tiempo;
int leds[9]= {2,3,4,5,6,7,8,9,10};
int pin_boton= A0; // Pin para el boton
boolean activa = false; //Variable de control de encendido
void setup(){
for(int i =0; i<9;i++){ //Configura salida de leds en pines 2, 3,4,5, 6,7,8,9,10 como salida
pinMode(leds[i],OUTPUT);
}
pinMode(pin_boton,INPUT);
tiempo= millis();
digitalWrite(pin_boton,HIGH);
}
void loop(){
if (digitalRead(pin_boton) == LOW){ //Revisa que has presioando el boton
delay(50);
if (digitalRead(pin_boton) == LOW) { // Espera 50 milisegundos para evitar antirrebotes.
while(pin_boton == LOW){} //Espera que sueltes el boton
if(activa==true){activa = false;} //Si esta activo se apaga
if(activa==false){activa = true;} // Sie sta apagado se activa
}
}
if(activa == true){ //Si esta activo llama a la fucion encender_leds();
encender_leds();
}
}
//////////////////////////////////////////////// encendido de todos los led
void encender_leds(){
if(millis()-tiempo>1 && millis()-tiempo <780){ //26,13
for(int i=0; i<=10;i++)
digitalWrite(i,HIGH);
}else
if (millis()-tiempo > 780){
for(int i=0; i<=10;i++)
digitalWrite(i,LOW); //26,91 780milis
}
//letra E
if(millis()-tiempo>1781 && millis()-tiempo < 2051){ //27,92
digitalWrite(leds[4],HIGH);
}else
if (millis()-tiempo > 2051 ){
digitalWrite(leds[4],LOW); //28,19 270milis
}
//letra S
if(millis()-tiempo> 2051&& millis()-tiempo < 2311){ //28,45
digitalWrite(leds[5],HIGH);
}else
if (millis()-tiempo > 2311 ){
digitalWrite(leds[5],LOW); //28,64 260milis
}
//todas
if(millis()-tiempo>2921 && millis()-tiempo <3081){ //29,23 a 29,45
for(int i=0; i<=10;i++)
digitalWrite(i,HIGH);
}else
if (millis()-tiempo > 3081){
for(int i=0; i<=10;i++)
digitalWrite(i,LOW);
//29,45 160milis
}
//todas parpadeo 2 veces
if(millis()-tiempo>3151 && millis()-tiempo <3581){ //29,52 a 29,95
for(int i=0; i<=10;i++)
digitalWrite(i,HIGH);
}else
if (millis()-tiempo > 3581){
for(int i=0; i<=10;i++)
digitalWrite(i,LOW); //29,95 730milis
}
if(millis()-tiempo>3586 && millis()-tiempo <4088){ //30,00 a 30,52
for(int i=0; i<=10;i++)
digitalWrite(i,HIGH);
}else
if (millis()-tiempo > 4088){
for(int i=0; i<=10;i++)
digitalWrite(i,LOW); //30,52 502milis
}
//Letra R
if(millis()-tiempo>4368 && millis()-tiempo <4688 ){ //30,80 a 31,12 .320
digitalWrite(leds[2],HIGH);
}else
if (millis()-tiempo >4688 ){
digitalWrite(leds[2],LOW); //31,12 320milis
}
//Letra U
if(millis()-tiempo>4658 && millis()-tiempo < 5058){ //31,09
digitalWrite(leds[7],HIGH);
}else
if (millis()-tiempo > 5058 ){
digitalWrite(leds[7],LOW); //400mils
}
//letra todas
if(millis()-tiempo>4898 && millis()-tiempo <5058){ //31,33
for(int i=0; i<=10;i++)
digitalWrite(i,HIGH);
}else
if (millis()-tiempo > 5058){
for(int i=0; i<=10;i++)
digitalWrite(i,LOW); //31,49 160milis
}
//Letra Q
if(millis()-tiempo>5078 && millis()-tiempo <5168){ //31,51
digitalWrite(leds[6],HIGH);
}else
if (millis()-tiempo > 5168){
digitalWrite(leds[6],LOW); //31,60 90milis
}
//Letra U
if(millis()-tiempo>5118 && millis()-tiempo <5378 ){ //31,55
digitalWrite(leds[7],HIGH);
}else
if (millis()-tiempo > 5378){
digitalWrite(leds[7],LOW); //31,81 260milis
}
//letra S
if(millis()-tiempo>5298&& millis()-tiempo < 5488){ //31,73
digitalWrite(leds[5],HIGH);
}else
if (millis()-tiempo > 5488 ){
digitalWrite(leds[5],LOW); //31,92
}
//letra E+todas
if(millis()-tiempo>5458 && millis()-tiempo < 6248){ //31,89 a 32,68
digitalWrite(leds[8],HIGH);}
if(millis()-tiempo>5868 && millis()-tiempo <6248){ // 32,30
for(int i=0; i<=10;i++)
digitalWrite(i,HIGH);
}else
if (millis()-tiempo > 6248){
for(int i=0; i<=10;i++)
digitalWrite(i,LOW); //32,68
} //Letra R
if(millis()-tiempo>6248 && millis()-tiempo <6358 ){
digitalWrite(leds[2],HIGH);
}else
if (millis()-tiempo >6358){
digitalWrite(leds[2],LOW); //32,78
}
//Letra U
if(millis()-tiempo>6358 && millis()-tiempo <6488 ){
digitalWrite(leds[7],HIGH);
}else
if (millis()-tiempo > 6488 ){
digitalWrite(leds[7],LOW); //32,91.............
}
//letra E
if(millis()-tiempo>6538 && millis()-tiempo < 6728){ //32,86//36,00
digitalWrite(leds[8],HIGH);
}else
if (millis()-tiempo > 6728 ){
digitalWrite(leds[8],LOW); //33,05 //36,19
}
//Letra Q
if(millis()-tiempo>6678 && millis()-tiempo < 6918){ //33,00//36,88
digitalWrite(leds[6],HIGH);
}else
if (millis()-tiempo > 6918){ //33.24 //37,12
digitalWrite(leds[6],LOW);
}
//Letra U
if(millis()-tiempo>6838 && millis()-tiempo <7078 ){ //33,16//37,04
digitalWrite(leds[7],HIGH);
}else
if (millis()-tiempo > 7078){
digitalWrite(leds[7],LOW); //33,40//37,28
// 39,75//37,45
tiempo= millis();
}
}
secuencia_con_la_funcion_mille.ino (29.2 KB)