Arduino Wave Shield help Requested!!!!

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. :confused:

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.