Paso 6: Shield Arduino/Wave creado y los archivos
Usé esta onda escudo http://www.ladyada.net/make/waveshield/ viene como un kit de simplemente sigue las instrucciones en el enlace.El protector de la onda utiliza pernos 1, 2, 3, 4, 5, 10
Nuestro proyecto utiliza pines 6, 7, 8, 9, A0, A1, A2, A3, A4, A5
Pines 6, 7, 8, 9, A0, A1, A2, A3 se utilizará para las calabazas las luces que destellan, pin A4 se utilizará para controlar el parpadeo bombilla conjunto y pin A5 se usará para controlar un relé que desconecte el audio de fondo y conectar el protector de la onda a un conjunto de altavoces. Esto es para que todo el mundo se centrará en el evento principal de la pantalla de Halloween.
Subir el archivo de audio en una tarjeta sd y cargar el sketch en arduino.
DIBUJO
Creado por Greg Spiridakos 2011 / /
#include < AF_Wave.h >
#include < avr/pgmspace.h >
#include "util.h"
#include "wave.h"
Tarjeta de AF_Wave;
Archivo f;
Wavefile onda; ¡ sólo uno!
#define rojo 9
samplerate uint16_t;
void setup() {}
Serial.Begin(9600); Biblioteca Serial a 9600 bps
Serial.println ("onda prueba!");
pinMode (2, salida); utilizado por escudo de sonido
pinMode (3, salida); utilizado por escudo de sonido
pinMode (4, salida); utilizado por escudo de sonido
pinMode (5, salida); utilizado por escudo de sonido
pinMode (6, salida); la luz LED
pinMode (7, salida); la luz LED
pinMode (8, salida); la luz LED
pinMode (9, salida); la luz LED
pinMode (A0, salida); la luz LED
pinMode (A1, salida); la luz LED
pinMode (A2, salida); la luz LED
pinMode (A3, salida); la luz LED
pinMode (A4, salida); parpadeo bombilla conjunto
pinMode (A5, salida); audio de conmutación relé
pinMode (rojo, salida);
Si (! {card.init_card())}
putstring_nl ("tarjeta init. no se pudo!"); retorno;
}
Si (! {card.open_partition())}
putstring_nl ("ninguna partición!"); retorno;
}
Si (! {card.open_filesys())}
putstring_nl ("no podía abrir filesys"); retorno;
}
Si (! {card.open_rootdir())}
putstring_nl ("no podía abrir dir"); retorno;
}
putstring_nl ("archivos encontrados:");
LS();
}
{} void ls()
nombre del Char [13];
int ret;
Card.reset_dir();
putstring_nl ("archivos encontrados:");
mientras que {} (1)
RET = card.get_next_name_in_dir(name);
Si (! ret) {}
Card.reset_dir();
retorno;
}
Serial.println(Name);
}
}
uint8_t tracknum = 0;
void loop() {}
uint8_t i, r;
nombre c, Char [15];
Card.reset_dir();
desplazarse por los archivos en el directorio
para (i = 0; i < tracknum + 1; i ++) {}
r = card.get_next_name_in_dir(name);
Si (! r) {}
acabaron las pistas! volver a empezar
tracknum = 0;
retorno;
}
}
putstring ("\n\rPlaying"); Serial.Print(Name);
restaurar el directorio por lo que podemos encontrar el archivo
Card.reset_dir();
playcomplete(Name);
tracknum ++;
}
void playcomplete(char *name) {}
potval de uint16_t;
newsamplerate de uint32_t;
playfile(Name);
sampleRate = wave.dwSamplesPerSec;
mientras (wave.isplaying) {}
Usted puede hacer cosas aquí!
Delay(500);
}
Card.close_file(f);
}
void playfile(char *name) {}
f = card.open_file(name);
Si (! f) {}
putstring_nl ("no puede abrir archivo"); retorno;
}
Si (! {wave.create(f))}
putstring_nl ("no un válido WAV"); retorno;
}
OK el tiempo para jugar!
Wave.Play();
{/ / Este grupo anima los leds
digitalWrite(A5,HIGH); Esto encenderá el relé de audio a música de fondo interruptor audio escudo compartir altavoces
Delay(14500); esto retrasará los leds después de haber comenzado el audio en milisegundos
1000 milisegundos = 1 segundo
retraso de 14,5 seg desde
ciclo 1
digitalWrite(6,HIGH); //
digitalWrite(7,HIGH); //
digitalWrite(8,HIGH); //
digitalWrite(9,HIGH); todo en
digitalWrite(A0,HIGH); //
digitalWrite(A1,HIGH); //
digitalWrite(A2,HIGH); //
digitalWrite(A3,HIGH); //
Delay(23000); retrasar la sec 23,0
ciclo 2
digitalWrite(6,LOW); //
digitalWrite(7,LOW); //
digitalWrite(A0,LOW); Apagar todas
digitalWrite(A1,LOW); //
digitalWrite(A2,LOW); //
digitalWrite(A3,LOW); //
Delay(5100); retrasar 5,1 seg.
ciclo 3
digitalWrite(8,LOW); 8 de
Delay(5700); retrasar 5,7 seg
ciclo 4
digitalWrite (9, bajo); 9 off
digitalWrite (7, alto); 7 en
Delay(5000); retardo el retardo total 5 segundos desde el inicio
ciclo 5
digitalWrite(6,HIGH); //
digitalWrite(7,HIGH); //
digitalWrite(8,HIGH); todo en
digitalWrite(9,HIGH); //
digitalWrite(A0,HIGH); //
digitalWrite(A1,HIGH); //
digitalWrite(A2,HIGH); //
digitalWrite(A3,HIGH); //
Delay(6300); retrasar 6,3 seg
ciclo 6
digitalWrite(6,LOW); //
digitalWrite(7,LOW); //
digitalWrite(8,LOW); //
digitalWrite(9,LOW); Apagar todas
digitalWrite(A0,LOW); //
digitalWrite(A1,LOW); //
digitalWrite(A2,LOW); //
digitalWrite(A3,LOW); //
Delay(1100); retardo de 1,1 seg.
ciclo 7
digitalWrite(8,HIGH); 8 en
digitalWrite(9,HIGH); 9 en el
Delay(6000); retardo de 6 segundos
ciclo 8
digitalWrite(8,LOW); 8 de
digitalWrite(9,LOW); 9 off
digitalWrite(A0,HIGH); A0 en
Delay(5000); demora 5 seg
ciclo 9
digitalWrite(A0,LOW); A0 de
digitalWrite(7,HIGH); 7 en
Delay(6000); retardo de 6 segundos
ciclo 10
digitalWrite(6,HIGH); //
digitalWrite(7,HIGH); //
digitalWrite(8,HIGH); //
digitalWrite(9,HIGH); todo en
digitalWrite(A0,HIGH); //
digitalWrite(A1,HIGH); //
digitalWrite(A2,HIGH); //
digitalWrite(A3,HIGH); //
Delay(1000); retardo de 1 seg
ciclo 11
digitalWrite(6,LOW); //
digitalWrite(7,LOW); //
digitalWrite(8,LOW); todos excepto A0 de
digitalWrite(9,LOW); //
digitalWrite(A0,HIGH); //
digitalWrite(A1,LOW); //
digitalWrite(A2,LOW); //
digitalWrite(A3,LOW); //
Delay(100); retraso de sec.1
ciclo 12
digitalWrite(A0,LOW); A0 de
digitalWrite(A1,HIGH); A1 en
Delay(1000); retardo de 1 seg
ciclo 13
digitalWrite(A1,LOW); A1 de
digitalWrite(7,HIGH); 7 en
Delay(1000); retardo de 1 seg
ciclo 14
digitalWrite(A1,HIGH); A1 en
Delay(1000); retardo de 1 seg
ciclo 15
digitalWrite(A1,LOW); A1 de
digitalWrite(8,HIGH); 8 en
digitalWrite(9,HIGH); 9 en el
Delay(8000); retardo de 8 segundos
ciclo 16
digitalWrite(7,HIGH); 7 en
Delay(3000); retardo de 3 segundos
ciclo 17
digitalWrite(6,HIGH); //
digitalWrite(7,LOW); //
digitalWrite(8,HIGH); casi 7 de
digitalWrite(9,HIGH); //
digitalWrite(A0,HIGH); //
digitalWrite(A1,HIGH); //
digitalWrite(A2,HIGH); //
digitalWrite(A3,HIGH); //
Delay(2000); retardo de 2 seg
ciclo 18
digitalWrite(6,LOW); //
digitalWrite(7,LOW); //
digitalWrite(8,LOW); casi 9 de
digitalWrite(9,HIGH); //
digitalWrite(A0,LOW); //
digitalWrite(A1,LOW); //
digitalWrite(A2,LOW); //
digitalWrite(A3,LOW); //
Delay(2000); retardo de 2 seg
ciclo 19
digitalWrite(6,LOW); //
digitalWrite(7,LOW); //
digitalWrite(8,LOW); todos menos A2 apagado
digitalWrite(9,LOW); //
digitalWrite(A0,LOW); //
digitalWrite(A1,LOW); //
digitalWrite(A2,HIGH); //
digitalWrite(A3,LOW); //
Delay(1000); Dealy 1 seg
ciclo 20
digitalWrite(A2,LOW); A2 de
digitalWrite(A3,HIGH); A3 en
Delay(3000); retardo de 3 segundos
ciclo 21
digitalWrite(A3,LOW); A3 de
digitalWrite(A0,HIGH); A0 en
Delay(2500); 2,5 segundos de retardo
ciclo 22
digitalWrite(A0,LOW); A0 de
digitalWrite(A3,HIGH); A3 en
Delay(3000); retardo de 3 segundos
ciclo 23
digitalWrite(A3,LOW); A3 de
digitalWrite(7,HIGH); 7 en
Delay(5500); retrasar 5,5 seg.
ciclo de 24
digitalWrite(6,HIGH); //
digitalWrite(7,HIGH); //
digitalWrite(8,HIGH); todo en
digitalWrite(9,HIGH); //
digitalWrite(A0,HIGH); //
digitalWrite(A1,HIGH); //
digitalWrite(A2,HIGH); //
digitalWrite(A3,HIGH); //
Delay(6000); retardo de 6 segundos
ciclo 25
digitalWrite(8,HIGH); 8 en
Delay(1000); retardo de 1 seg
ciclo de 26
digitalWrite(8,LOW); 8 de
digitalWrite(9,HIGH); 9 en el
Delay(7500); retardo de 7,5 seg.
ciclo 27
digitalWrite(6,HIGH); 6 en
Delay(1000); retardo de 1 seg
ciclo 28
digitalWrite(7,LOW); 7 en
digitalWrite(A1,HIGH); A1 en
Delay(2000); retardo de 2 seg
ciclo 29
digitalWrite(7,HIGH); 7 en
Delay(3500); retraso de 3,5 seg.
ciclo 30
digitalWrite(A1,LOW); A1 de
digitalWrite(7,LOW); 7 off
digitalWrite(A0,HIGH); A0 en
Delay(3000); retardo de 3 segundos
ciclo 31
digitalWrite(A1,HIGH); A1 en
Delay(3000); retardo de 3 segundos
ciclo 32
digitalWrite(A0,LOW); A0 de
Delay(2500); 2,5 segundos de retardo
ciclo 33
digitalWrite(8,HIGH); 8 en
digitalWrite(9,HIGH); 9 en el
Delay(3500); retraso de 3,5 seg.
ciclo de 34
digitalWrite(7,HIGH); 7 en
Delay(1000); retardo de 1 seg
ciclo 35
digitalWrite(A0,HIGH); A0 en
digitalWrite(A1,HIGH); A1 en
digitalWrite(A2,HIGH); A2 en
digitalWrite(A3,HIGH); A3 en
Delay(17500); retrasar 17,5 seg.
ciclo de 36
digitalWrite(8,HIGH); 8 en
digitalWrite(9,HIGH); 9 en el
Delay(6500); retrasar 6,5 seg.
ciclo 37
digitalWrite(6,HIGH); //
digitalWrite(7,HIGH); //
digitalWrite(8,HIGH); //
digitalWrite(9,HIGH); //
digitalWrite(A0,HIGH); todo en
digitalWrite(A1,HIGH); //
digitalWrite(A2,HIGH); //
digitalWrite(A3,HIGH); //
Delay(10000); demora 10 seg.
ciclo de 38
digitalWrite(6,LOW); 6 apagado
digitalWrite(7,LOW); 7 off
digitalWrite(8,LOW); 8 de
digitalWrite(9,LOW); 9 off
digitalWrite(A0,LOW); A0 de
digitalWrite(A1,LOW); A1 de
digitalWrite(A2,LOW); A2 de
digitalWrite(A3,LOW); A3 de
Delay(100); retraso de sec.1
ciclo 39
empieza a parpadear al azar
digitalWrite(6,HIGH);
digitalWrite(A0,HIGH);
Delay(150);
digitalWrite(6,LOW);
digitalWrite(9,HIGH);
Delay(150);
digitalWrite(9,LOW);
digitalWrite(A0,LOW);
digitalWrite(7,HIGH);
Delay(150);
digitalWrite(A1,HIGH);
digitalWrite(7,LOW);
Delay(150);
digitalWrite(A1,LOW);
digitalWrite(8,HIGH);
Delay(150);
digitalWrite(8,LOW);
digitalWrite(A2,HIGH);
Delay(150);
digitalWrite(A3,HIGH);
Delay(150);
digitalWrite(A3,LOW);
digitalWrite(A2,LOW);
Delay(150);
digitalWrite(6,HIGH);
digitalWrite(A0,HIGH);
Delay(150);
digitalWrite(6,LOW);
digitalWrite(9,HIGH);
Delay(150);
digitalWrite(9,LOW);
digitalWrite(A0,LOW);
digitalWrite(7,HIGH);
Delay(150);
digitalWrite(A1,HIGH);
digitalWrite(7,LOW);
Delay(150);
digitalWrite(A1,LOW);
digitalWrite(8,HIGH);
Delay(150);
digitalWrite(8,LOW);
digitalWrite(A2,HIGH);
Delay(150);
digitalWrite(A3,HIGH);
Delay(150);
digitalWrite(A3,LOW);
digitalWrite(A2,LOW);
Delay(150);
digitalWrite(6,HIGH);
digitalWrite(A0,HIGH);
Delay(150);
digitalWrite(6,LOW);
digitalWrite(9,HIGH);
Delay(150);
digitalWrite(9,LOW);
digitalWrite(A0,LOW);
digitalWrite(7,HIGH);
Delay(150);
digitalWrite(A1,HIGH);
digitalWrite(7,LOW);
Delay(150);
digitalWrite(A1,LOW);
digitalWrite(8,HIGH);
Delay(150);
digitalWrite(8,LOW);
digitalWrite(A2,HIGH);
Delay(150);
digitalWrite(A3,HIGH);
Delay(150);
digitalWrite(A3,LOW);
digitalWrite(A2,LOW);
Delay(150);
digitalWrite(6,HIGH);
digitalWrite(A0,HIGH);
Delay(150);
digitalWrite(6,LOW);
digitalWrite(8,HIGH);
Delay(150);
digitalWrite(A0,LOW);
digitalWrite(A2,HIGH);
Delay(150);
digitalWrite(8,LOW);
digitalWrite(A2,LOW);
Delay(150);
digitalWrite(7,HIGH);
digitalWrite(A3,HIGH);
Delay(150);
digitalWrite(7,LOW);
digitalWrite(9,HIGH);
Delay(150);
digitalWrite(A3,LOW);
digitalWrite(9,LOW);
Delay(150);
digitalWrite(6,HIGH);
digitalWrite(A1,HIGH);
Delay(150);
digitalWrite(6,LOW);
digitalWrite(8,HIGH);
Delay(150);
digitalWrite(A1,LOW);
digitalWrite(8,LOW);
Delay(8000); retraso entre el retraso de la canción y el parpadeo bombillas en ms
soporte de modo que se convertirá en parpadeo bombillas
digitalWrite (A4, alto); parpadeo de las bombillas en
Delay(200); retrasar hasta música de fondo esté en audio de audio escudo
digitalWrite (A5, LOW); desconecta el relé de escudo audio música de fondo
Delay(600000); retrasan hasta el parpadeo bombillas apague y empieza la canción y el espectáculo de luz (600000ms = 10 min de retraso)
1000ms = 1 segundo, 600000ms = 10 min
digitalWrite (A4, LOW); Vueltas de parpadeo bombillas
}}