Arduino R3/WAV trigger digital pin output

I am using the digital pins on an Arduino Uno R3 to trigger a WAV trigger, but am running in to some problems where the Uno is outputting a latent voltage. I tested this by putting some LEDs in-line with the connection on a breadboard. They're pretty dim, but its enough to trigger the WAV board.

The variables: evervesence, sassy, hicolten, hibaker, uranidiot, wrongroom, and stopMusic are used to control the WAV trigger.

I need to have this completed by next week for my kid's birthday party. Its supposed to be a mission impossible style obstacle course, but if I cant get it done in time, he'll be pretty disappointed.

void setup () {
  Serial.begin(9600);
  pinMode(penalty,   OUTPUT);
  pinMode(laserPin, INPUT_PULLUP);
  pinMode(lightsensing, INPUT_PULLUP);
  pinMode(entrance, INPUT);

  analogReference(INTERNAL);

  pinMode(entrance, INPUT_PULLUP);
  pinMode(diversion, INPUT_PULLUP);
  pinMode(goal, INPUT_PULLUP);

 
  

}

void   loop() {  
  
/////////////////////////////////////////// entrance
  entranceVolt = digitalRead(entrance);
  if(entranceVolt > 0) {
    Serial.print(entranceVolt);
    digitalWrite(stopMusic, LOW);
    digitalWrite(hicolten, HIGH);    ///////////////////////
    digitalWrite(evervesence, HIGH);
////////////////////////////////////////////// Laser grid
    laservoltage = digitalRead(laserPin);
    Serial.println( laservoltage );
    if (laservoltage != 0) {
      digitalWrite(penalty, HIGH);    
      digitalWrite(sassy, HIGH);
      Serial.println(" LASER TRIPPED ");
    }
    if (laservoltage = 0){
      digitalWrite(penalty, LOW);
      digitalWrite(sassy, LOW);
    }
////////////////////////////////////////////////// lightsensing
    lightvoltage = digitalRead(lightsensing);
    Serial.println( lightvoltage );
    if (lightvoltage != 1){
      digitalWrite(penalty, HIGH);
      digitalWrite(sassy, HIGH);
      Serial.println(" LIGHT SENSED ");
    }
    if (lightvoltage = 1){
      digitalWrite(penalty, LOW);
      digitalWrite(sassy, LOW);
    }
//////////////////////////////////////////////////// Diversion
    diversionVolt = digitalRead(diversion);
    if (diversionVolt != 0){
      digitalWrite(uranidiot, HIGH);
      Serial.println("Diverted");
    }
    if (diversionVolt = 0){
      digitalWrite(uranidiot, LOW);
    }
///////////////////////////////////////////////////// Goal
    goalVolt = digitalRead(goal);
    if (goalVolt != 0){
      digitalWrite(wrongroom, HIGH);
      Serial.println("foundit");
    }
    if (goalVolt = 0){
      digitalWrite(wrongroom, LOW);
    }
  }

///////////////////////////////////////////////////////////////////////////////////////////

  if (entranceVolt <= 0) {
    delay(100);
    Serial.print(entranceVolt);
    Serial.println("UNARMED");

    digitalWrite(evervesence, LOW);
    digitalWrite(hicolten, LOW);
    digitalWrite(sassy, LOW);
    digitalWrite(hibaker, LOW);
    digitalWrite(wrongroom, LOW);
    digitalWrite(uranidiot, LOW);

    digitalWrite(stopMusic, HIGH);
  }

}

The following is the INI file for the WAV trigger:

#BAUD 9600
#TRIG 01, 2, 0, 3, 0, 1, 1, 0, ,
#TRIG 02, 2, 1, 1, 0, 1, 4, 0, 2, 4
#TRIG 05, 2, 1, 1, 0, 1, 1, 0, ,
#TRIG 06, 2, 1, 1, 0, 1, 1, 0, ,
#TRIG 07, 2, 1, 1, 0, 1, 1, 0, ,
#TRIG 08, 2, 1, 1, 0, 1, 1, 0, ,
#TRIG 09, 2, 1, 1, 0, 0, 7, 0, 1, 16

I see a lot of digitalWrites to pins that are never declared as outputs, is that done within an include file you haven't shown us, or how does it happen?

Otherwise, I think a schematic and a bit more explanation is needed.

Screenshot 2023-03-18 191258
This is the best I could do for a schematic.

I tried declaring those pins as output however, the tracks would start playing before the entrance switch was opened. I deleted that bit of code while troubleshooting, and didnt take the time to put it back in.

The intended function is this:1) the entrance door to the obstacle course is opened, opening the A0 reed switch.
2) the Uno triggers the WAV board to play one of the "hi" tracks.
3) the Uno triggers the WAV board to play "evervesence"
4) if anyone blocks a beam from the laser grid, or turns on the lights, the Uno triggers the WAV board to play the "sassy" tracks
5) if someone enters the room with a diversion, opening the A1 reed, the Uno tells the WAV board to play "uranidiot"
6) lastly, if someone enters the goal, the A2 reed is opened, and the Uno tells the WAV to play "wrongroom".
7) if the entrance door is closed, the Uno tells the WAV board to stop playing music, and nothing else happens

Right now, when I open the reed switch for the entrance, all of the tracks start playing at the same time. When said reed switch is closed, tracks keep trying to play. The in-line LEDs are showing me that the Uno is still sending power to the WAV, even though the outputs are supposed to be low.

You show no ground(common) between your protoboard and your Arduino. I realize it's just a depiction, but that connection MUST be there.
Can you point us to any online documentation of this "WAV".
This Q&A cycle, by the way, is tedious. To get an inkling of how to improve this, please read

My apologies, this is my first time using a forum.
The WAV trigger is powered separate of the Uno with its own VIN and GND pins. Right now, I am powering mine with a 9v.

You can search Sparkfun's website for "WAV Trigger" and it will be the first result that pops up. Alternatively, you can go to the "Products" section of Robertsonics website. One thing to note, some of the information (from both sources) is either misleading or contradictory.
Example, the user manual from Robertsonics claims that the WAV has a "+3.3/5v" voltage supply pin. This is false.

My main problem is that when the digital pins assigned to: evervesence, sassy, hicolten, hibaker, uranidiot, wrongroom, and stopMusic; are Low, the pins are outputting just enough power to turn on a standard led (dimly) and to trigger the WAV board.

I'll ask again. Are the 9V(battery?) and Arduinos sharing a common GND? If not, you may expect pretty much what you're seeing.

I don't intend to go looking for websites, you could very well have put those links in that message. Please understand, the volunteers on this site typically contribute to dozens of posts like yours every day, and you'd really ease their work by providing links for content like that. Not trying to be snarky, but really, you're looking for help, so help us help you, please!
To re-iterate, until you answer the question about sharing the - of the battery and the Arduino, we're dead in the water here. It would be so easy to sketch what you've got on an envelope, take a pic, and post it. Word descriptions of electronics circuits generally fail utterly, due to the imprecise nature of language.

Or, you can, and then post the links so we don't have to do plodding internet research to understand your project. We're not paid employees. It's likely that you blew past the request to read this when you signed on:

1 Like

Apologies for that, I saw the portion of the guidelines about not posting links and got confused. This is my first post.
Aside from that, I ended up having to use the serial port and the: AltSoftSerial, WavTriggerArduinoSerial, and the SofaPirateChrono libraries to communicate between the two.
Thanks for your help!

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.