Singing Pumpkins / Arduino (6 / 9 steg)

Steg 6: Arduino/Wave sköld inrätta och filer

Jag använde denna våg sköld http://www.ladyada.net/make/waveshield/ det kommer som ett kit Följ monteringsanvisningen på länken.

Wave sköld kommer att använda stift 1, 2, 3, 4, 5, 10
Våra projekt använder stift 6, 7, 8, 9, A0, A1, A2, A3, A4, A5

Stift 6, 7, 8, 9, A0, A1, A2, A3 kommer att användas för pumpor blinkande lampor, pin A4 används för att kontrollera flimmer lampa uppsättningen och nåla fast A5 används för att styra ett relä som kommer att koppla bort bakgrundsljud och ansluta våg skölden till en uppsättning högtalare. Det är så att alla kommer att fokusera på de viktigaste händelse av Halloween displayen.

Ladda upp ljudfilen till ett sd-kort och ladda upp skissen till arduino.

SKISS

Skapad av Greg Spiridakos 2011 / /

#include < AF_Wave.h >
#include < avr/pgmspace.h >
#include "util.h"
#include "wave.h"

AF_Wave kort;
Fil f;
Wavefile våg; bara en!

#define redled 9

uint16_t samplerate;

void setup() {

Serial.BEGIN(9600); Ställ in följetong bibliotek på 9600 bps
Serial.println ("Wave test!");

pinMode (2, utgång); används av ljud sköld
pinMode (3, OUTPUT); används av ljud sköld
pinMode (4, OUTPUT); används av ljud sköld
pinMode (5, OUTPUT); används av ljud sköld
pinMode (6, OUTPUT); LED ljus
pinMode (7, OUTPUT); LED ljus
pinMode (8, OUTPUT); LED ljus
pinMode (9, OUTPUT); LED ljus
pinMode (A0, OUTPUT); LED ljus
pinMode (A1, utgång); LED ljus
pinMode (A2, OUTPUT); LED ljus
pinMode (A3, OUTPUT); LED ljus
pinMode (A4, OUTPUT); flimmer lampa set
pinMode (A5, OUTPUT); auido byta relä

pinMode (redled, produktionen);

om (! card.init_card()) {
putstring_nl ("kort init. misslyckades!"); hemkomst.
}
om (! card.open_partition()) {
putstring_nl ("ingen partition!"); hemkomst.
}
om (! card.open_filesys()) {
putstring_nl ("kunde inte öppna filesys"); hemkomst.
}

om (! card.open_rootdir()) {
putstring_nl ("kunde inte öppna dir"); hemkomst.
}

putstring_nl ("filer som hittas:");
LS();
}

void ls() {
char namn [13].
int ret;

Card.reset_dir();
putstring_nl ("filer som hittas:");
samtidigt (1) {
ret = card.get_next_name_in_dir(name);
om (! ret) {
Card.reset_dir();
hemkomst.
}
Serial.println(Name);
}
}

uint8_t tracknum = 0;

void loop() {

uint8_t i, r;
char c, namn [15].

Card.reset_dir();
Bläddra igenom filerna i katalogen
för (jag = 0; jag < tracknum + 1; i ++) {
r = card.get_next_name_in_dir(name);
om (! r) {
sprang ut spår! börja om
tracknum = 0;
hemkomst.
}
}
putstring ("\n\rPlaying"); Serial.Print(Name);
återställa katalogen så att vi kan hitta filen
Card.reset_dir();
playcomplete(Name);
tracknum ++;
}

void playcomplete(char *name) {
uint16_t potval;
uint32_t newsamplerate;

playfile(Name);
samplerate = wave.dwSamplesPerSec;
samtidigt (wave.isplaying) {
Du kan göra sånt här!
Delay(500);
}
Card.close_file(f);
}

