Alright. So I'm a geek, aaaaand a total arduino newb. But I'm either too flustered by my problem, too overwhelmed by the code, or too far behind in my other tasks in this whole project to figure this out. Here's my predicament: I have arduino wave shield, and a gun I'm building fora costume. I have 3 sounds I want to play: a fire, out of ammo, and reload. I've been working on this for about 5 days now, and I can't figure it out! I could really use some help on this one.
You have to post what you have and say what it is not doing what you want.
This is very close to the sample code for the wave shield.
Read the how to use the forum sticky before you post the code.
Alrighty! So, just to let you know, I don't really know Forum etiquette. If I, perchance, do something that is aggravating, please let me know! I'll change it as soon as I can!
Anyways! Here is my code. I guess I didn't save the original, so I had to rewrite it as best as I could. I've never used interrupts either, so I hope I'm not causing peoples eyes to explode.
#include <FatReader.h>
#include <SdReader.h>
#include <avr/pgmspace.h>
#include "WaveUtil.h"
#include "WaveHC.h"
int ammo=17; //integer for the need of reloading
int trigger =1; //switch to activate sounds
int recharge =0; //switch to activate reload
int REDled =13;
int WHITEled=12;
int BLUled=11;
int LEDFactor=0; //used to break from do loops
//these leds are designed to brighten and darken durring fires and reloads
 Â
  SdReader card; // This object holds the information for the card
  FatVolume vol; // This holds the information for the partition on the card
  FatReader root; // This holds the information for the filesystem on the card
  FatReader f; // This holds the information for the file we're play
 Â
  WaveHC wave; // This is the only wave (audio) object, since we will only play one at a time
 Â
  #define DEBOUNCE 100 // button debouncer
 Â
  // this handy function will return the number of bytes currently free in RAM, great for debugging!
  int freeRam(void)
  {
  extern int __bss_end;
  extern int *__brkval;
  int free_memory;
  if((int)__brkval == 0) {
  free_memory = ((int)&free_memory) - ((int)&__bss_end);
  }
  else {
  free_memory = ((int)&free_memory) - ((int)__brkval);
  }
  return free_memory;
  }
 Â
  void sdErrorCheck(void)
  {
  if (!card.errorCode()) return;
  putstring("\n\rSD I/O error: ");
  Serial.print(card.errorCode(), HEX);
  putstring(", ");
  Serial.println(card.errorData(), HEX);
  while(1);
  }
 Â
  void setup() {
   pinMode (trigger,INPUT);
   attachInterrupt(trigger, fire, HIGH);
   {pinMode (recharge,INPUT);
   attachInterrupt(recharge, reload, HIGH);
 }
  // set up serial port
  Serial.begin(9600);
  putstring_nl("WaveHC with 6 buttons");
  putstring("Free RAM: "); // This can help with debugging, running out of RAM is bad
  Serial.println(freeRam()); // if this is under 150 bytes it may spell trouble!
  // Set the output pins for the DAC control. This pins are defined in the library
  pinMode(2, OUTPUT);
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  // pin13 LED
  pinMode(13, OUTPUT);
  // enable pull-up resistors on switch pins (analog inputs)
  digitalWrite(14, HIGH);
  digitalWrite(15, HIGH);
  digitalWrite(16, HIGH);
  digitalWrite(17, HIGH);
  digitalWrite(18, HIGH);
  digitalWrite(19, HIGH);
  // if (!card.init(true)) { //play with 4 MHz spi if 8MHz isn't working for you
  if (!card.init()) { //play with 8 MHz spi (default faster!)
  putstring_nl("Card init. failed!"); // Something went wrong, lets print out why
  sdErrorCheck();
  while(1); // then 'halt' - do nothing!
  }
  // enable optimize read - some cards may timeout. Disable if you're having problems
  card.partialBlockRead(true);
  // Now we will look for a FAT partition!
  uint8_t part;
  for (part = 0; part < 5; part++) { // we have up to 5 slots to look in
  if (vol.init(card, part))
  break; // we found one, lets bail
  }
  if (part == 5) { // if we ended up not finding one :(
  putstring_nl("No valid FAT partition!");
  sdErrorCheck(); // Something went wrong, lets print out why
  while(1); // then 'halt' - do nothing!
  }
  // Lets tell the user about what we found
  putstring("Using partition ");
  Serial.print(part, DEC);
  putstring(", type is FAT");
  Serial.println(vol.fatType(),DEC); // FAT16 or FAT32?
  // Try to open the root directory
  if (!root.openRoot(vol)) {
  putstring_nl("Can't open root dir!"); // Something went wrong,
  while(1); // then 'halt' - do nothing!
  }
  // Whew! We got past the tough parts.
  putstring_nl("Ready!");
  }
 Â
void loop() {
}
void fire(){
 playfile("shoot.wav");
 while (wave.isplaying){
  LEDFactor=255;
  do
  {
   delay(1);
   analogWrite(REDled, LEDFactor);
   analogWrite(WHITEled, LEDFactor);
   (LEDFactor=LEDFactor-2);
  } while (LEDFactor=0);
 }
}
void reload(){
}
  // Plays a full file from beginning to end with no pause.
  void playcomplete(char *name) {
  // call our helper to find and play this name
  playfile(name);
  while (wave.isplaying) {
  // do nothing while its playing
  }
  // now its done playing
  }
 Â
  void playfile(char *name) {
  // see if the wave object is currently doing something
  if (wave.isplaying) {// already playing something, so stop it!
  wave.stop(); // stop it
  }
  // look in the root directory and open the file
  if (!f.open(root, name)) {
  putstring("Couldn't open file "); Serial.print(name); return;
  }
  // OK read the file and turn it into a wave object
  if (!wave.create(f)) {
  putstring_nl("Not a valid WAV"); return;
  }
  // ok time to play! start playback
  wave.play();
  }
Now, what is happening is that the arduino recieves power. Beyond that, absolutely nothing. " When I trip the trigger pin, no light, no sound, nothing. Once again, I don't know too much about programing, aside from the fact that if I forget one tiny little detail, nothing works. Any thoughts?
Thanks for posting the code correctly, that and pictures that are too big are the two most common breaches of forum etiquette here. All the rest is quite subtial an most people are forgiving of it.
The first thing that shouts at me is you are using the same pins to drive the LEDs as the SPI interface for the SD card. Look at the schematic and see what pins are being used for the SD card and the A/D chip. You can't use them for anything else.
Does your setup work with just the sample wave shield? Get that going first, then add some trigger code get it working then add the LEDs and get it working. The trick is to take little steps and test as much as possible.