Issues grounding 3.3v and 5v on the same grounding pin?

Hello. I just made this spectrum analyzer project with my Arduino Uno, but I found a strange problem. I also found a solution, but I don't know why my solution worked and was hoping to find some insight here.

The issue was that the LED matrix was acting very erratically, and behaving as if there was a lot of audio input to the microphone, even when the room was silent.

My wiring was identical to the tutorial. I triple-checked it. I decided to start messing around with it to see if there was a loose connection or something, and discovered that when I routed the LED matrix ground directly to a ground pin on the Arduino, instead of to the negative rail on the breadboard, the device worked perfectly. The LEDs lit up just as expected when I put my headphones up to the mic.

With my limited electronics knowledge, I've come up with 3 theories:

  1. I've got a bad breadboard (although it's worked fine for my other projects, and I tried moving wires to different holes on the same rail and there was no difference).
  2. There is an issue having 3.3v devices and 5v devices sharing the same ground (the 5v matrix and 3.3v mic were attached to the same negative rail on the breadboard).
  3. Some devices (e.g. microphones) are sensitive to different potentials/voltages on the same lines they're operating on (VCC/GND).

Can anyone here offer any insight into what would cause this?

My vote: Option 1

+1 for 1

Is the rail split in half along its length? Some are, you need to add a jumper in the middle to bridge the halves.

Crogdor:
... and discovered that when I routed the LED matrix ground directly to a ground pin on the Arduino, instead of to the negative rail on the breadboard, the device worked perfectly. The LEDs lit up just as expected when I put my headphones up to the mic.
...
Can anyone here offer any insight into what would cause this?

Your problem is that you were using a common Arduino ground pin for both the ground side of the input (i.e. mic + amplifier) and the LEDs + power. Analog input devices (i.e. your mic + amplifier) should always be connected to an Arduino ground pin that is separate from the one used to connect output devices (e.g. your LEDs) and power (if applicable).

Hmm, ok. The breadboard has power rails on both sides, so let me switch them around.

Aaaand... it works! I also notice that the wires fit much more snugly on this side.

This is the breadboard I'm using. It's odd that it worked on the 'broken' side after I re-routed the ground pin for the LED matrix to the Arduino. Everything else was still plugged into those two rails. Talk about a red herring.

Anyway, thanks very much guys!