void playfile(char *name) {
f = card.open_file(name);
om (! f) {
putstring_nl kunde inte ("öppna filen"); hemkomst.
}
om (! wave.create(f)) {
putstring_nl ("inte en giltig WAV"); hemkomst.
}
OK dags att spela!
Wave.Play();

{/ / denna grupp animerar lysdioderna

digitalWrite(A5,HIGH); Detta blir ljud relä till switch bakgrundsmusik till audio sheild dela högtalare

Delay(14500); Detta kommer att fördröja lysdioderna när ljudet har startat i millisekunder
1000 millisekunder = 1 sekund
14,5 sek fördröjning från början
cykel 1
digitalWrite(6,HIGH); //
digitalWrite(7,HIGH); //
digitalWrite(8,HIGH); //
digitalWrite(9,HIGH); alla på
digitalWrite(A0,HIGH); //
digitalWrite(A1,HIGH); //
digitalWrite(A2,HIGH); //
digitalWrite(A3,HIGH); //
Delay(23000); fördröja 23.0 SEK

cykel 2
digitalWrite(6,LOW); //
digitalWrite(7,LOW); //
digitalWrite(A0,LOW); allt bort
digitalWrite(A1,LOW); //
digitalWrite(A2,LOW); //
digitalWrite(A3,LOW); //
Delay(5100); fördröja 5.1 SEK

cykel 3
digitalWrite(8,LOW); 8 av
Delay(5700); fördröja 5,7 SEK

Cycle 4
digitalWrite (9, låg). 9 av
digitalWrite (7, hög). 7 på
Delay(5000); fördröja 5 sek totalt dröjsmål från början

cykla 5
digitalWrite(6,HIGH); //
digitalWrite(7,HIGH); //
digitalWrite(8,HIGH); alla på
digitalWrite(9,HIGH); //
digitalWrite(A0,HIGH); //
digitalWrite(A1,HIGH); //
digitalWrite(A2,HIGH); //
digitalWrite(A3,HIGH); //
Delay(6300); fördröja 6,3 SEK

cykeln 6
digitalWrite(6,LOW); //
digitalWrite(7,LOW); //
digitalWrite(8,LOW); //
digitalWrite(9,LOW); allt bort
digitalWrite(A0,LOW); //
digitalWrite(A1,LOW); //
digitalWrite(A2,LOW); //
digitalWrite(A3,LOW); //
Delay(1100); fördröja 1.1 SEK

cykel 7
digitalWrite(8,HIGH); 8 på
digitalWrite(9,HIGH); 9 på
Delay(6000); fördröja 6 sek

Cycle 8
digitalWrite(8,LOW); 8 av
digitalWrite(9,LOW); 9 av
digitalWrite(A0,HIGH); A0 på
Delay(5000); fördröja 5 sek

cykla 9
digitalWrite(A0,LOW); A0 off
digitalWrite(7,HIGH); 7 på
Delay(6000); fördröja 6 sek

Cycle 10
digitalWrite(6,HIGH); //
digitalWrite(7,HIGH); //
digitalWrite(8,HIGH); //
digitalWrite(9,HIGH); alla på
digitalWrite(A0,HIGH); //
digitalWrite(A1,HIGH); //
digitalWrite(A2,HIGH); //
digitalWrite(A3,HIGH); //
Delay(1000); 1 SEK fördröjning

Cycle 11
digitalWrite(6,LOW); //
digitalWrite(7,LOW); //
digitalWrite(8,LOW); alla utom A0 off
digitalWrite(9,LOW); //
digitalWrite(A0,HIGH); //
digitalWrite(A1,LOW); //
digitalWrite(A2,LOW); //
digitalWrite(A3,LOW); //
Delay(100); 1 SEK fördröjning

cykel 12
digitalWrite(A0,LOW); A0 off
digitalWrite(A1,HIGH); A1 på
Delay(1000); fördröja 1 SEK

cykeln 13
digitalWrite(A1,LOW); A1 utanför
digitalWrite(7,HIGH); 7 på
Delay(1000); fördröja 1 SEK

cykeln 14
digitalWrite(A1,HIGH); A1 på
Delay(1000); fördröja 1 SEK

cykla 15
digitalWrite(A1,LOW); A1 utanför
digitalWrite(8,HIGH); 8 på
digitalWrite(9,HIGH); 9 på
Delay(8000); fördröja 8 SEK

cykel 16
digitalWrite(7,HIGH); 7 på
Delay(3000); fördröja 3 SEK

cykel 17
digitalWrite(6,HIGH); //
digitalWrite(7,LOW); //
digitalWrite(8,HIGH); alla utom 7 på
digitalWrite(9,HIGH); //
digitalWrite(A0,HIGH); //
digitalWrite(A1,HIGH); //
digitalWrite(A2,HIGH); //
digitalWrite(A3,HIGH); //
Delay(2000); fördröja 2 sek

cykel 18
digitalWrite(6,LOW); //
digitalWrite(7,LOW); //
digitalWrite(8,LOW); alla utom 9 off
digitalWrite(9,HIGH); //
digitalWrite(A0,LOW); //
digitalWrite(A1,LOW); //
digitalWrite(A2,LOW); //
digitalWrite(A3,LOW); //
Delay(2000); fördröja 2 sek

cykeln 19
digitalWrite(6,LOW); //
digitalWrite(7,LOW); //
digitalWrite(8,LOW); alla utom A2 off
digitalWrite(9,LOW); //
digitalWrite(A0,LOW); //
digitalWrite(A1,LOW); //
digitalWrite(A2,HIGH); //
digitalWrite(A3,LOW); //
Delay(1000); dealy 1 SEK

cykel 20
digitalWrite(A2,LOW); A2 off
digitalWrite(A3,HIGH); A3 på
Delay(3000); fördröja 3 SEK

cykel 21
digitalWrite(A3,LOW); A3 off
digitalWrite(A0,HIGH); A0 på
Delay(2500); fördröja 2,5 sek

cykeln 22
digitalWrite(A0,LOW); A0 off
digitalWrite(A3,HIGH); A3 på
Delay(3000); fördröja 3 SEK

cykeln 23
digitalWrite(A3,LOW); A3 off
digitalWrite(7,HIGH); 7 på
Delay(5500); fördröja 5,5 sek

cykel 24
digitalWrite(6,HIGH); //
digitalWrite(7,HIGH); //
digitalWrite(8,HIGH); alla på
digitalWrite(9,HIGH); //
digitalWrite(A0,HIGH); //
digitalWrite(A1,HIGH); //
digitalWrite(A2,HIGH); //
digitalWrite(A3,HIGH); //
Delay(6000); fördröja 6 sek

cykel 25
digitalWrite(8,HIGH); 8 på
Delay(1000); fördröja 1 SEK

cykel 26
digitalWrite(8,LOW); 8 av
digitalWrite(9,HIGH); 9 på
Delay(7500); fördröja 7.5 sek

cykeln 27
digitalWrite(6,HIGH); 6 på
Delay(1000); fördröja 1 SEK

cykel 28
digitalWrite(7,LOW); 7 på
digitalWrite(A1,HIGH); A1 på
Delay(2000); fördröja 2 sek

cykeln 29
digitalWrite(7,HIGH); 7 på
Delay(3500); fördröja 3.5 sek

cykel 30
digitalWrite(A1,LOW); A1 utanför
digitalWrite(7,LOW); 7 av
digitalWrite(A0,HIGH); A0 på
Delay(3000); fördröja 3 SEK

cykeln 31
digitalWrite(A1,HIGH); A1 på
Delay(3000); fördröja 3 SEK

cykeln 32
digitalWrite(A0,LOW); A0 off
Delay(2500); fördröja 2,5 sek

cykeln 33
digitalWrite(8,HIGH); 8 på
digitalWrite(9,HIGH); 9 på
Delay(3500); fördröja 3.5 sek

cykeln 34
digitalWrite(7,HIGH); 7 på
Delay(1000); fördröja 1 SEK

cykeln 35
digitalWrite(A0,HIGH); A0 på
digitalWrite(A1,HIGH); A1 på
digitalWrite(A2,HIGH); A2 på
digitalWrite(A3,HIGH); A3 på
Delay(17500); fördröja 17,5 sek

cykeln 36
digitalWrite(8,HIGH); 8 på
digitalWrite(9,HIGH); 9 på
Delay(6500); fördröja 6,5 sek

cykeln 37
digitalWrite(6,HIGH); //
digitalWrite(7,HIGH); //
digitalWrite(8,HIGH); //
digitalWrite(9,HIGH); //
digitalWrite(A0,HIGH); alla på
digitalWrite(A1,HIGH); //
digitalWrite(A2,HIGH); //
digitalWrite(A3,HIGH); //
Delay(10000); fördröja 10 SEK

cykeln 38
digitalWrite(6,LOW); 6 av
digitalWrite(7,LOW); 7 av
digitalWrite(8,LOW); 8 av
digitalWrite(9,LOW); 9 av
digitalWrite(A0,LOW); A0 off
digitalWrite(A1,LOW); A1 utanför
digitalWrite(A2,LOW); A2 off
digitalWrite(A3,LOW); A3 off
Delay(100); 1 SEK fördröjning

cykeln 39
börjar random blinka
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); fördröjning mellan sång och flimmer lökar försening i ms
stå vid läge som kommer att slå på flimmer lökar

digitalWrite (A4, hög); flimmer lökar på
Delay(200); fördröja tills ljud kopplas om från audio shield till bakgrundsmusik
digitalWrite (A5, låg); kopplar från reläet från audio sköld till bakgrundsmusik

Delay(600000); fördröja tills flimmer lökar stänger av och startar sång och ljus show (600000ms = 10 min fördröjning)
1000ms = 1 SEK, 600000ms = 10 min

digitalWrite (A4, låg); Vänd av flimmer lökar

}}

