Stap 6: Arduino/Wave shield instellen en de bestanden
Ik gebruikte deze golf schild- http://www.ladyada.net/make/waveshield/ , die het komt als een kit volg eenvoudig de montage-instructies op de link.De wave shield zal gebruik maken van pins 1, 2, 3, 4, 5, 10
Onze project gebruik pins 6, 7, 8, 9, A0, A1, A2, A3, A4, A5
Pinnen 6, 7, 8, 9, A0, A1, A2, A3 zal worden gebruikt voor de pompoenen knipperende lichten, pin A4 worden gebruikt voor het controleren van de flikkering lampenset en pin A5 zal worden gebruikt om een relais dat zal koppelt het achtergrond geluid en sluit de wave shield op een set luidsprekers. Dit is zodat iedereen zich op het main event van het Halloween-display richten zal.
Upload het audio-bestand naar een sd-kaart, en uploaden van de schets aan de arduino.
SCHETS
Gemaakt door Greg Spiridakos 2011 / /
#include < AF_Wave.h >
#include < avr/pgmspace.h >
#include "util.h"
#include "wave.h"
Kaart van de AF_Wave;
Bestand f;
WAVEFILE Golf; slechts één!
#define redled 9
uint16_t samplerate;
VOID Setup {}
Serial.begin(9600); instellen van seriële bibliotheek 9600 bps
Serial.println ("Wave test!");
pinMode (2, OUTPUT); gebruikt door geluid schild
pinMode (3, OUTPUT); gebruikt door geluid schild
pinMode (4, OUTPUT); gebruikt door geluid schild
pinMode (5, OUTPUT); gebruikt door geluid schild
pinMode (6, OUTPUT); LED licht
pinMode (7, OUTPUT); LED licht
pinMode (8, OUTPUT); LED licht
pinMode (9, OUTPUT); LED licht
pinMode (A0, uitvoer); LED licht
pinMode (A1, uitvoer); LED licht
pinMode (A2, uitvoer); LED licht
pinMode (A3, uitvoer); LED licht
pinMode (A4, uitvoer); flikkering lampenset
pinMode (A5, uitvoer); auido schakelaar via relay
pinMode (redled, OUTPUT);
Als (! card.init_card()) {}
putstring_nl ("Card init. mislukt!"); terugkeer;
}
Als (! card.open_partition()) {}
putstring_nl ("geen partitie!"); terugkeer;
}
Als (! card.open_filesys()) {}
putstring_nl niet kon ("openen filesys"); terugkeer;
}
Als (! card.open_rootdir()) {}
putstring_nl kon niet ("open dir"); terugkeer;
}
putstring_nl ("bestanden gevonden:");
ls();
}
ongeldig ls() {}
char naam [13];
int ret;
Card.reset_dir();
putstring_nl ("bestanden gevonden:");
terwijl (1) {}
RET = card.get_next_name_in_dir(name);
Als (! ret) {}
Card.reset_dir();
terugkeer;
}
Serial.println(name);
}
}
uint8_t tracknum = 0;
void loop {}
uint8_t i, r;
char c, naam [15];
Card.reset_dir();
Blader door de bestanden in de directory
voor (ik = 0; ik < tracknum + 1; i ++) {}
r = card.get_next_name_in_dir(name);
Als (! r) {}
rende tracks! opnieuw beginnen
tracknum = 0;
terugkeer;
}
}
putstring ("\n\rPlaying"); Serial.Print(name);
resetten van de directory, zodat we het bestand kunt vinden
Card.reset_dir();
playcomplete(name);
tracknum ++;
}
ongeldig playcomplete(char *name) {}
uint16_t potval;
uint32_t newsamplerate;
playfile(name);
samplerate = wave.dwSamplesPerSec;
terwijl (wave.isplaying) {}
kan je hier spullen!
delay(500);
}
Card.close_file(f);
}
ongeldig playfile(char *name) {}
f = card.open_file(name);
Als (! f) {}
putstring_nl kon niet ("open bestand"); terugkeer;
}
Als (! wave.create(f)) {}
putstring_nl ("niet een geldig WAV"); terugkeer;
}
OK tijd om te spelen!
Wave.Play();
{/ / deze groep bezielt de leds
digitalWrite(A5,HIGH); Dit zal veranderen audio estafette naar schakelaar achtergrondmuziek voor audio Shield delen sprekers
delay(14500); Dit zal het vertragen van de LED's nadat de audio is gestart in miliseconden
1000 miliseconden = 1 seconde
14,5 sec vertraging van start
cyclus 1
digitalWrite(6,HIGH); //
digitalWrite(7,HIGH); //
digitalWrite(8,HIGH); //
digitalWrite(9,HIGH); alle op
digitalWrite(A0,HIGH); //
digitalWrite(A1,HIGH); //
digitalWrite(A2,HIGH); //
digitalWrite(A3,HIGH); //
delay(23000); vertraging 23,0 sec
cyclus 2
digitalWrite(6,LOW); //
digitalWrite(7,LOW); //
digitalWrite(A0,LOW); Alle uitschakelen
digitalWrite(A1,LOW); //
digitalWrite(A2,LOW); //
digitalWrite(A3,LOW); //
delay(5100); 5.1 sec vertragen
cyclus 3
digitalWrite(8,LOW); 8 uitschakelen
delay(5700); 5.7 sec vertragen
cyclus 4
digitalWrite (9, laag); 9 af
digitalWrite (7, hoge); 7 op
delay(5000); vertraging van 5 sec totale vertraging van start
cyclus 5
digitalWrite(6,HIGH); //
digitalWrite(7,HIGH); //
digitalWrite(8,HIGH); alle op
digitalWrite(9,HIGH); //
digitalWrite(A0,HIGH); //
digitalWrite(A1,HIGH); //
digitalWrite(A2,HIGH); //
digitalWrite(A3,HIGH); //
delay(6300); 6.3 sec vertragen
cyclus 6
digitalWrite(6,LOW); //
digitalWrite(7,LOW); //
digitalWrite(8,LOW); //
digitalWrite(9,LOW); Alle uitschakelen
digitalWrite(A0,LOW); //
digitalWrite(A1,LOW); //
digitalWrite(A2,LOW); //
digitalWrite(A3,LOW); //
delay(1100); 1.1 sec vertragen
cyclus 7
digitalWrite(8,HIGH); 8 op
digitalWrite(9,HIGH); 9 op
delay(6000); vertraging van 6 sec
cyclus 8
digitalWrite(8,LOW); 8 uitschakelen
digitalWrite(9,LOW); 9 af
digitalWrite(A0,HIGH); A0 op
delay(5000); vertraging van 5 seconden
cyclus 9
digitalWrite(A0,LOW); A0 af
digitalWrite(7,HIGH); 7 op
delay(6000); vertraging van 6 sec
cyclus 10
digitalWrite(6,HIGH); //
digitalWrite(7,HIGH); //
digitalWrite(8,HIGH); //
digitalWrite(9,HIGH); alle op
digitalWrite(A0,HIGH); //
digitalWrite(A1,HIGH); //
digitalWrite(A2,HIGH); //
digitalWrite(A3,HIGH); //
delay(1000); 1 sec vertraging
cyclus 11
digitalWrite(6,LOW); //
digitalWrite(7,LOW); //
digitalWrite(8,LOW); alles behalve A0 af
digitalWrite(9,LOW); //
digitalWrite(A0,HIGH); //
digitalWrite(A1,LOW); //
digitalWrite(A2,LOW); //
digitalWrite(A3,LOW); //
delay(100); .1 sec vertraging
cyclus van 12
digitalWrite(A0,LOW); A0 af
digitalWrite(A1,HIGH); A1 op
delay(1000); vertraging van 1 seconde
cyclus 13
digitalWrite(A1,LOW); A1 uit
digitalWrite(7,HIGH); 7 op
delay(1000); vertraging van 1 seconde
cyclus 14
digitalWrite(A1,HIGH); A1 op
delay(1000); vertraging van 1 seconde
cyclus van 15
digitalWrite(A1,LOW); A1 uit
digitalWrite(8,HIGH); 8 op
digitalWrite(9,HIGH); 9 op
delay(8000); vertraging van 8 sec
cyclus 16
digitalWrite(7,HIGH); 7 op
delay(3000); vertraging van 3 seconden
cyclus 17
digitalWrite(6,HIGH); //
digitalWrite(7,LOW); //
digitalWrite(8,HIGH); alles behalve 7 op
digitalWrite(9,HIGH); //
digitalWrite(A0,HIGH); //
digitalWrite(A1,HIGH); //
digitalWrite(A2,HIGH); //
digitalWrite(A3,HIGH); //
delay(2000); vertraging van 2 sec
cyclus 18
digitalWrite(6,LOW); //
digitalWrite(7,LOW); //
digitalWrite(8,LOW); alles behalve 9 af
digitalWrite(9,HIGH); //
digitalWrite(A0,LOW); //
digitalWrite(A1,LOW); //
digitalWrite(A2,LOW); //
digitalWrite(A3,LOW); //
delay(2000); vertraging van 2 sec
cyclus 19
digitalWrite(6,LOW); //
digitalWrite(7,LOW); //
digitalWrite(8,LOW); alles behalve A2 af
digitalWrite(9,LOW); //
digitalWrite(A0,LOW); //
digitalWrite(A1,LOW); //
digitalWrite(A2,HIGH); //
digitalWrite(A3,LOW); //
delay(1000); dealy 1 sec
cyclus 20
digitalWrite(A2,LOW); A2 af
digitalWrite(A3,HIGH); A3 op
delay(3000); vertraging van 3 seconden
cyclus 21
digitalWrite(A3,LOW); A3 af
digitalWrite(A0,HIGH); A0 op
delay(2500); vertraging van 2,5 sec
cyclus 22
digitalWrite(A0,LOW); A0 af
digitalWrite(A3,HIGH); A3 op
delay(3000); vertraging van 3 seconden
cyclus 23
digitalWrite(A3,LOW); A3 af
digitalWrite(7,HIGH); 7 op
delay(5500); vertraging van 5.5 sec
cyclus van 24
digitalWrite(6,HIGH); //
digitalWrite(7,HIGH); //
digitalWrite(8,HIGH); alle op
digitalWrite(9,HIGH); //
digitalWrite(A0,HIGH); //
digitalWrite(A1,HIGH); //
digitalWrite(A2,HIGH); //
digitalWrite(A3,HIGH); //
delay(6000); vertraging van 6 sec
cyclus 25
digitalWrite(8,HIGH); 8 op
delay(1000); vertraging van 1 seconde
cyclus van 26
digitalWrite(8,LOW); 8 uitschakelen
digitalWrite(9,HIGH); 9 op
delay(7500); vertraging van 7,5 sec
cyclus 27
digitalWrite(6,HIGH); 6 op
delay(1000); vertraging van 1 seconde
cyclus 28
digitalWrite(7,LOW); 7 op
digitalWrite(A1,HIGH); A1 op
delay(2000); vertraging van 2 sec
cyclus 29
digitalWrite(7,HIGH); 7 op
delay(3500); 3,5 seconde vertraging
cyclus 30
digitalWrite(A1,LOW); A1 uit
digitalWrite(7,LOW); 7 uit
digitalWrite(A0,HIGH); A0 op
delay(3000); vertraging van 3 seconden
cyclus 31
digitalWrite(A1,HIGH); A1 op
delay(3000); vertraging van 3 seconden
cyclus 32
digitalWrite(A0,LOW); A0 af
delay(2500); vertraging van 2,5 sec
cyclus 33
digitalWrite(8,HIGH); 8 op
digitalWrite(9,HIGH); 9 op
delay(3500); 3,5 seconde vertraging
cyclus van 34
digitalWrite(7,HIGH); 7 op
delay(1000); vertraging van 1 seconde
cyclus 35
digitalWrite(A0,HIGH); A0 op
digitalWrite(A1,HIGH); A1 op
digitalWrite(A2,HIGH); A2 op
digitalWrite(A3,HIGH); A3 op
delay(17500); vertraging van 17,5 sec
cyclus 36
digitalWrite(8,HIGH); 8 op
digitalWrite(9,HIGH); 9 op
delay(6500); vertraging van 6.5 sec
cyclus 37
digitalWrite(6,HIGH); //
digitalWrite(7,HIGH); //
digitalWrite(8,HIGH); //
digitalWrite(9,HIGH); //
digitalWrite(A0,HIGH); alle op
digitalWrite(A1,HIGH); //
digitalWrite(A2,HIGH); //
digitalWrite(A3,HIGH); //
delay(10000); vertraging van 10 sec
cyclus 38
digitalWrite(6,LOW); 6 uit
digitalWrite(7,LOW); 7 uit
digitalWrite(8,LOW); 8 uitschakelen
digitalWrite(9,LOW); 9 af
digitalWrite(A0,LOW); A0 af
digitalWrite(A1,LOW); A1 uit
digitalWrite(A2,LOW); A2 af
digitalWrite(A3,LOW); A3 af
delay(100); .1 sec vertraging
cyclus 39
willekeurige knippert
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); de wachttijd tussen de lied en flikkering bollen vertraging in ms
stand-by-modus die flikkering bollen aanzetten zal
digitalWrite (A4, hoge); flikkering bollen op
delay(200); uitstellen tot audio is overgestapt van audio schild aan achtergrondmuziek
digitalWrite (A5, laag); audio schild verbreekt relay naar de achtergrondmuziek
delay(600000); uitstellen tot flikkering bollen uit te schakelen en nummer en lichtshow start (600000ms = 10 min vertraging)
1000ms = 1 seconde, 600000ms = 10 min
digitalWrite (A4, laag); Bochten van flikkering bollen
}}