How to send a trigger signal from one Arduino to another?

I am offloading the sound effects from my Arduino Fio to a 2nd Fio, since the Wire and SD libraries don't play nice together. I was running out of RAM. See this post: SD.h not compatible with other libraries in Arduino/C++ environment - Stack Overflow

In order to let one Arduino signal another Arduino, I am trying to use a pulse on a digital pin, then sample four other pins to read an index. But the trigger is not working as expected. It seems that the signal is ringing for up to a second! I didn't expect that.

Here is the code of the 1st Arduino, the sender:

  digitalWrite(SOUND_0, LOW);
  digitalWrite(SOUND_1, LOW);
  digitalWrite(SOUND_2, LOW);
  digitalWrite(SOUND_3, LOW);
  
  // Pulse pin 4, connected to pin 2 on wav Fio
  digitalWrite(SOUND_PULSE, HIGH);
  delay(1);
  digitalWrite(SOUND_PULSE, LOW);

Here is code of the 2nd Arduino, the listener:

void loop() {

   //unsigned long pulse = pulseIn(2, HIGH);
   if (digitalRead(2)) 
   {
     Serial.print("Found the pin switch!");
    }
    delay(100);
}

When I do this I get lots of messages that it found the pin switched, which means that it is still finding it high after the 100ms delay on the listener. How do I just find it one time? I want the signal from the 1st Arduino to trigger the 2nd with a quick pulse, and then sit quietly until the next sound effect is needed. I have tried changing the polarity of the signal and turning on the internal pullup of the listener by driving a high or low on the pin even though it is receive mode. i.e.

pinMode(2, INPUT);
  //digitalWrite(2, LOW);    // Enable pullup resistor on the trigger
  pinMode(3, INPUT);
  pinMode(5, INPUT);
  pinMode(6, INPUT);
  pinMode(7, INPUT);

Any ideas?

Something is very, very wrong....stop doing what you're doing until you figure it out. You could damage your Arduinos.

eg. Have you connected the GND of the two Arduinos together?

Power and ground are shared between both arduinos. I am reading the correct voltage on the trigger pin. They are 2 inches apart. I have pulsed the pin longer and saw the voltmeter change, but I don't have a scope available.

Do it simpler - use Software Serial and send a 1 or 2 byte message over.

How do you know the 1mS pulse only goes out once?

I am already using the serial port for something else. Do you mean that I can create another port on an arbitrary pin pair? Good point about on sending the trigger once. I believe that is the case but I will check.

"Do you mean that I can create another port on an arbitrary pin pair? "
Yes, that is what Software Serial provides.
In the IDE:
File:Examples:Software Serial

Thanks, that fixed it.

I have an unexpected issue... the playing of sound effects are a little bit slower than when I tested this out on the Uno with the Wireless SD shield. This could be because of the Fio is just slower, or possibly because I am not using level shifters on the SPI bus to the SD card. Is SPI smart enough to slow down the transmission speed as needed? Any ideas?

"The Arduino Fio is a microcontroller board based on the ATmega328P (datasheet) runs at 3.3V and 8 MHz."
Yes, 1/2 the speed of an Uno.
SPI will thus run 1/2 the speed unless you readjust it to run at faster speed - but max will be 4 MHz.

dlynch13:
Is SPI smart enough to slow down the transmission speed as needed?

No.