Se Steg
Relaterade Ämnen

Singing Pumpkins Illusion DIY guide

År 2001 presenterade Disneyland Nightmare Before Christmas utarbeta holiday overlaytill deras Haunted Mansion attraktion. I avsnittet normalt med älskade byst statyerna sjunger "Grim flinande spöken", visas de med sång, animerade jack-o-lyktor s...

Singing Pumpkins, Hologram spöke ansikte & mer!

På grund av den höga volymen av förfrågningar jag får för Singing Pumpkins specialeffekt, jag gjorde en Instructable för dem här:Dekorationer som jag skapat på min byggnad innergård för Halloween med en original hologram spöke ansikte och sjunger jac...

Singing Pumpkins/parallell Port relä Box

detta Instructable visar dig hur man bygger en parallellport relä box som används för att driva en sjungande pumpa Halloween rigg. Sjungande pumpa riggen är i grunden en synkroniserad ljus och musik visar att se ut som om du har en kör av singing pum...

Animatronic Singing Pumpkins

detta var en idé ursprungligen från en vän, som jag har stötte till nästa nivå. Målet är att skapa sjunger / ta pumpor med hjälp av en Arduino och Vixen. Vi kommer att använda "generiska" serieport för att anpassa dessa två awesome resurser. Ard...

Halloween IOT Pumpkin Patch

