Étape 6: Shield Arduino/Wave mis en place et les fichiers
J’ai utilisé cette vague le bouclier de http://www.ladyada.net/make/waveshield/ qu'il s’agit comme un kit il suffit de suivre les instructions d’assemblage sur le lien.Le bouclier de la vague va utiliser les broches 1, 2, 3, 4, 5, 10
Notre projet utilise broches 6, 7, 8, 9, A0, A1, A2, A3, A4, A5
Broches de 6, 7, 8, 9, A0, A1, A2, A3 sera utilisé pour les citrouilles, lumières clignotantes, broche A4 serviront à définir les ampoule de scintillement et la broche A5 sera utilisé pour commander un relais qui va couper le fond sonore et raccorder le blindage de la vague à une paire d’enceintes. C’est alors que tout le monde se concentrera sur le main event de l’affichage de l’Halloween.
Télécharger le fichier audio sur une carte sd et téléchargez le croquis à l’arduino.
CROQUIS
Créé par Greg Spiridakos 2011 / /
#include < AF_Wave.h >
#include < avr/pgmspace.h >
#include « util.h »
#include « wave.h »
Carte de AF_Wave ;
Fichier f ;
Wavefile vague ; seul !
#define redled 9
uint16_t taux d’échantillonnage ;
void setup() {}
Serial.Begin(9600) ; mettre en place une bibliothèque série à 9600 bps
Serial.println ("vague test!") ;
pinMode (sortie 2) ; utilisé par plaque d’insonorisation
pinMode (3, sortie) ; utilisé par plaque d’insonorisation
pinMode (sortie 4) ; utilisé par plaque d’insonorisation
pinMode (5, sortie) ; utilisé par plaque d’insonorisation
pinMode (6, sortie) ; conduit de lumière
pinMode (7, sortie) ; conduit de lumière
pinMode (sortie 8) ; conduit de lumière
pinMode (sortie 9) ; conduit de lumière
pinMode (A0, sortie) ; conduit de lumière
pinMode (A1, sortie) ; conduit de lumière
pinMode (A2, sortie) ; conduit de lumière
pinMode (A3, sortie) ; conduit de lumière
pinMode (A4, sortie) ; scintillement ampoule ensemble
pinMode (A5, sortie) ; auido commuter les relais
pinMode (redled, sortie) ;
Si (! card.init_card()) {}
putstring_nl ("carte init. a échoué!") ; retour ;
}
Si (! card.open_partition()) {}
putstring_nl ("aucune partition!") ; retour ;
}
Si (! card.open_filesys()) {}
putstring_nl ("Impossible d’ouvrir filesys") ; retour ;
}
Si (! card.open_rootdir()) {}
putstring_nl ("Impossible d’ouvrir dir") ; retour ;
}
putstring_nl ("fichiers trouvés:") ;
ls() ;
}
ls() Sub {}
nom char [13] ;
int ret ;
Card.reset_dir() ;
putstring_nl ("fichiers trouvés:") ;
tandis que (1) {}
RET = card.get_next_name_in_dir(name) ;
Si (! ret) {}
Card.reset_dir() ;
retour ;
}
Serial.println(Name) ;
}
}
uint8_t tracknum = 0 ;
void loop() {}
uint8_t i, r ;
nom c, Char [15] ;
Card.reset_dir() ;
Faites défiler les fichiers dans le répertoire
pour (i = 0; i < tracknum + 1; i ++) {}
r = card.get_next_name_in_dir(name) ;
Si (! r) {}
manqué de pistes ! recommencer
tracknum = 0 ;
retour ;
}
}
putstring ("\n\rPlaying") ; Serial.Print(Name) ;
réinitialiser le répertoire, alors nous pouvons trouver le fichier
Card.reset_dir() ;
playcomplete(Name) ;
tracknum ++ ;
}
void playcomplete(char *name) {}
uint16_t potval ;
uint32_t newsamplerate ;
playfile(Name) ;
taux d’échantillonnage = wave.dwSamplesPerSec ;
alors que {(wave.isplaying)
vous pouvez faire des choses ici !
Delay(500) ;
}
Card.close_file(f) ;
}
void playfile(char *name) {}
f = card.open_file(name) ;
Si (! f) {}
putstring_nl ("Impossible d’ouvrir le fichier") ; retour ;
}
Si (! wave.create(f)) {}
putstring_nl ("pas un valide" WAV") ; retour ;
}
OK le temps de jouer !
Wave.Play() ;
{/ / ce groupe anime les leds
digitalWrite(A5,HIGH) ; ce sera son tour relais audio sur la musique de fond du commutateur à sheild audio haut-parleurs de partage
Delay(14500) ; Cela retardera la LED après que l’audio a commencé en millisecondes
1000 millisecondes = 1 seconde
retard de 14,5 sec du début
cycle 1
digitalWrite(6,HIGH) ; //
digitalWrite(7,HIGH) ; //
digitalWrite(8,HIGH) ; //
digitalWrite(9,HIGH) ; tout sur
digitalWrite(A0,HIGH) ; //
digitalWrite(A1,HIGH) ; //
digitalWrite(A2,HIGH) ; //
digitalWrite(A3,HIGH) ; //
Delay(23000) ; retarder la sec 23,0
cycle 2
digitalWrite(6,LOW) ; //
digitalWrite(7,LOW) ; //
digitalWrite(A0,LOW) ; tout éteint
digitalWrite(A1,LOW) ; //
digitalWrite(A2,LOW) ; //
digitalWrite(A3,LOW) ; //
Delay(5100) ; retarder 5,1 sec
cycle 3
digitalWrite(8,LOW) ; 8 arrêt
Delay(5700) ; retarder les 5,7 sec
cycle 4
digitalWrite (9, faible) ; 9 off
digitalWrite (7, HIGH) ; 7 sur
Delay(5000) ; retarder le délai total 5 sec du début
cycle 5
digitalWrite(6,HIGH) ; //
digitalWrite(7,HIGH) ; //
digitalWrite(8,HIGH) ; tout sur
digitalWrite(9,HIGH) ; //
digitalWrite(A0,HIGH) ; //
digitalWrite(A1,HIGH) ; //
digitalWrite(A2,HIGH) ; //
digitalWrite(A3,HIGH) ; //
Delay(6300) ; retarder les 6,3 sec
cycle 6
digitalWrite(6,LOW) ; //
digitalWrite(7,LOW) ; //
digitalWrite(8,LOW) ; //
digitalWrite(9,LOW) ; tout éteint
digitalWrite(A0,LOW) ; //
digitalWrite(A1,LOW) ; //
digitalWrite(A2,LOW) ; //
digitalWrite(A3,LOW) ; //
Delay(1100) ; retarder 1,1 s
cycle 7
digitalWrite(8,HIGH) ; 8 sur
digitalWrite(9,HIGH) ; 9 sur
Delay(6000) ; retarder les 6sec
cycle 8
digitalWrite(8,LOW) ; 8 arrêt
digitalWrite(9,LOW) ; 9 off
digitalWrite(A0,HIGH) ; A0 sur
Delay(5000) ; retard de 5 secondes
cycle 9
digitalWrite(A0,LOW) ; A0 hors
digitalWrite(7,HIGH) ; 7 sur
Delay(6000) ; retarder les 6sec
cycle 10
digitalWrite(6,HIGH) ; //
digitalWrite(7,HIGH) ; //
digitalWrite(8,HIGH) ; //
digitalWrite(9,HIGH) ; tout sur
digitalWrite(A0,HIGH) ; //
digitalWrite(A1,HIGH) ; //
digitalWrite(A2,HIGH) ; //
digitalWrite(A3,HIGH) ; //
Delay(1000) ; retard de 1 sec
cycle 11
digitalWrite(6,LOW) ; //
digitalWrite(7,LOW) ; //
digitalWrite(8,LOW) ; tous sauf A0 hors
digitalWrite(9,LOW) ; //
digitalWrite(A0,HIGH) ; //
digitalWrite(A1,LOW) ; //
digitalWrite(A2,LOW) ; //
digitalWrite(A3,LOW) ; //
Delay(100) ; retard de 1 sec
cycle 12
digitalWrite(A0,LOW) ; A0 hors
digitalWrite(A1,HIGH) ; A1 sur
Delay(1000) ; retard de 1 sec
cycle de 13
digitalWrite(A1,LOW) ; A1 au large
digitalWrite(7,HIGH) ; 7 sur
Delay(1000) ; retard de 1 sec
cycle 14
digitalWrite(A1,HIGH) ; A1 sur
Delay(1000) ; retard de 1 sec
cycle de 15
digitalWrite(A1,LOW) ; A1 au large
digitalWrite(8,HIGH) ; 8 sur
digitalWrite(9,HIGH) ; 9 sur
Delay(8000) ; retarder les 8sec
cycle 16
digitalWrite(7,HIGH) ; 7 sur
Delay(3000) ; retard de 3 sec
cycle de 17
digitalWrite(6,HIGH) ; //
digitalWrite(7,LOW) ; //
digitalWrite(8,HIGH) ; tout sauf 7 sur
digitalWrite(9,HIGH) ; //
digitalWrite(A0,HIGH) ; //
digitalWrite(A1,HIGH) ; //
digitalWrite(A2,HIGH) ; //
digitalWrite(A3,HIGH) ; //
Delay(2000) ; retard de 2 sec
cycle 18
digitalWrite(6,LOW) ; //
digitalWrite(7,LOW) ; //
digitalWrite(8,LOW) ; tous sauf 9 off
digitalWrite(9,HIGH) ; //
digitalWrite(A0,LOW) ; //
digitalWrite(A1,LOW) ; //
digitalWrite(A2,LOW) ; //
digitalWrite(A3,LOW) ; //
Delay(2000) ; retard de 2 sec
cycle 19
digitalWrite(6,LOW) ; //
digitalWrite(7,LOW) ; //
digitalWrite(8,LOW) ; tous sauf A2 hors
digitalWrite(9,LOW) ; //
digitalWrite(A0,LOW) ; //
digitalWrite(A1,LOW) ; //
digitalWrite(A2,HIGH) ; //
digitalWrite(A3,LOW) ; //
Delay(1000) ; 1sec Delisle
cycle de 20
digitalWrite(A2,LOW) ; A2 hors
digitalWrite(A3,HIGH) ; A3 sur
Delay(3000) ; retard de 3 sec
cycle de 21
digitalWrite(A3,LOW) ; A3 off
digitalWrite(A0,HIGH) ; A0 sur
Delay(2500) ; retarder 2,5 sec
cycle de 22
digitalWrite(A0,LOW) ; A0 hors
digitalWrite(A3,HIGH) ; A3 sur
Delay(3000) ; retard de 3 sec
cycle 23
digitalWrite(A3,LOW) ; A3 off
digitalWrite(7,HIGH) ; 7 sur
Delay(5500) ; retarder 5,5 s
cycle 24
digitalWrite(6,HIGH) ; //
digitalWrite(7,HIGH) ; //
digitalWrite(8,HIGH) ; tout sur
digitalWrite(9,HIGH) ; //
digitalWrite(A0,HIGH) ; //
digitalWrite(A1,HIGH) ; //
digitalWrite(A2,HIGH) ; //
digitalWrite(A3,HIGH) ; //
Delay(6000) ; retarder les 6sec
cycle de 25
digitalWrite(8,HIGH) ; 8 sur
Delay(1000) ; retard de 1 sec
cycle 26
digitalWrite(8,LOW) ; 8 arrêt
digitalWrite(9,HIGH) ; 9 sur
Delay(7500) ; retarder 7,5 sec
cycle 27
digitalWrite(6,HIGH) ; 6 sur
Delay(1000) ; retard de 1 sec
cycle de 28
digitalWrite(7,LOW) ; 7 sur
digitalWrite(A1,HIGH) ; A1 sur
Delay(2000) ; retard de 2 sec
cycle de 29
digitalWrite(7,HIGH) ; 7 sur
Delay(3500) ; retarder les 3,5 sec
cycle 30
digitalWrite(A1,LOW) ; A1 au large
digitalWrite(7,LOW) ; 7 off
digitalWrite(A0,HIGH) ; A0 sur
Delay(3000) ; retard de 3 sec
cycle de 31
digitalWrite(A1,HIGH) ; A1 sur
Delay(3000) ; retard de 3 sec
cycle de 32
digitalWrite(A0,LOW) ; A0 hors
Delay(2500) ; retarder 2,5 sec
cycle 33
digitalWrite(8,HIGH) ; 8 sur
digitalWrite(9,HIGH) ; 9 sur
Delay(3500) ; retarder les 3,5 sec
cycle de 34
digitalWrite(7,HIGH) ; 7 sur
Delay(1000) ; retard de 1 sec
cycle de 35
digitalWrite(A0,HIGH) ; A0 sur
digitalWrite(A1,HIGH) ; A1 sur
digitalWrite(A2,HIGH) ; A2 sur
digitalWrite(A3,HIGH) ; A3 sur
Delay(17500) ; retarder 17,5 sec
cycle de 36
digitalWrite(8,HIGH) ; 8 sur
digitalWrite(9,HIGH) ; 9 sur
Delay(6500) ; retard de 6,5 s
cycle de 37
digitalWrite(6,HIGH) ; //
digitalWrite(7,HIGH) ; //
digitalWrite(8,HIGH) ; //
digitalWrite(9,HIGH) ; //
digitalWrite(A0,HIGH) ; tout sur
digitalWrite(A1,HIGH) ; //
digitalWrite(A2,HIGH) ; //
digitalWrite(A3,HIGH) ; //
Delay(10000) ; retarder les 10sec
cycle de 38
digitalWrite(6,LOW) ; 6 off
digitalWrite(7,LOW) ; 7 off
digitalWrite(8,LOW) ; 8 arrêt
digitalWrite(9,LOW) ; 9 off
digitalWrite(A0,LOW) ; A0 hors
digitalWrite(A1,LOW) ; A1 au large
digitalWrite(A2,LOW) ; A2 hors
digitalWrite(A3,LOW) ; A3 off
Delay(100) ; retard de 1 sec
cycle de 39
commence à clignoter au hasard
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) ; le délai entre la chanson et du papillotement délai de bulbes en ms
stand de mode qui se met en marche les ampoules de scintillement
digitalWrite (A4, élevé) ; ampoules de scintillement sur
Delay(200) ; retarder jusqu'à ce que l’audio est passé de bouclier audio pour musique de fond
digitalWrite (A5, faible) ; déconnecte les relais du bouclier audio pour musique de fond
Delay(600000) ; retarder jusqu'à ce que le scintillement ampoules éteindre et commence la chanson et le spectacle de lumière (600000ms = 10 min de retard)
1000ms = 1 s, 600000ms = 10 min
digitalWrite (A4, faible) ; Tour à tour des ampoules de scintillement
}}