Mål: När barn närmar sig huset kommer Pumpkin Patch till liv som ger en interaktiv miljö baserad på motion och sund upptäckt.Steg 1: Service LayerSteg 2: ArbetsflödeNär rörelse upptäcks; gör följande:Starta en ingen rörelse upptäckts timer till stäng...

Candy Monster växten

Detta projekt kom från många olika håll. En var att jag vill prova att göra något som var animatronic. För det andra, jag var redo för Halloween och letar efter något nytt att göra för Halloween. Slutligen, jag trodde att min krukväxt Zombie hand beh...

Arduino-Powered pumpa

denna Halloween projektet använder en Arduino med en rörelsesensor och en massa lysdioder för att hälsa gästerna utanför dörren.Steg 1: Programmera Arduino och koppla in den Koden för detta är baserad på ett exempel från Tom Igoe att göra saker Talk....

Interaktiva Halloween pumpa (Arduino baserat)

IDÉNEn pumpa som glöder, skakar och skriker... [video]Det är Halloween, så naturligt att vi var tvungna att ha ett projekt som.Tanken är att ha en pumpa, som känner av närvaron av en person som försöker komma till godis, och sedan använder olika "skr...

Xmas-box: Arduino/ioBridge internet kontrollerad Julljus och musik show

min xmas-box projektet består av en internet kontrollerad Julljus och musikföreställning. En julsång på begäran on-line som sedan sätta i en kö och spelas i den ordning de begärdes. Musiken sänds på en FM-station inom en radie av 300 ft från mitt hus...

Baserade Arduino Piano

Hej killar, idag gör vi en elektronisk Arduino baserade piano (E-Piano). Det är en enkel piano som spelar de grundläggande musiknoter (göra Re mig Fa så La Si). Jag har lagt till en anpassad Super Mario Bros Melody E-piano som gjordes av PrinceTronic...

IPAD kontrollerade jul stjärna lykta med arduino

Hej killar, är det nästan jul och vi har skapat en julstjärna som kan styras med din mobila enhet. Ljuseffekter på julstjärna kan aktiveras av din mobila enhet, kan du styra mängden cykler lysdioderna blinka på och av, stop belysning på din vilja och...

Programmera din Arduino med en Android-enhet via Bluetooth

Hej världen, i detta Instructable jag vill visa dig, hur du programmerar din Arduino Uno med din Android-enhet via Bluetooth. Det är mycket enkelt och så billig. Det ger oss också möjlighet att programmera vårt Arduino där allt vi vill över trådlöst...

Android och Arduino SMS-baserade Home Automation

Nyligen fick jag en relativt billig Kvadranten Band GSM/GPRS-modul för att spela med. Det är en SIM800L modul, och kommunicerar med alla micro via en seriell port. Det kom med en panel mount antenn.Jag beslutade att bygga ett enkelt SMS Controller sy...

Arduino temperaturreglerade Fan

Jag och några medlemmar har beslutat att för sommaren, skulle det vara fördelaktigt att skapa en fläkt som tänds vid 70 grader Fahrenheit och fortsätter att öka i intensitet med värmen. Så det är vad vi gjorde. :)Steg 1: Gears Det första vi laser skä...

Sable 2015 CNC + Arduino + GRBL = LunchBox CNC

Detta är min 2: a Instructable och min 2nd Arduino powered CNC, den här gången jag upp svårighetsgraden genom att besluta att göra en själv innehöll CNC enhet av design min egen elektronik kapslingar och placeringar.Stegen i detta Instructable är mer...

Arduino kontrollerade Beehive Fumigator / Air Freshener

Inom det relativa kaoset av mina inhemska arrangemang har jag en liten oas i perfekt ordning. En sak som jag kan kalla "organiserade" och "fullt fungerande". En sak jag kan röra och vet att det är tillförlitliga och färdiga för åtgärde...

Hemmabyggd (DIY) CNC router - baserade Arduino (GRBL)

Redan för några var månader eller år, jag planerar att bygga mitt eget CNC fräsmaskin. Nu bestämde jag mig för det var tid att göra det! Jag läser mycket om andra DIY projekt och till slut jag gillade designen från Arduino CNC intstructable som jag h...

12 tim binär klocka, timmar och minuter bara, DS1307 RTC, i2C, Arduino-Nano

Ett tag nu har jag velat göra en binär klocka, men efter att ha tittat jag bestämde mig något bara lite annorlunda. Så jag beslöt att endast visar timmar och minuter och endast visa en 12 timmars klocka, innebär detta du bara behöver 3 kolumner och m...

Arduino 7-Seg Display Clock

Detta är en Auduino klocka gjorde med Sunfounder kit. Detta är en riktigt cool projekt och lätt att göra!Steg 1: material Endast 9 material krävs för montering av arduino powered klockanSkärbrädaSladdarUSB-kabelTråd-kontakterCardstock boxSju segment...